@@ -70,40 +70,41 @@ class VectorMaskConversionPattern final
7070
7171 auto vWidth = vTy.getNumElements ();
7272 assert (vWidth <= 64 && " vector.create_mask supports vector widths <= 64" );
73- auto vWidthConst = rewriter. create < mlir::arith::ConstantOp> (
74- vMaskOp.getLoc (), rewriter.getI64IntegerAttr (vWidth));
73+ auto vWidthConst = mlir::arith::ConstantOp::create (
74+ rewriter, vMaskOp.getLoc (), rewriter.getI64IntegerAttr (vWidth));
7575 auto maskVal = adaptor.getOperands ()[0 ];
76- maskVal = rewriter. create < mlir::arith::TruncIOp>(
77- vMaskOp. getLoc (), rewriter.getI64Type (), maskVal);
76+ maskVal = mlir::arith::TruncIOp::create (rewriter, vMaskOp. getLoc (),
77+ rewriter.getI64Type (), maskVal);
7878
7979 // maskVal < vWidth
80- auto cmp = rewriter. create < mlir::arith::CmpIOp>(
81- vMaskOp. getLoc (), mlir::arith::CmpIPredicate::slt, maskVal ,
82- vWidthConst);
83- auto one = rewriter. create < mlir::arith::ConstantOp>(
84- vMaskOp. getLoc (), rewriter.getI64IntegerAttr (1 ));
85- auto shift = rewriter. create < mlir::spirv::ShiftLeftLogicalOp> (
86- vMaskOp.getLoc (), one, maskVal);
80+ auto cmp = mlir::arith::CmpIOp::create (rewriter, vMaskOp. getLoc (),
81+ mlir::arith::CmpIPredicate::slt,
82+ maskVal, vWidthConst);
83+ auto one = mlir::arith::ConstantOp::create (rewriter, vMaskOp. getLoc (),
84+ rewriter.getI64IntegerAttr (1 ));
85+ auto shift = mlir::spirv::ShiftLeftLogicalOp::create (
86+ rewriter, vMaskOp.getLoc (), one, maskVal);
8787 auto mask1 =
88- rewriter. create < mlir::arith::SubIOp>( vMaskOp.getLoc (), shift, one);
89- auto mask2 = rewriter. create < mlir::arith::ConstantOp> (
90- vMaskOp.getLoc (), rewriter.getI64IntegerAttr (-1 )); // all ones
91- mlir::Value sel = rewriter. create < mlir::arith::SelectOp>( vMaskOp.getLoc (),
92- cmp, mask1, mask2);
88+ mlir::arith::SubIOp::create (rewriter, vMaskOp.getLoc (), shift, one);
89+ auto mask2 = mlir::arith::ConstantOp::create (
90+ rewriter, vMaskOp.getLoc (), rewriter.getI64IntegerAttr (-1 )); // all ones
91+ mlir::Value sel = mlir::arith::SelectOp::create (rewriter, vMaskOp.getLoc (),
92+ cmp, mask1, mask2);
9393
9494 // maskVal < 0
95- auto zero = rewriter.create <mlir::arith::ConstantOp>(
96- vMaskOp.getLoc (), rewriter.getI64IntegerAttr (0 ));
97- auto cmp2 = rewriter.create <mlir::arith::CmpIOp>(
98- vMaskOp.getLoc (), mlir::arith::CmpIPredicate::slt, maskVal, zero);
99- sel = rewriter.create <mlir::arith::SelectOp>(vMaskOp.getLoc (), cmp2, zero,
100- sel);
101-
102- sel = rewriter.create <mlir::arith::TruncIOp>(
103- vMaskOp.getLoc (), rewriter.getIntegerType (vWidth), sel);
104- auto res = rewriter.create <mlir::spirv::BitcastOp>(
105- vMaskOp.getLoc (), mlir::VectorType::get ({vWidth}, rewriter.getI1Type ()),
106- sel);
95+ auto zero = mlir::arith::ConstantOp::create (rewriter, vMaskOp.getLoc (),
96+ rewriter.getI64IntegerAttr (0 ));
97+ auto cmp2 = mlir::arith::CmpIOp::create (rewriter, vMaskOp.getLoc (),
98+ mlir::arith::CmpIPredicate::slt,
99+ maskVal, zero);
100+ sel = mlir::arith::SelectOp::create (rewriter, vMaskOp.getLoc (), cmp2, zero,
101+ sel);
102+
103+ sel = mlir::arith::TruncIOp::create (rewriter, vMaskOp.getLoc (),
104+ rewriter.getIntegerType (vWidth), sel);
105+ auto res = mlir::spirv::BitcastOp::create (
106+ rewriter, vMaskOp.getLoc (),
107+ mlir::VectorType::get ({vWidth}, rewriter.getI1Type ()), sel);
107108 vMaskOp->replaceAllUsesWith (res);
108109 rewriter.eraseOp (vMaskOp);
109110 return mlir::success ();
@@ -136,10 +137,11 @@ class VectorFromElementsConversionPattern final
136137 }
137138
138139 auto loc = fromElementsOp.getLoc ();
139- mlir::Value result = rewriter.create <mlir::spirv::UndefOp>(loc, spirvVecTy);
140+ mlir::Value result =
141+ mlir::spirv::UndefOp::create (rewriter, loc, spirvVecTy);
140142 for (auto [idx, val] : llvm::enumerate (adaptor.getElements ())) {
141- result = rewriter. create < mlir::spirv::CompositeInsertOp>(loc, val, result ,
142- idx);
143+ result = mlir::spirv::CompositeInsertOp::create (rewriter, loc, val ,
144+ result, idx);
143145 }
144146 rewriter.replaceOp (fromElementsOp, result);
145147 return mlir::success ();
0 commit comments