Skip to content

Commit d01c2bf

Browse files
committed
Add test cases with cache control.
1 parent 4f0136f commit d01c2bf

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

mlir/test/Conversion/XeVMToLLVM/xevm-to-llvm.mlir

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@ llvm.func @blockload2d(%a: !llvm.ptr<1>, %base_width_a: i32, %base_height_a: i32
3232
llvm.return %loaded_a : vector<8xi16>
3333
}
3434

35+
// -----
36+
// CHECK-LABEL: llvm.func spir_funccc @_Z41intel_sub_group_2d_block_read_16b_8r16x1cPU3AS1viiiDv2_iPt(
37+
llvm.func @blockload2d(%a: !llvm.ptr<1>, %base_width_a: i32, %base_height_a: i32, %base_pitch_a: i32, %x: i32, %y: i32) -> vector<8xi16> {
38+
// CHECK: xevm.DecorationCacheControl =
39+
// CHECK-SAME: 6442 : i32, 0 : i32, 1 : i32, 0 : i32
40+
// CHECK-SAME: 6442 : i32, 1 : i32, 1 : i32, 0 : i32
41+
%loaded_a = xevm.blockload2d %a, %base_width_a, %base_height_a, %base_pitch_a, %x, %y
42+
<{elem_size_in_bits=16 : i32, tile_width=16 : i32, tile_height=8 : i32, v_blocks=1 : i32, transpose=false,
43+
pack_register=false, cache_control=#xevm.load_cache_control<L1uc_L2uc_L3uc>}> : (!llvm.ptr<1>, i32, i32, i32, i32, i32) -> vector<8xi16>
44+
llvm.return %loaded_a : vector<8xi16>
45+
}
46+
3547
// -----
3648
// CHECK-LABEL: llvm.func spir_funccc @_Z41intel_sub_group_2d_block_read_16b_8r16x2cPU3AS1viiiDv2_iPt(
3749
// CHECK-SAME: !llvm.ptr<1> {llvm.nonnull, llvm.readonly}, i32, i32, i32, vector<2xi32>,
@@ -148,6 +160,18 @@ llvm.func @blockstore2d(%c: !llvm.ptr<1>, %base_width_c: i32, %base_height_c: i3
148160
llvm.return
149161
}
150162

163+
// -----
164+
// CHECK-LABEL: llvm.func spir_funccc @_Z42intel_sub_group_2d_block_write_32b_8r16x1cPU3AS1viiiDv2_iPj(
165+
llvm.func @blockstore2d(%c: !llvm.ptr<1>, %base_width_c: i32, %base_height_c: i32, %base_pitch_c: i32, %x: i32, %y: i32, %c_result_casted: vector<8xi32>) {
166+
// CHECK: xevm.DecorationCacheControl =
167+
// CHECK-SAME: 6443 : i32, 0 : i32, 2 : i32, 0 : i32
168+
// CHECK-SAME: 6443 : i32, 1 : i32, 2 : i32, 0 : i32
169+
xevm.blockstore2d %c, %base_width_c, %base_height_c, %base_pitch_c, %x, %y, %c_result_casted
170+
<{elem_size_in_bits=32 : i32, tile_width=16 : i32, tile_height=8 : i32, cache_control = #xevm.store_cache_control<L1wt_L2uc_L3wb>}>
171+
: (!llvm.ptr<1>, i32, i32, i32, i32, i32, vector<8xi32>)
172+
llvm.return
173+
}
174+
151175
// -----
152176
// CHECK-LABEL: llvm.func spir_funccc @_Z44intel_sub_group_2d_block_prefetch_8b_8r32x1cPU3AS1viiiDv2_i(
153177
// CHECK-SAME: !llvm.ptr<1> {llvm.nonnull}, i32, i32, i32, vector<2xi32>) attributes

0 commit comments

Comments
 (0)