Lines Matching refs:rewriter

19 static Value createI32Constant(ConversionPatternRewriter &rewriter,  in createI32Constant()  argument
21 IntegerAttr valAttr = rewriter.getI32IntegerAttr(value); in createI32Constant()
22 Type llvmI32 = rewriter.getI32Type(); in createI32Constant()
23 return rewriter.create<LLVM::ConstantOp>(loc, llvmI32, valAttr); in createI32Constant()
38 ConversionPatternRewriter &rewriter) const override { in matchAndRewrite()
58 Type i32 = rewriter.getI32Type(); in matchAndRewrite()
62 Value byteWidthConst = createI32Constant(rewriter, loc, elementByteWidth); in matchAndRewrite()
87 rewriter.getIntegerType(totalBits)); in matchAndRewrite()
96 rewriter.create<LLVM::BitcastOp>(loc, llvmBufferValType, storeData); in matchAndRewrite()
119 Type llvmI64 = this->typeConverter->convertType(rewriter.getI64Type()); in matchAndRewrite()
122 Value resource = rewriter.create<LLVM::UndefOp>(loc, llvm4xI32); in matchAndRewrite()
124 Value ptr = memrefDescriptor.alignedPtr(rewriter, loc); in matchAndRewrite()
125 Value ptrAsInt = rewriter.create<LLVM::PtrToIntOp>(loc, llvmI64, ptr); in matchAndRewrite()
127 rewriter.create<LLVM::BitcastOp>(loc, llvm2xI32, ptrAsInt); in matchAndRewrite()
129 Value idxConst = this->createIndexConstant(rewriter, loc, i); in matchAndRewrite()
131 rewriter.create<LLVM::ExtractElementOp>(loc, ptrAsInts, idxConst); in matchAndRewrite()
132 resource = rewriter.create<LLVM::InsertElementOp>( in matchAndRewrite()
139 rewriter, loc, in matchAndRewrite()
144 Value size = memrefDescriptor.size(rewriter, loc, i); in matchAndRewrite()
145 Value stride = memrefDescriptor.stride(rewriter, loc, i); in matchAndRewrite()
146 stride = rewriter.create<LLVM::MulOp>(loc, stride, byteWidthConst); in matchAndRewrite()
147 Value maxThisDim = rewriter.create<LLVM::MulOp>(loc, size, stride); in matchAndRewrite()
148 maxIndex = maxIndex ? rewriter.create<LLVM::MaximumOp>(loc, maxIndex, in matchAndRewrite()
152 numRecords = rewriter.create<LLVM::TruncOp>(loc, llvmI32, maxIndex); in matchAndRewrite()
154 resource = rewriter.create<LLVM::InsertElementOp>( in matchAndRewrite()
156 this->createIndexConstant(rewriter, loc, 2)); in matchAndRewrite()
178 Value word3Const = createI32Constant(rewriter, loc, word3); in matchAndRewrite()
179 resource = rewriter.create<LLVM::InsertElementOp>( in matchAndRewrite()
181 this->createIndexConstant(rewriter, loc, 3)); in matchAndRewrite()
191 strideOp = rewriter.create<LLVM::MulOp>( in matchAndRewrite()
192 loc, memrefDescriptor.stride(rewriter, loc, i), byteWidthConst); in matchAndRewrite()
195 createI32Constant(rewriter, loc, strides[i] * elementByteWidth); in matchAndRewrite()
197 index = rewriter.create<LLVM::MulOp>(loc, index, strideOp); in matchAndRewrite()
199 voffset ? rewriter.create<LLVM::AddOp>(loc, voffset, index) : index; in matchAndRewrite()
203 Value extraOffsetConst = createI32Constant(rewriter, loc, indexOffset); in matchAndRewrite()
205 voffset ? rewriter.create<LLVM::AddOp>(loc, voffset, extraOffsetConst) in matchAndRewrite()
212 sgprOffset = createI32Constant(rewriter, loc, 0); in matchAndRewrite()
214 sgprOffset = rewriter.create<LLVM::AddOp>( in matchAndRewrite()
215 loc, memrefDescriptor.offset(rewriter, loc), sgprOffset); in matchAndRewrite()
217 sgprOffset = rewriter.create<LLVM::AddOp>( in matchAndRewrite()
218 loc, sgprOffset, createI32Constant(rewriter, loc, offset)); in matchAndRewrite()
224 args.push_back(createI32Constant(rewriter, loc, 0)); in matchAndRewrite()
228 Operation *lowered = rewriter.create<Intrinsic>(loc, resultTypes, args, in matchAndRewrite()
233 replacement = rewriter.create<LLVM::BitcastOp>(loc, llvmWantedDataType, in matchAndRewrite()
236 rewriter.replaceOp(gpuOp, replacement); in matchAndRewrite()
238 rewriter.eraseOp(gpuOp); in matchAndRewrite()
249 ConversionPatternRewriter &rewriter) const override { in matchAndRewrite()
250 auto asmDialectAttr = LLVM::AsmDialectAttr::get(rewriter.getContext(), in matchAndRewrite()
254 rewriter.replaceOpWithNewOp<LLVM::InlineAsmOp>( in matchAndRewrite()