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