Skip to content

Commit f4ebd56

Browse files
[TritonGEN] Lower to GenISA for 2d_block_read_16b_16r8x4c (#4503)
Fixes #4502 Signed-off-by: Whitney Tsang <[email protected]>
1 parent d40cfc5 commit f4ebd56

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

test/TritonGEN/tritongen-2Dblockload-to-llvm.mlir

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,20 @@ llvm.func @triton_gen.2Dblockload(%ptr : !llvm.ptr<1>, %base_width : i32, %base_
148148

149149
// -----
150150

151+
llvm.func @triton_gen.2Dblockload(%ptr : !llvm.ptr<1>, %base_width : i32, %base_height : i32, %base_pitch : i32, %x : i32, %y : i32) {
152+
// CHECK: %[[ELEM_BITS:.*]] = llvm.mlir.constant(16 : i32) : i32
153+
// CHECK: %[[TILE_WIDTH:.*]] = llvm.mlir.constant(8 : i32) : i32
154+
// CHECK: %[[TILE_HEIGHT:.*]] = llvm.mlir.constant(16 : i32) : i32
155+
// CHECK: %[[VBLOCKS:.*]] = llvm.mlir.constant(4 : i32) : i32
156+
// CHECK: %[[TRANSPOSE:.*]] = llvm.mlir.constant(false) : i1
157+
// CHECK: %[[VNNI:.*]] = llvm.mlir.constant(false) : i1
158+
// CHECK: %[[VAL_68:.*]] = llvm.call spir_funccc @llvm.genx.GenISA.LSC2DBlockRead.v32i16({{.*}}, {{.*}}, {{.*}}, {{.*}}, {{.*}}, {{.*}}, %[[ELEM_BITS]], %[[TILE_WIDTH]], %[[TILE_HEIGHT]], %[[VBLOCKS]], %[[TRANSPOSE]], %[[VNNI]], {{.*}})
159+
%0 = triton_gen.2Dblockload %ptr, %base_width, %base_height, %base_pitch, %x, %y {elem_size_in_bits=16, tile_width=8, tile_height=16, v_blocks=4, transpose=false, vnni_transform=false, cache_control=Default} : (!llvm.ptr<1>, i32, i32, i32, i32, i32) -> vector<32xi16>
160+
llvm.return
161+
}
162+
163+
// -----
164+
151165
llvm.func @triton_gen.2Dblockload(%ptr : !llvm.ptr<1>, %base_width : i32, %base_height : i32, %base_pitch : i32, %x : i32, %y : i32) {
152166
// CHECK: llvm.mlir.constant(2 : i32) : i32
153167
// CHECK: [[ElemSize:%.*]] = llvm.mlir.constant(2 : i32) : i32

third_party/intel/lib/TritonGENToLLVM/TritonGENToLLVMPass.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ static bool isSPVBuiltinAvailable(TritonGEN::Matrix2DBlockLoadOp op) {
119119
// intel_sub_group_2d_block_read_8b_16r16x2c
120120
// intel_sub_group_2d_block_read_8b_8r16x1c
121121
// intel_sub_group_2d_block_read_8b_8r16x2c
122+
// intel_sub_group_2d_block_read_16b_16r8x4c
122123
if ((op.getElemSizeInBits() == 8 && op.getTileHeight() == 32 &&
123124
op.getTileWidth() == 16 && op.getVBlocks() == 1 &&
124125
!op.getVnniTransform()) ||
@@ -133,6 +134,9 @@ static bool isSPVBuiltinAvailable(TritonGEN::Matrix2DBlockLoadOp op) {
133134
!op.getVnniTransform()) ||
134135
(op.getElemSizeInBits() == 8 && op.getTileHeight() == 8 &&
135136
op.getTileWidth() == 16 && op.getVBlocks() == 2 &&
137+
!op.getVnniTransform()) ||
138+
(op.getElemSizeInBits() == 16 && op.getTileHeight() == 16 &&
139+
op.getTileWidth() == 8 && op.getVBlocks() == 4 &&
136140
!op.getVnniTransform())) {
137141
return false;
138142
}

0 commit comments

Comments
 (0)