@@ -65,7 +65,7 @@ PowFStrengthReduction::matchAndRewrite(math::PowFOp op,
6565 // Maybe broadcasts scalar value into vector type compatible with `op`.
6666 auto bcast = [&](Value value) -> Value {
6767 if (auto vec = dyn_cast<VectorType>(op.getType ()))
68- return rewriter. create < vector::BroadcastOp>( op.getLoc (), vec, value);
68+ return vector::BroadcastOp::create (rewriter, op.getLoc (), vec, value);
6969 return value;
7070 };
7171
@@ -84,15 +84,16 @@ PowFStrengthReduction::matchAndRewrite(math::PowFOp op,
8484 // Replace `pow(x, 3.0)` with `x * x * x`.
8585 if (isExponentValue (3.0 )) {
8686 Value square =
87- rewriter. create < arith::MulFOp>( op.getLoc (), ValueRange ({x, x}));
87+ arith::MulFOp::create (rewriter, op.getLoc (), ValueRange ({x, x}));
8888 rewriter.replaceOpWithNewOp <arith::MulFOp>(op, ValueRange ({x, square}));
8989 return success ();
9090 }
9191
9292 // Replace `pow(x, -1.0)` with `1.0 / x`.
9393 if (isExponentValue (-1.0 )) {
94- Value one = rewriter.create <arith::ConstantOp>(
95- loc, rewriter.getFloatAttr (getElementTypeOrSelf (op.getType ()), 1.0 ));
94+ Value one = arith::ConstantOp::create (
95+ rewriter, loc,
96+ rewriter.getFloatAttr (getElementTypeOrSelf (op.getType ()), 1.0 ));
9697 rewriter.replaceOpWithNewOp <arith::DivFOp>(op, ValueRange ({bcast (one), x}));
9798 return success ();
9899 }
@@ -111,8 +112,8 @@ PowFStrengthReduction::matchAndRewrite(math::PowFOp op,
111112
112113 // Replace `pow(x, 0.75)` with `sqrt(sqrt(x)) * sqrt(x)`.
113114 if (isExponentValue (0.75 )) {
114- Value powHalf = rewriter. create < math::SqrtOp>( op.getLoc (), x);
115- Value powQuarter = rewriter. create < math::SqrtOp>( op.getLoc (), powHalf);
115+ Value powHalf = math::SqrtOp::create (rewriter, op.getLoc (), x);
116+ Value powQuarter = math::SqrtOp::create (rewriter, op.getLoc (), powHalf);
116117 rewriter.replaceOpWithNewOp <arith::MulFOp>(op,
117118 ValueRange{powHalf, powQuarter});
118119 return success ();
@@ -168,18 +169,18 @@ PowIStrengthReduction<PowIOpTy, DivOpTy, MulOpTy>::matchAndRewrite(
168169 // Maybe broadcasts scalar value into vector type compatible with `op`.
169170 auto bcast = [&loc, &op, &rewriter](Value value) -> Value {
170171 if (auto vec = dyn_cast<VectorType>(op.getType ()))
171- return rewriter. create < vector::BroadcastOp>( loc, vec, value);
172+ return vector::BroadcastOp::create (rewriter, loc, vec, value);
172173 return value;
173174 };
174175
175176 Value one;
176177 Type opType = getElementTypeOrSelf (op.getType ());
177178 if constexpr (std::is_same_v<PowIOpTy, math::FPowIOp>)
178- one = rewriter. create < arith::ConstantOp>(
179- loc, rewriter.getFloatAttr (opType, 1.0 ));
179+ one = arith::ConstantOp::create (rewriter, loc,
180+ rewriter.getFloatAttr (opType, 1.0 ));
180181 else
181- one = rewriter. create < arith::ConstantOp>(
182- loc, rewriter.getIntegerAttr (opType, 1 ));
182+ one = arith::ConstantOp::create (rewriter, loc,
183+ rewriter.getIntegerAttr (opType, 1 ));
183184
184185 // Replace `[fi]powi(x, 0)` with `1`.
185186 if (exponentValue == 0 ) {
@@ -208,12 +209,12 @@ PowIStrengthReduction<PowIOpTy, DivOpTy, MulOpTy>::matchAndRewrite(
208209 // with:
209210 // (1 / x) * (1 / x) * (1 / x) * ...
210211 for (unsigned i = 1 ; i < exponentValue; ++i)
211- result = rewriter. create < MulOpTy>( loc, result, base);
212+ result = MulOpTy::create (rewriter, loc, result, base);
212213
213214 // Inverse the base for negative exponent, i.e. for
214215 // `[fi]powi(x, negative_exponent)` set `x` to `1 / x`.
215216 if (exponentIsNegative)
216- result = rewriter. create < DivOpTy>( loc, bcast (one), result);
217+ result = DivOpTy::create (rewriter, loc, bcast (one), result);
217218
218219 rewriter.replaceOp (op, result);
219220 return success ();
0 commit comments