|
1 | 1 | // RUN: triton-opt -convert-tritongen-to-llvm -split-input-file %s | FileCheck %s
|
2 | 2 |
|
| 3 | +module attributes {"ttg.threads-per-warp" = 16 : i32} { |
| 4 | +llvm.func @triton_gen.2Dblockload(%ptr : !llvm.ptr<1>, %base_width : i32, %base_height : i32, %base_pitch : i32, %x : i32, %y : i32) { |
| 5 | + // CHECK: [[ELEM_BITS:%.*]] = llvm.mlir.constant(8 : i32) : i32 |
| 6 | + // CHECK: [[TILE_WIDTH:%.*]] = llvm.mlir.constant(8 : i32) : i32 |
| 7 | + // CHECK: [[TILE_HEIGHT:%.*]] = llvm.mlir.constant(8 : i32) : i32 |
| 8 | + // CHECK: [[VBLOCKS:%.*]] = llvm.mlir.constant(1 : i32) : i32 |
| 9 | + // CHECK: [[TRANSPOSE:%.*]] = llvm.mlir.constant(false) : i1 |
| 10 | + // CHECK: [[VNNI:%.*]] = llvm.mlir.constant(false) : i1 |
| 11 | + // CHECK: llvm.call spir_funccc @llvm.genx.GenISA.LSC2DBlockRead.v2i16({{.*}}, {{.*}}, {{.*}}, {{.*}}, {{.*}}, {{.*}}, [[ELEM_BITS]], [[TILE_WIDTH]], [[TILE_HEIGHT]], [[VBLOCKS]], [[TRANSPOSE]], [[VNNI]], {{.*}}) |
| 12 | + %0 = triton_gen.2Dblockload %ptr, %base_width, %base_height, %base_pitch, %x, %y {elem_size_in_bits=8, tile_width=8, tile_height=8, v_blocks=1, transpose=false, vnni_transform=false, cache_control=Default} : (!llvm.ptr<1>, i32, i32, i32, i32, i32) -> vector<2xi16> |
| 13 | + llvm.return |
| 14 | +} |
| 15 | +} |
| 16 | + |
| 17 | +// ----- |
| 18 | + |
3 | 19 | module attributes {"ttg.threads-per-warp" = 16 : i32} {
|
4 | 20 | llvm.func @triton_gen.2Dblockload(%ptr : !llvm.ptr<1>, %base_width : i32, %base_height : i32, %base_pitch : i32, %x : i32, %y : i32) {
|
5 | 21 | // CHECK: [[ONE0:%.*]] = llvm.mlir.constant(1 : i32) : i32
|
@@ -652,6 +668,22 @@ llvm.func @triton_gen.2Dblockload(%ptr : !llvm.ptr<1>, %base_width : i32, %base_
|
652 | 668 |
|
653 | 669 | // -----
|
654 | 670 |
|
| 671 | +module attributes {"ttg.threads-per-warp" = 16 : i32} { |
| 672 | +llvm.func @triton_gen.2Dblockload(%ptr : !llvm.ptr<1>, %base_width : i32, %base_height : i32, %base_pitch : i32, %x : i32, %y : i32) { |
| 673 | + // CHECK: %[[ELEM_BITS:.*]] = llvm.mlir.constant(16 : i32) : i32 |
| 674 | + // CHECK: %[[TILE_WIDTH:.*]] = llvm.mlir.constant(8 : i32) : i32 |
| 675 | + // CHECK: %[[TILE_HEIGHT:.*]] = llvm.mlir.constant(8 : i32) : i32 |
| 676 | + // CHECK: %[[VBLOCKS:.*]] = llvm.mlir.constant(1 : i32) : i32 |
| 677 | + // CHECK: %[[TRANSPOSE:.*]] = llvm.mlir.constant(false) : i1 |
| 678 | + // CHECK: %[[VNNI:.*]] = llvm.mlir.constant(false) : i1 |
| 679 | + // CHECK: llvm.call spir_funccc @llvm.genx.GenISA.LSC2DBlockRead.v4i16({{.*}}, {{.*}}, {{.*}}, {{.*}}, {{.*}}, {{.*}}, %[[ELEM_BITS]], %[[TILE_WIDTH]], %[[TILE_HEIGHT]], %[[VBLOCKS]], %[[TRANSPOSE]], %[[VNNI]], {{.*}}) |
| 680 | + %0 = triton_gen.2Dblockload %ptr, %base_width, %base_height, %base_pitch, %x, %y {elem_size_in_bits=16, tile_width=8, tile_height=8, v_blocks=1, transpose=false, vnni_transform=false, cache_control=Default} : (!llvm.ptr<1>, i32, i32, i32, i32, i32) -> vector<4xi16> |
| 681 | + llvm.return |
| 682 | +} |
| 683 | +} |
| 684 | + |
| 685 | +// ----- |
| 686 | + |
655 | 687 | module attributes {"ttg.threads-per-warp" = 16 : i32} {
|
656 | 688 | llvm.func @triton_gen.2Dblockload(%ptr : !llvm.ptr<1>, %base_width : i32, %base_height : i32, %base_pitch : i32, %x : i32, %y : i32) {
|
657 | 689 | // CHECK: %[[ELEM_BITS:.*]] = llvm.mlir.constant(16 : i32) : i32
|
|
0 commit comments