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