1717// CHECK-SPIRV: EntryPoint {{[0-9]+}} [[BlockKer5:[0-9]+]] "__device_side_enqueue_block_invoke_5_kernel"
1818// CHECK-SPIRV: Name [[BlockGlb1:[0-9]+]] "__block_literal_global"
1919// CHECK-SPIRV: Name [[BlockGlb2:[0-9]+]] "__block_literal_global.1"
20+ // CHECK-SPIRV: Name [[#InvokeFunc1:]] "__device_side_enqueue_block_invoke_kernel"
21+ // CHECK-SPIRV: Name [[#InvokeFunc2:]] "__device_side_enqueue_block_invoke_2_kernel"
22+ // CHECK-SPIRV: Name [[#InvokeFunc3:]] "__device_side_enqueue_block_invoke_3_kernel"
23+ // CHECK-SPIRV: Name [[#InvokeFunc4:]] "__device_side_enqueue_block_invoke_4_kernel"
24+ // CHECK-SPIRV: Name [[#InvokeFunc5:]] "__device_side_enqueue_block_invoke_5_kernel"
2025
2126// CHECK-SPIRV: TypeInt [[Int32Ty:[0-9]+]] 32
2227// CHECK-SPIRV: TypeInt [[Int8Ty:[0-9]+]] 8
28+ // CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt12:[0-9]+]] 12
2329// CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt0:[0-9]+]] 0
2430// CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt17:[0-9]+]] 21
2531// CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt2:[0-9]+]] 2
@@ -57,9 +63,9 @@ kernel void device_side_enqueue(global int *a, global int *b, int i, char c0) {
5763 // Emits block literal on stack and block kernel.
5864
5965 // CHECK-SPIRV: Bitcast [[Int8PtrGenTy]] [[BlockLit1:[0-9]+]]
60- // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] {{[0-9]+}} {{[0-9]+}} {{[0-9]+}} {{[0-9]+}}
61- // [[ConstInt0]] [[EventNull]] [[EventNull ]]
62- // [[BlockKer1 ]] [[BlockLit1]] [[ConstInt17]] [[ConstInt8]]
66+ // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] [[#]] [[#]] [[#]] [[#]]
67+ // CHECK-SPIRV-SAME: [[ConstInt0]] [[EventNull]] [[# ]]
68+ // CHECK-SPIRV-SAME: [[#InvokeFunc1 ]] [[BlockLit1]] [[ConstInt17]] [[ConstInt8]]
6369
6470 // CHECK-LLVM: [[Block2:%[0-9]+]] = addrspacecast ptr %block to ptr addrspace(4)
6571 // CHECK-LLVM: [[Block2Ptr:%[0-9]+]] = bitcast ptr addrspace(4) [[Block2]] to ptr addrspace(4)
@@ -77,9 +83,9 @@ kernel void device_side_enqueue(global int *a, global int *b, int i, char c0) {
7783 // CHECK-SPIRV: PtrCastToGeneric [[EventPtrTy]] [[Event2:[0-9]+]]
7884
7985 // CHECK-SPIRV: Bitcast [[Int8PtrGenTy]] [[BlockLit2:[0-9]+]]
80- // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] {{[0-9]+}} {{[0-9]+}} {{[0-9]+}} {{[0-9]+}}
81- // [[ConstInt2]] [[Event1]] [[Event2]]
82- // [[BlockKer2 ]] [[BlockLit2]] [[ConstInt20]] [[ConstInt8]]
86+ // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] [[#]] [[#]] [[#]] [[#]]
87+ // CHECK-SPIRV-SAME: [[ConstInt2]] [[Event1]] [[Event2]]
88+ // CHECK-SPIRV-SAME: [[#InvokeFunc2 ]] [[BlockLit2]] [[ConstInt20]] [[ConstInt8]]
8389
8490 // CHECK-LLVM: [[Block3:%[0-9]+]] = addrspacecast ptr %block4 to ptr addrspace(4)
8591 // CHECK-LLVM: [[Block3Ptr:%[0-9]+]] = bitcast ptr addrspace(4) [[Block3]] to ptr addrspace(4)
@@ -93,14 +99,15 @@ kernel void device_side_enqueue(global int *a, global int *b, int i, char c0) {
9399
94100 char c ;
95101 // Emits global block literal and block kernel.
96-
97- // CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf31:[0-9]+]]
102+ // CHECK-SPIRV: PtrCastToGeneric [[EventPtrTy]] [[Event1:[0-9]+]]
103+ // CHECK-SPIRV: PtrCastToGeneric [[EventPtrTy]] [[Event2:[0-9]+]]
104+ // CHECK-SPIRV-COUNT-2: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf31:[0-9]+]]
98105 // CHECK-SPIRV: PtrCastToGeneric {{[0-9]+}} [[BlockLit3Tmp:[0-9]+]] [[BlockGlb1:[0-9]+]]
99106 // CHECK-SPIRV: Bitcast [[Int8PtrGenTy]] [[BlockLit3:[0-9]+]] [[BlockLit3Tmp]]
100- // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] {{[0-9]+}} {{[0-9]+}} {{[0-9]+}} {{[0-9]+}}
101- // [[ConstInt2]] [[Event1]] [[Event2]]
102- // [[BlockKer3 ]] [[BlockLit3]] [[ConstInt8 ]] [[ConstInt8]]
103- // [[LocalBuf31]]
107+ // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] [[#]] [[#]] [[#]] [[#]]
108+ // CHECK-SPIRV-SAME: [[ConstInt2]] [[Event1]] [[Event2]]
109+ // CHECK-SPIRV-SAME: [[#InvokeFunc3 ]] [[BlockLit3]] [[ConstInt12 ]] [[ConstInt8]]
110+ // CHECK-SPIRV-SAME: [[LocalBuf31]]
104111
105112 // CHECK-LLVM: [[Block0Tmp:%[0-9]+]] = addrspacecast ptr addrspace(1) @__block_literal_global to ptr addrspace(4)
106113 // CHECK-LLVM: [[Block0:%[0-9]+]] = bitcast ptr addrspace(4) [[Block0Tmp]] to ptr addrspace(4)
@@ -115,15 +122,15 @@ kernel void device_side_enqueue(global int *a, global int *b, int i, char c0) {
115122
116123 // Emits global block literal and block kernel.
117124
118- // CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf41:[0-9]+]]
125+ // CHECK-SPIRV-COUNT-4 : PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf41:[0-9]+]]
119126 // CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf42:[0-9]+]]
120127 // CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf43:[0-9]+]]
121128 // CHECK-SPIRV: PtrCastToGeneric {{[0-9]+}} [[BlockLit4Tmp:[0-9]+]] [[BlockGlb2:[0-9]+]]
122129 // CHECK-SPIRV: Bitcast [[Int8PtrGenTy]] [[BlockLit4:[0-9]+]] [[BlockLit4Tmp]]
123- // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] {{[0-9]+}} {{[0-9]+}} {{[0-9]+}} {{[0-9]+}}
124- // [[ConstInt0]] [[EventNull ]] [[EventNull ]]
125- // [[BlockKer4 ]] [[BlockLit4]] [[ConstInt8 ]] [[ConstInt8]]
126- // [[LocalBuf41]] [[LocalBuf42]] [[LocalBuf43]]
130+ // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] [[#]] [[#]] [[#]] [[#]]
131+ // CHECK-SPIRV-SAME: [[ConstInt0]] [[# ]] [[# ]]
132+ // CHECK-SPIRV-SAME: [[#InvokeFunc4 ]] [[BlockLit4]] [[ConstInt12 ]] [[ConstInt8]]
133+ // CHECK-SPIRV-SAME: [[LocalBuf41]] [[LocalBuf42]] [[LocalBuf43]]
127134
128135 // CHECK-LLVM: [[Block1Tmp:%[0-9]+]] = addrspacecast ptr addrspace(1) @__block_literal_global.1 to ptr addrspace(4)
129136 // CHECK-LLVM: [[Block1:%[0-9]+]] = bitcast ptr addrspace(4) [[Block1Tmp]] to ptr addrspace(4)
@@ -140,10 +147,10 @@ kernel void device_side_enqueue(global int *a, global int *b, int i, char c0) {
140147
141148 // CHECK-SPIRV: PtrCastToGeneric [[EventPtrTy]] [[Event1:[0-9]+]]
142149
143- // CHECK-SPIRV: Bitcast [[Int8PtrGenTy]] [[BlockLit2 :[0-9]+]]
144- // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] {{[0-9]+}} {{[0-9]+}} {{[0-9]+}} {{[0-9]+}}
145- // [[ConstInt0]] [[EventNull ]] [[Event1]]
146- // [[BlockKer5 ]] [[BlockLit5]] [[ConstInt20]] [[ConstInt8]]
150+ // CHECK-SPIRV: Bitcast [[Int8PtrGenTy]] [[BlockLit5 :[0-9]+]]
151+ // CHECK-SPIRV: EnqueueKernel [[Int32Ty]] [[#]] [[#]] [[#]] [[#]]
152+ // CHECK-SPIRV-SAME: [[ConstInt0]] [[# ]] [[Event1]]
153+ // CHECK-SPIRV-SAME: [[#InvokeFunc5 ]] [[BlockLit5]] [[ConstInt20]] [[ConstInt8]]
147154
148155 // CHECK-LLVM: [[Block5:%[0-9]+]] = addrspacecast ptr %block15 to ptr addrspace(4)
149156 // CHECK-LLVM: [[Block5Ptr:%[0-9]+]] = bitcast ptr addrspace(4) [[Block5]] to ptr addrspace(4)
@@ -157,10 +164,15 @@ kernel void device_side_enqueue(global int *a, global int *b, int i, char c0) {
157164}
158165
159166// CHECK-SPIRV-DAG: Function [[VoidTy]] [[BlockKer1]] 0 [[BlockTy1]]
167+ // CHECK-SPIRV-DAG: FunctionCall [[VoidTy]] [[#]] [[#InvokeFunc1]]
160168// CHECK-SPIRV-DAG: Function [[VoidTy]] [[BlockKer2]] 0 [[BlockTy1]]
169+ // CHECK-SPIRV-DAG: FunctionCall [[VoidTy]] [[#]] [[#InvokeFunc2]]
161170// CHECK-SPIRV-DAG: Function [[VoidTy]] [[BlockKer3]] 0 [[BlockTy2]]
171+ // CHECK-SPIRV-DAG: FunctionCall [[VoidTy]] [[#]] [[#InvokeFunc3]]
162172// CHECK-SPIRV-DAG: Function [[VoidTy]] [[BlockKer4]] 0 [[BlockTy3]]
173+ // CHECK-SPIRV-DAG: FunctionCall [[VoidTy]] [[#]] [[#InvokeFunc4]]
163174// CHECK-SPIRV-DAG: Function [[VoidTy]] [[BlockKer5]] 0 [[BlockTy1]]
175+ // CHECK-SPIRV-DAG: FunctionCall [[VoidTy]] [[#]] [[#InvokeFunc5]]
164176
165177// CHECK-LLVM-DAG: define spir_kernel void @__device_side_enqueue_block_invoke_kernel(ptr addrspace(4){{.*}})
166178// CHECK-LLVM-DAG: define spir_kernel void @__device_side_enqueue_block_invoke_2_kernel(ptr addrspace(4){{.*}})
0 commit comments