Lines Matching refs:rewriter
25 static LogicalResult convertTanhOp(math::TanhOp op, PatternRewriter &rewriter) { in convertTanhOp() argument
28 auto floatOne = rewriter.getFloatAttr(floatType, 1.0); in convertTanhOp()
29 auto floatTwo = rewriter.getFloatAttr(floatType, 2.0); in convertTanhOp()
30 Value one = rewriter.create<arith::ConstantOp>(loc, floatOne); in convertTanhOp()
31 Value two = rewriter.create<arith::ConstantOp>(loc, floatTwo); in convertTanhOp()
32 Value doubledX = rewriter.create<arith::MulFOp>(loc, op.getOperand(), two); in convertTanhOp()
35 Value negDoubledX = rewriter.create<arith::NegFOp>(loc, doubledX); in convertTanhOp()
36 Value exp2x = rewriter.create<math::ExpOp>(loc, negDoubledX); in convertTanhOp()
37 Value dividend = rewriter.create<arith::SubFOp>(loc, one, exp2x); in convertTanhOp()
38 Value divisor = rewriter.create<arith::AddFOp>(loc, one, exp2x); in convertTanhOp()
39 Value positiveRes = rewriter.create<arith::DivFOp>(loc, dividend, divisor); in convertTanhOp()
42 exp2x = rewriter.create<math::ExpOp>(loc, doubledX); in convertTanhOp()
43 dividend = rewriter.create<arith::SubFOp>(loc, exp2x, one); in convertTanhOp()
44 divisor = rewriter.create<arith::AddFOp>(loc, exp2x, one); in convertTanhOp()
45 Value negativeRes = rewriter.create<arith::DivFOp>(loc, dividend, divisor); in convertTanhOp()
48 auto floatZero = rewriter.getFloatAttr(floatType, 0.0); in convertTanhOp()
49 Value zero = rewriter.create<arith::ConstantOp>(loc, floatZero); in convertTanhOp()
50 Value cmpRes = rewriter.create<arith::CmpFOp>(loc, arith::CmpFPredicate::OGE, in convertTanhOp()
52 rewriter.replaceOpWithNewOp<arith::SelectOp>(op, cmpRes, positiveRes, in convertTanhOp()
58 PatternRewriter &rewriter) { in convertCtlzOp() argument
66 rewriter.create<arith::ConstantOp>(loc, IntegerAttr::get(elementTy, 0)); in convertCtlzOp()
67 auto leadingZeros = rewriter.create<arith::ConstantOp>( in convertCtlzOp()
74 auto whileOp = rewriter.create<scf::WhileOp>(loc, types, operands); in convertCtlzOp()
76 rewriter.createBlock(&whileOp.getBefore(), {}, types, locations); in convertCtlzOp()
78 rewriter.createBlock(&whileOp.getAfter(), {}, types, locations); in convertCtlzOp()
82 rewriter.setInsertionPointToStart(&whileOp.getBefore().front()); in convertCtlzOp()
86 Value inputNotZero = rewriter.create<arith::CmpIOp>( in convertCtlzOp()
88 rewriter.create<scf::ConditionOp>(loc, inputNotZero, in convertCtlzOp()
94 rewriter.setInsertionPointToStart(&whileOp.getAfter().front()); in convertCtlzOp()
99 rewriter.create<arith::ConstantOp>(loc, IntegerAttr::get(elementTy, 1)); in convertCtlzOp()
100 auto shifted = rewriter.create<arith::ShRUIOp>(loc, resultTy, input, one); in convertCtlzOp()
102 rewriter.create<arith::SubIOp>(loc, resultTy, leadingZeros, one); in convertCtlzOp()
104 rewriter.create<scf::YieldOp>( in convertCtlzOp()
109 rewriter.setInsertionPointAfter(whileOp); in convertCtlzOp()
110 rewriter.replaceOp(op, whileOp->getResult(1)); in convertCtlzOp()