69 ConversionPatternRewriter &rewriter)
const override {
73 switch (op.getDimension()) {
74 case gpu::Dimension::x:
75 newOp = XOp::create(rewriter, loc, IntegerType::get(context, 32));
77 case gpu::Dimension::y:
78 newOp = YOp::create(rewriter, loc, IntegerType::get(context, 32));
80 case gpu::Dimension::z:
81 newOp = ZOp::create(rewriter, loc, IntegerType::get(context, 32));
85 std::optional<uint32_t> opBound;
86 if (
auto bound = op.getUpperBound())
87 opBound =
static_cast<uint32_t
>(bound->getZExtValue());
88 if (
auto range =
getIndexOpRange(op, op.getDimension(), opBound, indexKind,
92 if (indexBitwidth > 32) {
93 newOp = LLVM::SExtOp::create(rewriter, loc,
94 IntegerType::get(context, indexBitwidth),
96 }
else if (indexBitwidth < 32) {
97 newOp = LLVM::TruncOp::create(rewriter, loc,
98 IntegerType::get(context, indexBitwidth),