@@ -3541,73 +3541,6 @@ class CIRCmpThreeWayOpLowering
3541
3541
}
3542
3542
};
3543
3543
3544
- template <typename CIROp, typename LLVMOp>
3545
- class CIRUnaryFPBuiltinOpLowering : public mlir ::OpConversionPattern<CIROp> {
3546
- public:
3547
- using mlir::OpConversionPattern<CIROp>::OpConversionPattern;
3548
-
3549
- mlir::LogicalResult
3550
- matchAndRewrite (CIROp op,
3551
- typename mlir::OpConversionPattern<CIROp>::OpAdaptor adaptor,
3552
- mlir::ConversionPatternRewriter &rewriter) const override {
3553
- auto resTy = this ->getTypeConverter ()->convertType (op.getType ());
3554
- rewriter.replaceOpWithNewOp <LLVMOp>(op, resTy, adaptor.getSrc ());
3555
- return mlir::success ();
3556
- }
3557
- };
3558
-
3559
- using CIRLroundOpLowering =
3560
- CIRUnaryFPBuiltinOpLowering<mlir::cir::LroundOp, mlir::LLVM::LroundOp>;
3561
- using CIRLLroundOpLowering =
3562
- CIRUnaryFPBuiltinOpLowering<mlir::cir::LLroundOp, mlir::LLVM::LlroundOp>;
3563
- using CIRLrintOpLowering =
3564
- CIRUnaryFPBuiltinOpLowering<mlir::cir::LrintOp, mlir::LLVM::LrintOp>;
3565
- using CIRLLrintOpLowering =
3566
- CIRUnaryFPBuiltinOpLowering<mlir::cir::LLrintOp, mlir::LLVM::LlrintOp>;
3567
-
3568
- template <typename CIROp, typename LLVMOp>
3569
- class CIRBinaryFPToFPBuiltinOpLowering
3570
- : public mlir::OpConversionPattern<CIROp> {
3571
- public:
3572
- using mlir::OpConversionPattern<CIROp>::OpConversionPattern;
3573
-
3574
- mlir::LogicalResult
3575
- matchAndRewrite (CIROp op,
3576
- typename mlir::OpConversionPattern<CIROp>::OpAdaptor adaptor,
3577
- mlir::ConversionPatternRewriter &rewriter) const override {
3578
- auto resTy = this ->getTypeConverter ()->convertType (op.getType ());
3579
- rewriter.replaceOpWithNewOp <LLVMOp>(op, resTy, adaptor.getLhs (),
3580
- adaptor.getRhs ());
3581
- return mlir::success ();
3582
- }
3583
- };
3584
-
3585
- using CIRCopysignOpLowering =
3586
- CIRBinaryFPToFPBuiltinOpLowering<mlir::cir::CopysignOp,
3587
- mlir::LLVM::CopySignOp>;
3588
- using CIRFMaxOpLowering =
3589
- CIRBinaryFPToFPBuiltinOpLowering<mlir::cir::FMaxOp, mlir::LLVM::MaxNumOp>;
3590
- using CIRFMinOpLowering =
3591
- CIRBinaryFPToFPBuiltinOpLowering<mlir::cir::FMinOp, mlir::LLVM::MinNumOp>;
3592
- using CIRPowOpLowering =
3593
- CIRBinaryFPToFPBuiltinOpLowering<mlir::cir::PowOp, mlir::LLVM::PowOp>;
3594
-
3595
- // cir.fmod is special. Instead of lowering it to an intrinsic call, lower it to
3596
- // the frem LLVM instruction.
3597
- class CIRFModOpLowering : public mlir ::OpConversionPattern<mlir::cir::FModOp> {
3598
- public:
3599
- using mlir::OpConversionPattern<mlir::cir::FModOp>::OpConversionPattern;
3600
-
3601
- mlir::LogicalResult
3602
- matchAndRewrite (mlir::cir::FModOp op, OpAdaptor adaptor,
3603
- mlir::ConversionPatternRewriter &rewriter) const override {
3604
- auto resTy = this ->getTypeConverter ()->convertType (op.getType ());
3605
- rewriter.replaceOpWithNewOp <mlir::LLVM::FRemOp>(op, resTy, adaptor.getLhs (),
3606
- adaptor.getRhs ());
3607
- return mlir::success ();
3608
- }
3609
- };
3610
-
3611
3544
class CIRClearCacheOpLowering
3612
3545
: public mlir::OpConversionPattern<mlir::cir::ClearCacheOp> {
3613
3546
public:
@@ -3834,12 +3767,9 @@ void populateCIRToLLVMConversionPatterns(mlir::RewritePatternSet &patterns,
3834
3767
CIRStackSaveLowering, CIRUnreachableLowering, CIRTrapLowering,
3835
3768
CIRInlineAsmOpLowering, CIRSetBitfieldLowering, CIRGetBitfieldLowering,
3836
3769
CIRPrefetchLowering, CIRObjSizeOpLowering, CIRIsConstantOpLowering,
3837
- CIRCmpThreeWayOpLowering, CIRLroundOpLowering, CIRLLroundOpLowering,
3838
- CIRLrintOpLowering, CIRLLrintOpLowering, CIRCopysignOpLowering,
3839
- CIRFModOpLowering, CIRFMaxOpLowering, CIRFMinOpLowering, CIRPowOpLowering,
3840
- CIRClearCacheOpLowering, CIRUndefOpLowering, CIREhTypeIdOpLowering,
3841
- CIRCatchParamOpLowering, CIRResumeOpLowering, CIRAllocExceptionOpLowering,
3842
- CIRThrowOpLowering
3770
+ CIRCmpThreeWayOpLowering, CIRClearCacheOpLowering, CIRUndefOpLowering,
3771
+ CIREhTypeIdOpLowering, CIRCatchParamOpLowering, CIRResumeOpLowering,
3772
+ CIRAllocExceptionOpLowering, CIRThrowOpLowering
3843
3773
#define GET_BUILTIN_LOWERING_LIST
3844
3774
#include " clang/CIR/Dialect/IR/CIRBuiltinsLowering.inc"
3845
3775
#undef GET_BUILTIN_LOWERING_LIST
0 commit comments