Lines Matching full:create

55   return rewriter.create<arith::ConstantOp>(
81 Value shift32 = rewriter.create<arith::ExtUIOp>(loc, i32Ty, op.getShift());
86 value64 = rewriter.create<arith::ExtSIOp>(loc, i64Ty, value);
88 rewriter.create<arith::ExtSIOp>(loc, i64Ty, multiplier32);
90 rewriter.create<arith::MulIOp>(loc, value64, multiplier64);
93 Value shift64 = rewriter.create<arith::ExtUIOp>(loc, i64Ty, shift32);
94 Value round = rewriter.create<arith::ShLIOp>(loc, one64, shift64);
95 round = rewriter.create<arith::ShRUIOp>(loc, round, one64);
96 multiply64 = rewriter.create<arith::AddIOp>(loc, multiply64, round);
103 Value positive = rewriter.create<arith::CmpIOp>(
106 rewriter.create<arith::SelectOp>(loc, positive, roundUp, roundDown);
107 Value val = rewriter.create<arith::AddIOp>(loc, dir, multiply64);
108 Value valid = rewriter.create<arith::CmpIOp>(
111 rewriter.create<arith::SelectOp>(loc, valid, val, multiply64);
114 Value result64 = rewriter.create<arith::ShRSIOp>(loc, multiply64, shift64);
115 Value result32 = rewriter.create<arith::TruncIOp>(loc, i32Ty, result64);
140 Value shift32 = rewriter.create<arith::ExtUIOp>(loc, i32Ty, op.getShift());
152 rewriter.create<arith::MulSIExtendedOp>(loc, value32, multiplier32);
157 Value shiftOver32 = rewriter.create<arith::CmpIOp>(
159 Value roundHighBits = rewriter.create<arith::CmpIOp>(
163 rewriter.create<arith::SubIOp>(loc, thirtyTwo32, shift32);
165 rewriter.create<arith::SubIOp>(loc, shift32, thirtyTwo32);
168 rewriter.create<arith::SelectOp>(loc, shiftOver32, zero32, shiftHighL);
170 rewriter.create<arith::SelectOp>(loc, shiftOver32, shiftHighR, zero32);
175 Value valuePositive = rewriter.create<arith::CmpIOp>(
179 rewriter.create<arith::SelectOp>(loc, valuePositive, one32, negOne32);
181 rewriter.create<arith::SelectOp>(loc, shiftOver32, roundDir, zero32);
183 Value shiftLow = rewriter.create<arith::ShRUIOp>(loc, low32, thirty32);
184 Value rounded = rewriter.create<arith::AddIOp>(loc, shiftLow, roundDir);
185 Value carry = rewriter.create<arith::ShRSIOp>(loc, rounded, two32);
188 rewriter.create<arith::ShLIOp>(loc, roundDir, thirty32);
190 low32 = rewriter.create<arith::AddIOp>(loc, low32, shiftRound);
191 high32 = rewriter.create<arith::AddIOp>(loc, high32, carry);
196 Value shiftSubOne = rewriter.create<arith::SubIOp>(loc, shift32, one32);
197 Value roundBit = rewriter.create<arith::ShLIOp>(loc, one32, shiftSubOne);
198 roundBit = rewriter.create<arith::SelectOp>(loc, roundHighBits, zero32,
201 Value newLow32 = rewriter.create<arith::AddIOp>(loc, low32, roundBit);
202 Value wasRounded = rewriter.create<arith::CmpIOp>(
206 Value rounded32 = rewriter.create<arith::ExtUIOp>(loc, i32Ty, wasRounded);
207 high32 = rewriter.create<arith::AddIOp>(loc, high32, rounded32);
213 rewriter.create<arith::SubIOp>(loc, shiftHighR, one32);
214 Value roundBit = rewriter.create<arith::ShLIOp>(loc, one32, shiftSubOne);
215 roundBit = rewriter.create<arith::SelectOp>(loc, roundHighBits, roundBit,
217 high32 = rewriter.create<arith::AddIOp>(loc, high32, roundBit);
221 high32 = rewriter.create<arith::ShLIOp>(loc, high32, shiftHighL);
222 high32 = rewriter.create<arith::ShRSIOp>(loc, high32, shiftHighR);
223 low32 = rewriter.create<arith::ShRUIOp>(loc, low32, shift32);
224 low32 = rewriter.create<arith::SelectOp>(loc, shiftOver32, zero32, low32);
227 Value result = rewriter.create<arith::AddIOp>(loc, low32, high32);
231 result = rewriter.create<arith::TruncIOp>(loc, resultTy, result);