diff --git a/test/extensions/INTEL/SPV_INTEL_2d_block_io/2d_block_io_generic.ll b/test/extensions/INTEL/SPV_INTEL_2d_block_io/2d_block_io_generic.ll index 69ed63029..2bf0180e8 100644 --- a/test/extensions/INTEL/SPV_INTEL_2d_block_io/2d_block_io_generic.ll +++ b/test/extensions/INTEL/SPV_INTEL_2d_block_io/2d_block_io_generic.ll @@ -14,13 +14,44 @@ target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024" target triple = "spir64-unknown-unknown" +; CHECK-SPIRV: Capability Subgroup2DBlockIOINTEL +; CHECK-SPIRV: Capability Subgroup2DBlockTransformINTEL +; CHECK-SPIRV: Capability Subgroup2DBlockTransposeINTEL +; CHECK-SPIRV: Extension "SPV_INTEL_2d_block_io" +; CHECK-SPIRV-DAG: TypeInt [[#Int8Ty:]] 8 0 +; CHECK-SPIRV-DAG: TypeInt [[#Int32Ty:]] 32 0 +; CHECK-SPIRV-DAG: Constant [[#Int32Ty]] [[#Const42:]] 42 +; CHECK-SPIRV-DAG: TypeVoid [[#VoidTy:]] +; CHECK-SPIRV-DAG: TypePointer [[#GlbPtrTy:]] 5 [[#Int8Ty]] +; CHECK-SPIRV-DAG: TypeVector [[#VectorTy:]] [[#Int32Ty]] 2 +; CHECK-SPIRV-DAG: TypePointer [[#PrvPtrTy:]] 7 [[#Int8Ty]] +; CHECK-SPIRV: FunctionParameter [[#GlbPtrTy]] [[#BaseSrc:]] +; CHECK-SPIRV: FunctionParameter [[#GlbPtrTy]] [[#BaseDst:]] +; CHECK-SPIRV: FunctionParameter [[#Int32Ty]] [[#Width:]] +; CHECK-SPIRV: FunctionParameter [[#Int32Ty]] [[#Height:]] +; CHECK-SPIRV: FunctionParameter [[#Int32Ty]] [[#Pitch:]] +; CHECK-SPIRV: FunctionParameter [[#VectorTy]] [[#Coord:]] +; CHECK-SPIRV: FunctionParameter [[#PrvPtrTy]] [[#Dst:]] +; CHECK-SPIRV: FunctionParameter [[#PrvPtrTy]] [[#Src:]] +; CHECK-SPIRV: Subgroup2DBlockLoadINTEL [[#Const42]] [[#Const42]] [[#Const42]] [[#Const42]] [[#BaseSrc]] [[#Width]] [[#Height]] [[#Pitch]] [[#Coord]] [[#Dst]] +; CHECK-SPIRV: Subgroup2DBlockLoadTransformINTEL [[#Const42]] [[#Const42]] [[#Const42]] [[#Const42]] [[#BaseSrc]] [[#Width]] [[#Height]] [[#Pitch]] [[#Coord]] [[#Dst]] +; CHECK-SPIRV: Subgroup2DBlockLoadTransposeINTEL [[#Const42]] [[#Const42]] [[#Const42]] [[#Const42]] [[#BaseSrc]] [[#Width]] [[#Height]] [[#Pitch]] [[#Coord]] [[#Dst]] +; CHECK-SPIRV: Subgroup2DBlockPrefetchINTEL [[#Const42]] [[#Const42]] [[#Const42]] [[#Const42]] [[#BaseSrc]] [[#Width]] [[#Height]] [[#Pitch]] [[#Coord]] +; CHECK-SPIRV: Subgroup2DBlockStoreINTEL [[#Const42]] [[#Const42]] [[#Const42]] [[#Const42]] [[#Src]] [[#BaseDst]] [[#Width]] [[#Height]] [[#Pitch]] [[#Coord]] + +; CHECK-LLVM: call spir_func void @_Z32__spirv_Subgroup2DBlockLoadINTELjjjjPU3AS1KvjjjDv2_jPv(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr addrspace(1) noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, <2 x i32> noundef %{{.*}}, ptr noundef %{{.*}}) +; CHECK-LLVM: call spir_func void @_Z41__spirv_Subgroup2DBlockLoadTransformINTELjjjjPU3AS1KvjjjDv2_jPv(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr addrspace(1) noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, <2 x i32> noundef %{{.*}}, ptr noundef %{{.*}}) +; CHECK-LLVM: call spir_func void @_Z41__spirv_Subgroup2DBlockLoadTransposeINTELjjjjPU3AS1KvjjjDv2_jPv(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr addrspace(1) noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, <2 x i32> noundef %{{.*}}, ptr noundef %{{.*}}) +; CHECK-LLVM: call spir_func void @_Z36__spirv_Subgroup2DBlockPrefetchINTELjjjjPU3AS1KvjjjDv2_j(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr addrspace(1) noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, <2 x i32> noundef %{{.*}}) +; CHECK-LLVM: call spir_func void @_Z33__spirv_Subgroup2DBlockStoreINTELjjjjPKvPU3AS1vjjjDv2_j(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr noundef %{{.*}}, ptr addrspace(1) noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, i32 noundef %{{.*}}, <2 x i32> noundef %{{.*}}) + define spir_func void @foo(ptr addrspace(1) noundef %base_address, ptr addrspace(1) noundef %dst_base_pointer, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord, ptr noundef %dst_pointer, ptr noundef %src_pointer) { entry: - tail call spir_func void @_Z32__spirv_Subgroup2DBlockLoadINTELjjjjPU3AS1KvjjjDv2_jPv(i32 noundef 1, i32 noundef 32, i32 noundef 1, i32 noundef 1, ptr addrspace(1) noundef %base_address, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord, ptr noundef %dst_pointer) - tail call spir_func void @_Z41__spirv_Subgroup2DBlockLoadTransformINTELjjjjPU3AS1KvjjjDv2_jPv(i32 noundef 1, i32 noundef 16, i32 noundef 32, i32 noundef 1, ptr addrspace(1) noundef %base_address, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord, ptr noundef %dst_pointer) - tail call spir_func void @_Z41__spirv_Subgroup2DBlockLoadTransposeINTELjjjjPU3AS1KvjjjDv2_jPv(i32 noundef 4, i32 noundef 1, i32 noundef 16, i32 noundef 1, ptr addrspace(1) noundef %base_address, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord, ptr noundef %dst_pointer) - tail call spir_func void @_Z36__spirv_Subgroup2DBlockPrefetchINTELjjjjPU3AS1KvjjjDv2_j(i32 noundef 1, i32 noundef 32, i32 noundef 1, i32 noundef 1, ptr addrspace(1) noundef %base_address, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord) - tail call spir_func void @_Z33__spirv_Subgroup2DBlockStoreINTELjjjjPKvPU3AS1vjjjDv2_j(i32 noundef 1, i32 noundef 16, i32 noundef 1, i32 noundef 1, ptr noundef %src_pointer, ptr addrspace(1) noundef %dst_base_pointer, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord) + call spir_func void @_Z32__spirv_Subgroup2DBlockLoadINTELjjjjPU3AS1KvjjjDv2_jPv(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr addrspace(1) noundef %base_address, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord, ptr noundef %dst_pointer) + call spir_func void @_Z41__spirv_Subgroup2DBlockLoadTransformINTELjjjjPU3AS1KvjjjDv2_jPv(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr addrspace(1) noundef %base_address, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord, ptr noundef %dst_pointer) + call spir_func void @_Z41__spirv_Subgroup2DBlockLoadTransposeINTELjjjjPU3AS1KvjjjDv2_jPv(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr addrspace(1) noundef %base_address, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord, ptr noundef %dst_pointer) + call spir_func void @_Z36__spirv_Subgroup2DBlockPrefetchINTELjjjjPU3AS1KvjjjDv2_j(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr addrspace(1) noundef %base_address, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord) + call spir_func void @_Z33__spirv_Subgroup2DBlockStoreINTELjjjjPKvPU3AS1vjjjDv2_j(i32 noundef 42, i32 noundef 42, i32 noundef 42, i32 noundef 42, ptr noundef %src_pointer, ptr addrspace(1) noundef %dst_base_pointer, i32 noundef %width, i32 noundef %height, i32 noundef %pitch, <2 x i32> noundef %coord) ret void }