Skip to content

Commit 6f5cbf0

Browse files
ViacheslavRbigcbot
authored andcommitted
Fixing intel_sub_group_2d_block_read builtins
Fixing intel_sub_group_2d_block_read builtins with with transform to propagate valid tile width information.
1 parent 8a47592 commit 6f5cbf0

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

IGC/BiFModule/Implementation/IGCBiF_Intrinsics_Lsc.cl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -699,11 +699,11 @@ void __builtin_IB_subgroup_block_write_cacheopts_u32_m2k16v1(long base_address,
699699
void __builtin_IB_subgroup_block_write_cacheopts_u32_m4k16v1(long base_address, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, uint4 val, enum LSC_STCC cache_control);
700700
void __builtin_IB_subgroup_block_write_cacheopts_u32_m8k16v1(long base_address, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, uint8 val, enum LSC_STCC cache_control);
701701

702-
uint16 __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k32v1(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
703-
uint16 __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k16v2(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
704-
uint32 __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k32v2(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
705-
uint16 __builtin_IB_subgroup_block_read_cacheopts_transform_u8_k32v2(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
706-
uint32 __builtin_IB_subgroup_block_read_cacheopts_transform_u8_k32v4(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
702+
uint16 __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k32n16v1(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
703+
uint16 __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k16n16v2(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
704+
uint32 __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k32n16v2(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
705+
uint16 __builtin_IB_subgroup_block_read_cacheopts_transform_u8_k32n16v2(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
706+
uint32 __builtin_IB_subgroup_block_read_cacheopts_transform_u8_k32n16v4(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
707707

708708
void __builtin_IB_subgroup_block_read_prefetch_u8_m32k16v2(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);
709709
void __builtin_IB_subgroup_block_read_prefetch_u8_m32k16v4(long baseoffset, int width_minus_one, int height_minus_one, int pitch_minus_one, int2 coord, enum LSC_LDCC cacheOpt);

IGC/BiFModule/Languages/OpenCL/IBiF_Sub_Groups.cl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1096,11 +1096,11 @@ DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_32b_8r8x2c,
10961096
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_32b_16r8x2c, uint, uint16, __builtin_IB_subgroup_block_read_cacheopts_u32_m16k8v2)
10971097
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_32b_32r8x2c, uint, uint32, __builtin_IB_subgroup_block_read_cacheopts_u32_m32k8v2)
10981098

1099-
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_16b_32r16x1c, uint, uint16, __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k32v1)
1100-
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_16b_16r16x2c, uint, uint16, __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k16v2)
1101-
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_16b_32r16x2c, uint, uint32, __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k32v2)
1102-
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_8b_32r16x2c, uint, uint16, __builtin_IB_subgroup_block_read_cacheopts_transform_u8_k32v2)
1103-
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_8b_32r16x4c, uint, uint32, __builtin_IB_subgroup_block_read_cacheopts_transform_u8_k32v4)
1099+
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_16b_32r16x1c, uint, uint16, __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k32n16v1)
1100+
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_16b_16r16x2c, uint, uint16, __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k16n16v2)
1101+
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_16b_32r16x2c, uint, uint32, __builtin_IB_subgroup_block_read_cacheopts_transform_u16_k32n16v2)
1102+
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_8b_32r16x2c, uint, uint16, __builtin_IB_subgroup_block_read_cacheopts_transform_u8_k32n16v2)
1103+
DEFN_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transform_8b_32r16x4c, uint, uint32, __builtin_IB_subgroup_block_read_cacheopts_transform_u8_k32n16v4)
11041104

11051105
DEFN_INTERNAL_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transpose_64b_8r1x1c, ulong, __builtin_IB_subgroup_block_read_cacheopts_transpose_u64_m8k1)
11061106
DEFN_INTERNAL_INTEL_SUB_GROUP_2D_BLOCK_READ(intel_sub_group_2d_block_read_transpose_64b_8r2x1c, ulong2, __builtin_IB_subgroup_block_read_cacheopts_transpose_u64_m8k2)

IGC/ocloc_tests/Builtins/cl_intel_subgroup_2d_block_io/PVC/block_reads.cl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,11 +326,17 @@ SPDX-License-Identifier: MIT
326326

327327
// CHECK-VISAASM-TRANSFORM-16B-16R-16X2C: lsc_load_block2d.ugm (M1, 1) V{{[0-9]+}}:d16.2x16x16nt flat[{{.+}},0x1FF,0x2D,0x1FF,V{{[0-9]+}},V{{[0-9]+}}
328328

329-
// RUN: ocloc compile -file %s -device pvc -options "-igc_opts 'DumpVISAASMToConsole=1' \
329+
// RUN: ocloc compile -file %s -device pvc -options "-igc_opts 'ForceOCLSIMDWidth=16,DumpVISAASMToConsole=1' \
330+
// RUN: -DINPUT_TYPE=ushort -DOUTPUT_TYPE=uint -DFUNCTION=intel_sub_group_2d_block_read_transform_16b_32r16x2c -DDST_ARRAY_EL_TYPE=uint8 -DDST_ARRAY_EL_NUM=4" \
331+
// RUN: -internal_options "-cl-ext=-all,+cl_intel_subgroup_2d_block_io" | FileCheck %s --check-prefix=CHECK-VISAASM-TRANSFORM-16B-32R-16X2C-SIMD16
332+
333+
// CHECK-VISAASM-TRANSFORM-16B-32R-16X2C-SIMD16: lsc_load_block2d.ugm (M1, 1) V{{[0-9]+}}:d16.2x16x32nt flat[{{.+}},0x1FF,0x2D,0x1FF,V{{[0-9]+}},V{{[0-9]+}}
334+
335+
// RUN: ocloc compile -file %s -device pvc -options "-igc_opts 'ForceOCLSIMDWidth=32,DumpVISAASMToConsole=1' \
330336
// RUN: -DINPUT_TYPE=ushort -DOUTPUT_TYPE=uint -DFUNCTION=intel_sub_group_2d_block_read_transform_16b_32r16x2c -DDST_ARRAY_EL_TYPE=uint8 -DDST_ARRAY_EL_NUM=4" \
331-
// RUN: -internal_options "-cl-ext=-all,+cl_intel_subgroup_2d_block_io" | FileCheck %s --check-prefix=CHECK-VISAASM-TRANSFORM-16B-32R-16X2C
337+
// RUN: -internal_options "-cl-ext=-all,+cl_intel_subgroup_2d_block_io" | FileCheck %s --check-prefix=CHECK-VISAASM-TRANSFORM-16B-32R-16X2C-SIMD32
332338

333-
// CHECK-VISAASM-TRANSFORM-16B-32R-16X2C: lsc_load_block2d.ugm (M1, 1) V{{[0-9]+}}:d16.2x16x32nt flat[{{.+}},0x1FF,0x2D,0x1FF,V{{[0-9]+}},V{{[0-9]+}}
339+
// CHECK-VISAASM-TRANSFORM-16B-32R-16X2C-SIMD32: lsc_load_block2d.ugm (M1, 1) V{{[0-9]+}}:d16.2x16x32nt flat[{{.+}},0x1FF,0x2D,0x1FF,V{{[0-9]+}},V{{[0-9]+}}
334340

335341
__attribute__((intel_reqd_sub_group_size(16)))
336342
kernel void test_default(global INPUT_TYPE* input, const global int2* coord, global OUTPUT_TYPE* output) {

0 commit comments

Comments
 (0)