• Home
  • Raw
  • Download

Lines Matching full:check

16 // Bindless Check Instrumentation Tests.
32 ; CHECK: OpDecorate [[output_buffer_type:%inst_bindless_OutputBuffer]] Block
33 ; CHECK: OpMemberDecorate [[output_buffer_type]] 0 Offset 0
34 ; CHECK: OpMemberDecorate [[output_buffer_type]] 1 Offset 4
35 ; CHECK: OpDecorate [[output_buffer_var:%\w+]] DescriptorSet 7
36 ; CHECK: OpDecorate [[output_buffer_var]] Binding 0
40 ; CHECK: [[output_buffer_type]] = OpTypeStruct %uint %_runtimearr_uint
41 ; CHECK: [[output_ptr_type:%\w+]] = OpTypePointer StorageBuffer [[output_buffer_type]]
42 ; CHECK: [[output_buffer_var]] = OpVariable [[output_ptr_type]] StorageBuffer
46 ; CHECK: %inst_bindless_stream_write_4 = OpFunction %void None {{%\w+}}
47 ; CHECK: [[param_1:%\w+]] = OpFunctionParameter %uint
48 ; CHECK: [[param_2:%\w+]] = OpFunctionParameter %uint
49 ; CHECK: [[param_3:%\w+]] = OpFunctionParameter %uint
50 ; CHECK: [[param_4:%\w+]] = OpFunctionParameter %uint
51 ; CHECK: {{%\w+}} = OpLabel
52 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_0
53 ; CHECK: {{%\w+}} = OpAtomicIAdd %uint {{%\w+}} %uint_4 %uint_0 %uint_10
54 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_10
55 ; CHECK: {{%\w+}} = OpArrayLength %uint [[output_buffer_var]] 1
56 ; CHECK: {{%\w+}} = OpULessThanEqual %bool {{%\w+}} {{%\w+}}
57 ; CHECK: OpSelectionMerge {{%\w+}} None
58 ; CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
59 ; CHECK: {{%\w+}} = OpLabel
60 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_0
61 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
62 ; CHECK: OpStore {{%\w+}} %uint_10
63 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_1
64 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
65 ; CHECK: OpStore {{%\w+}} %uint_23
66 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_2
67 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
68 ; CHECK: OpStore {{%\w+}} [[param_1]]
72 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_7
73 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
74 ; CHECK: OpStore {{%\w+}} [[param_2]]
75 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_8
76 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
77 ; CHECK: OpStore {{%\w+}} [[param_3]]
78 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_9
79 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
80 ; CHECK: OpStore {{%\w+}} [[param_4]]
81 ; CHECK: OpBranch {{%\w+}}
82 ; CHECK: {{%\w+}} = OpLabel
83 ; CHECK: OpReturn
84 ; CHECK: OpFunctionEnd
89 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
90 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
91 ; CHECK: OpStore {{%\w+}} %uint_4
92 ; CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
93 ; CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
94 ; CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
95 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_4
96 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
97 ; CHECK: OpStore {{%\w+}} {{%\w+}}
98 ; CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
99 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_5
100 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
101 ; CHECK: OpStore {{%\w+}} {{%\w+}}
105 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
106 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
107 ; CHECK: OpStore {{%\w+}} %uint_2
108 ; CHECK: {{%\w+}} = OpLoad %uint %gl_PrimitiveID
109 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_4
110 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
111 ; CHECK: OpStore {{%\w+}} {{%\w+}}
112 ; CHECK: {{%\w+}} = OpLoad %v3float %gl_TessCoord
113 ; CHECK: {{%\w+}} = OpBitcast %v3uint {{%\w+}}
114 ; CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
115 ; CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
116 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_5
117 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
118 ; CHECK: OpStore {{%\w+}} {{%\w+}}
119 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_6
120 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
121 ; CHECK: OpStore {{%\w+}} {{%\w+}}
125 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
126 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
127 ; CHECK: OpStore {{%\w+}} %uint_0
128 ; CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
129 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_4
130 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
131 ; CHECK: OpStore {{%\w+}} {{%\w+}}
132 ; CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
133 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_5
134 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
135 ; CHECK: OpStore {{%\w+}} {{%\w+}}
139 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
140 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
141 ; CHECK: OpStore {{%\w+}} %uint_5
142 ; CHECK: {{%\w+}} = OpLoad %v3uint %gl_GlobalInvocationID
143 ; CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
144 ; CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
145 ; CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 2
146 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_4
147 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
148 ; CHECK: OpStore {{%\w+}} {{%\w+}}
149 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_5
150 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
151 ; CHECK: OpStore {{%\w+}} {{%\w+}}
152 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_6
153 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
154 ; CHECK: OpStore {{%\w+}} {{%\w+}}
158 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
159 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
160 ; CHECK: OpStore {{%\w+}} {{%\w+}}
161 ; CHECK: {{%\w+}} = OpLoad %v3uint {{%\w+}}
162 ; CHECK: {{%\w+}} = OpCompositeExtract %uint %90 0
163 ; CHECK: {{%\w+}} = OpCompositeExtract %uint %90 1
164 ; CHECK: {{%\w+}} = OpCompositeExtract %uint %90 2
165 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_4
166 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
167 ; CHECK: OpStore {{%\w+}} {{%\w+}}
168 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_5
169 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
170 ; CHECK: OpStore {{%\w+}} {{%\w+}}
171 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_6
172 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
173 ; CHECK: OpStore {{%\w+}} {{%\w+}}
178 ; CHECK: %inst_bindless_stream_write_5 = OpFunction %void None {{%\w+}}
179 ; CHECK: [[param_1:%\w+]] = OpFunctionParameter %uint
180 ; CHECK: [[param_2:%\w+]] = OpFunctionParameter %uint
181 ; CHECK: [[param_3:%\w+]] = OpFunctionParameter %uint
182 ; CHECK: [[param_4:%\w+]] = OpFunctionParameter %uint
183 ; CHECK: [[param_5:%\w+]] = OpFunctionParameter %uint
184 ; CHECK: {{%\w+}} = OpLabel
185 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_0
186 ; CHECK: {{%\w+}} = OpAtomicIAdd %uint {{%\w+}} %uint_4 %uint_0 %uint_11
187 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_11
188 ; CHECK: {{%\w+}} = OpArrayLength %uint [[output_buffer_var]] 1
189 ; CHECK: {{%\w+}} = OpULessThanEqual %bool {{%\w+}} {{%\w+}}
190 ; CHECK: OpSelectionMerge {{%\w+}} None
191 ; CHECK: OpBranchConditional {{%\w+}} {{%\w+}} {{%\w+}}
192 ; CHECK: {{%\w+}} = OpLabel
193 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_0
194 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
195 ; CHECK: OpStore {{%\w+}} %uint_11
196 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_1
197 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
198 ; CHECK: OpStore {{%\w+}} %uint_23
199 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_2
200 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
201 ; CHECK: OpStore {{%\w+}} [[param_1]]
205 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_7
206 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
207 ; CHECK: OpStore {{%\w+}} [[param_2]]
208 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_8
209 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
210 ; CHECK: OpStore {{%\w+}} [[param_3]]
211 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_9
212 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
213 ; CHECK: OpStore {{%\w+}} [[param_4]]
214 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_10
215 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
216 ; CHECK: OpStore {{%\w+}} [[param_5]]
217 ; CHECK: OpBranch {{%\w+}}
218 ; CHECK: {{%\w+}} = OpLabel
219 ; CHECK: OpReturn
220 ; CHECK: OpFunctionEnd
225 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
226 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
227 ; CHECK: OpStore {{%\w+}} %uint_4
228 ; CHECK: {{%\w+}} = OpLoad %v4float %gl_FragCoord
229 ; CHECK: {{%\w+}} = OpBitcast %v4uint {{%\w+}}
230 ; CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 0
231 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_4
232 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
233 ; CHECK: OpStore {{%\w+}} {{%\w+}}
234 ; CHECK: {{%\w+}} = OpCompositeExtract %uint {{%\w+}} 1
235 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_5
236 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
237 ; CHECK: OpStore {{%\w+}} {{%\w+}}
241 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_3
242 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
243 ; CHECK: OpStore {{%\w+}} %uint_0
244 ; CHECK: {{%\w+}} = OpLoad %uint %gl_VertexIndex
245 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_4
246 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
247 ; CHECK: OpStore {{%\w+}} {{%\w+}}
248 ; CHECK: {{%\w+}} = OpLoad %uint %gl_InstanceIndex
249 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} %uint_5
250 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[output_buffer_var]] %uint_1 {{%\w+}}
251 ; CHECK: OpStore {{%\w+}} {{%\w+}}
256 ; CHECK: OpDecorate [[input_buffer_type:%inst_bindless_InputBuffer]] Block
257 ; CHECK: OpMemberDecorate [[input_buffer_type]] 0 Offset 0
258 ; CHECK: OpDecorate [[input_buffer_var:%\w+]] DescriptorSet 7
259 ; CHECK: OpDecorate [[input_buffer_var]] Binding 1
263 ; CHECK: [[input_buffer_type]] = OpTypeStruct %_runtimearr_uint
264 ; CHECK: [[input_ptr_type:%\w+]] = OpTypePointer StorageBuffer [[input_buffer_type]]
265 ; CHECK: [[input_buffer_var]] = OpVariable [[input_ptr_type]] StorageBuffer
269 ; CHECK: %inst_bindless_direct_read_2 = OpFunction %uint None {{%\w+}}
270 ; CHECK: [[param_1:%\w+]] = OpFunctionParameter %uint
271 ; CHECK: [[param_2:%\w+]] = OpFunctionParameter %uint
272 ; CHECK: {{%\w+}} = OpLabel
273 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[input_buffer_var]] %uint_0 [[param_1]]
274 ; CHECK: {{%\w+}} = OpLoad %uint {{%\w+}}
275 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} [[param_2]]
276 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[input_buffer_var]] %uint_0 {{%\w+}}
277 ; CHECK: {{%\w+}} = OpLoad %uint {{%\w+}}
278 ; CHECK: OpReturnValue {{%\w+}}
279 ; CHECK: OpFunctionEnd
283 ;CHECK: %inst_bindless_direct_read_3 = OpFunction %uint None {{%\w+}}
284 ; CHECK: [[param_1:%\w+]] = OpFunctionParameter %uint
285 ; CHECK: [[param_2:%\w+]] = OpFunctionParameter %uint
286 ; CHECK: [[param_3:%\w+]] = OpFunctionParameter %uint
287 ;CHECK: {{%\w+}} = OpLabel
288 ;CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[input_buffer_var]] %uint_0 [[param_1]]
289 ;CHECK: {{%\w+}} = OpLoad %uint {{%\w+}}
290 ;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} [[param_2]]
291 ;CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[input_buffer_var]] %uint_0 {{%\w+}}
292 ;CHECK: {{%\w+}} = OpLoad %uint {{%\w+}}
293 ;CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} [[param_3]]
294 ;CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[input_buffer_var]] %uint_0 {{%\w+}}
295 ;CHECK: {{%\w+}} = OpLoad %uint {{%\w+}}
296 ;CHECK: OpReturnValue {{%\w+}}
297 ;CHECK: OpFunctionEnd
301 ; CHECK: %inst_bindless_direct_read_4 = OpFunction %uint None {{%\w+}}
302 ; CHECK: [[param_1:%\w+]] = OpFunctionParameter %uint
303 ; CHECK: [[param_2:%\w+]] = OpFunctionParameter %uint
304 ; CHECK: [[param_3:%\w+]] = OpFunctionParameter %uint
305 ; CHECK: [[param_4:%\w+]] = OpFunctionParameter %uint
306 ; CHECK: {{%\w+}} = OpLabel
307 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[input_buffer_var]] %uint_0 [[param_1]]
308 ; CHECK: {{%\w+}} = OpLoad %uint {{%\w+}}
309 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} [[param_2]]
310 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[input_buffer_var]] %uint_0 {{%\w+}}
311 ; CHECK: {{%\w+}} = OpLoad %uint {{%\w+}}
312 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} [[param_3]]
313 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[input_buffer_var]] %uint_0 {{%\w+}}
314 ; CHECK: {{%\w+}} = OpLoad %uint {{%\w+}}
315 ; CHECK: {{%\w+}} = OpIAdd %uint {{%\w+}} [[param_4]]
316 ; CHECK: {{%\w+}} = OpAccessChain %_ptr_StorageBuffer_uint [[input_buffer_var]] %uint_0 {{%\w+}}
317 ; CHECK: {{%\w+}} = OpLoad %uint {{%\w+}}
318 ; CHECK: OpReturnValue {{%\w+}}
319 ; CHECK: OpFunctionEnd
511 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
515 ; CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_Fra… in TEST_F()
537 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
539 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
569 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
570 ; CHECK: %bool = OpTypeBool in TEST_F()
571 ; CHECK: %48 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
572 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
574 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
575 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
576 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
577 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
578 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
579 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
580 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
581 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
582 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
583 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
584 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
585 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
586 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
587 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
588 ; CHECK: %uint_56 = OpConstant %uint 56 in TEST_F()
589 ; CHECK: %103 = OpConstantNull %v4float in TEST_F()
605 ; CHECK-NOT: %37 = OpImageSampleImplicitLod %v4float %36 %30 in TEST_F()
606 ; CHECK-NOT: OpStore %_entryPointOutput_vColor %37 in TEST_F()
607 ; CHECK: %40 = OpULessThan %bool %32 %uint_128 in TEST_F()
608 ; CHECK: OpSelectionMerge %41 None in TEST_F()
609 ; CHECK: OpBranchConditional %40 %42 %43 in TEST_F()
610 ; CHECK: %42 = OpLabel in TEST_F()
611 ; CHECK: %44 = OpLoad %16 %33 in TEST_F()
612 ; CHECK: %45 = OpSampledImage %26 %44 %35 in TEST_F()
613 ; CHECK: %46 = OpImageSampleImplicitLod %v4float %45 %30 in TEST_F()
614 ; CHECK: OpBranch %41 in TEST_F()
615 ; CHECK: %43 = OpLabel in TEST_F()
616 ; CHECK: %102 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_56 %uint_0 %32 %uint_128 in TEST_F()
617 ; CHECK: OpBranch %41 in TEST_F()
618 ; CHECK: %41 = OpLabel in TEST_F()
619 ; CHECK: %104 = OpPhi %v4float %46 %42 %103 %43 in TEST_F()
620 ; CHECK: OpStore %_entryPointOutput_vColor %104 in TEST_F()
667 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
671 ; CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_Fra… in TEST_F()
690 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
692 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
720 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
721 ; CHECK: %bool = OpTypeBool in TEST_F()
722 ; CHECK: %56 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
723 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
725 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
726 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
727 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
728 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
729 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
730 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
731 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
732 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
733 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
734 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
735 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
736 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
737 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
738 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
739 ; CHECK: %uint_58 = OpConstant %uint 58 in TEST_F()
740 ; CHECK: %111 = OpConstantNull %v4float in TEST_F()
741 ; CHECK: %uint_64 = OpConstant %uint 64 in TEST_F()
756 ; CHECK-NOT: %38 = OpImageSampleImplicitLod %v4float %37 %31 in TEST_F()
757 ; CHECK: %48 = OpULessThan %bool %33 %uint_128 in TEST_F()
758 ; CHECK: OpSelectionMerge %49 None in TEST_F()
759 ; CHECK: OpBranchConditional %48 %50 %51 in TEST_F()
760 ; CHECK: %50 = OpLabel in TEST_F()
761 ; CHECK: %52 = OpLoad %17 %34 in TEST_F()
762 ; CHECK: %53 = OpSampledImage %27 %52 %36 in TEST_F()
763 ; CHECK: %54 = OpImageSampleImplicitLod %v4float %53 %31 in TEST_F()
764 ; CHECK: OpBranch %49 in TEST_F()
765 ; CHECK: %51 = OpLabel in TEST_F()
766 ; CHECK: %110 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_58 %uint_0 %33 %uint_128 in TEST_F()
767 ; CHECK: OpBranch %49 in TEST_F()
768 ; CHECK: %49 = OpLabel in TEST_F()
769 ; CHECK: %112 = OpPhi %v4float %54 %50 %111 %51 in TEST_F()
777 ; CHECK-NOT: %44 = OpImageSampleImplicitLod %v4float %43 %31 in TEST_F()
778 ; CHECK-NOT: %45 = OpFAdd %v4float %38 %44 in TEST_F()
779 ; CHECK: %113 = OpULessThan %bool %40 %uint_128 in TEST_F()
780 ; CHECK: OpSelectionMerge %114 None in TEST_F()
781 ; CHECK: OpBranchConditional %113 %115 %116 in TEST_F()
782 ; CHECK: %115 = OpLabel in TEST_F()
783 ; CHECK: %117 = OpLoad %17 %41 in TEST_F()
784 ; CHECK: %118 = OpSampledImage %27 %117 %36 in TEST_F()
785 ; CHECK: %119 = OpImageSampleImplicitLod %v4float %118 %31 in TEST_F()
786 ; CHECK: OpBranch %114 in TEST_F()
787 ; CHECK: %116 = OpLabel in TEST_F()
788 ; CHECK: %121 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_64 %uint_0 %40 %uint_128 in TEST_F()
789 ; CHECK: OpBranch %114 in TEST_F()
790 ; CHECK: %114 = OpLabel in TEST_F()
791 ; CHECK: %122 = OpPhi %v4float %119 %115 %111 %116 in TEST_F()
792 ; CHECK: %45 = OpFAdd %v4float %112 %122 in TEST_F()
815 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
819 ; CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_Fra… in TEST_F()
835 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
837 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
861 ; CHECK: uint_0 = OpConstant %uint 0 in TEST_F()
862 ; CHECK: bool = OpTypeBool in TEST_F()
863 ; CHECK: %86 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
864 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
866 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
867 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
868 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
869 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
870 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
871 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
872 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
873 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
874 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
875 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
876 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
877 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
878 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
879 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
880 ; CHECK: %uint_51 = OpConstant %uint 51 in TEST_F()
881 ; CHECK: %141 = OpConstantNull %v4float in TEST_F()
896 ; CHECK-NOT: %71 = OpImageRead %v4float %75 %53 in TEST_F()
897 ; CHECK-NOT: OpStore %_entryPointOutput_vColor %71 in TEST_F()
898 ; CHECK: %78 = OpULessThan %bool %64 %uint_128 in TEST_F()
899 ; CHECK: OpSelectionMerge %79 None in TEST_F()
900 ; CHECK: OpBranchConditional %78 %80 %81 in TEST_F()
901 ; CHECK: %80 = OpLabel in TEST_F()
902 ; CHECK: %82 = OpLoad %39 %65 in TEST_F()
903 ; CHECK: %83 = OpImage %20 %82 in TEST_F()
904 ; CHECK: %84 = OpImageRead %v4float %83 %53 in TEST_F()
905 ; CHECK: OpBranch %79 in TEST_F()
906 ; CHECK: %81 = OpLabel in TEST_F()
907 ; CHECK: %140 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_0 %64 %uint_128 in TEST_F()
908 ; CHECK: OpBranch %79 in TEST_F()
909 ; CHECK: %79 = OpLabel in TEST_F()
910 ; CHECK: %142 = OpPhi %v4float %84 %80 %141 %81 in TEST_F()
911 ; CHECK: OpStore %_entryPointOutput_vColor %142 in TEST_F()
932 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
936 ; CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_Fra… in TEST_F()
953 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
977 ; CHECK: uint_0 = OpConstant %uint 0 in TEST_F()
978 ; CHECK: bool = OpTypeBool in TEST_F()
979 ; CHECK: %81 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
980 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
982 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
983 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
984 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
985 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
986 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
987 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
988 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
989 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
990 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
991 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
992 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
993 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
994 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
995 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
996 ; CHECK: %uint_49 = OpConstant %uint 49 in TEST_F()
997 ; CHECK: %136 = OpConstantNull %v4float in TEST_F()
1011 ; CHECK-NOT: %71 = OpImageSampleImplicitLod %v4float %66 %53 in TEST_F()
1012 ; CHECK-NOT: OpStore %_entryPointOutput_vColor %71 in TEST_F()
1013 ; CHECK: %74 = OpULessThan %bool %64 %uint_128 in TEST_F()
1014 ; CHECK: OpSelectionMerge %75 None in TEST_F()
1015 ; CHECK: OpBranchConditional %74 %76 %77 in TEST_F()
1016 ; CHECK: %76 = OpLabel in TEST_F()
1017 ; CHECK: %78 = OpLoad %39 %65 in TEST_F()
1018 ; CHECK: %79 = OpImageSampleImplicitLod %v4float %78 %53 in TEST_F()
1019 ; CHECK: OpBranch %75 in TEST_F()
1020 ; CHECK: %77 = OpLabel in TEST_F()
1021 ; CHECK: %135 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_49 %uint_0 %64 %uint_128 in TEST_F()
1022 ; CHECK: OpBranch %75 in TEST_F()
1023 ; CHECK: %75 = OpLabel in TEST_F()
1024 ; CHECK: %137 = OpPhi %v4float %79 %76 %136 %77 in TEST_F()
1025 ; CHECK: OpStore %_entryPointOutput_vColor %137 in TEST_F()
1047 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
1051 ; CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_Fra… in TEST_F()
1067 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
1069 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
1094 ; CHECK: uint_0 = OpConstant %uint 0 in TEST_F()
1095 ; CHECK: bool = OpTypeBool in TEST_F()
1096 ; CHECK: %41 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
1097 ; CHECK: _runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
1099 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
1100 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
1101 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
1102 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
1103 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
1104 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
1105 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
1106 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
1107 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
1108 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
1109 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
1110 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
1111 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
1112 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
1113 ; CHECK: %uint_51 = OpConstant %uint 51 in TEST_F()
1127 ; CHECK-NOT: OpImageWrite %66 %53 %80 in TEST_F()
1128 ; CHECK-NOT: OpStore %_entryPointOutput_vColor %80 in TEST_F()
1129 ; CHECK: %35 = OpULessThan %bool %30 %uint_128 in TEST_F()
1130 ; CHECK: OpSelectionMerge %36 None in TEST_F()
1131 ; CHECK: OpBranchConditional %35 %37 %38 in TEST_F()
1132 ; CHECK: %37 = OpLabel in TEST_F()
1133 ; CHECK: %39 = OpLoad %16 %31 in TEST_F()
1134 ; CHECK: OpImageWrite %39 %28 %19 in TEST_F()
1135 ; CHECK: OpBranch %36 in TEST_F()
1136 ; CHECK: %38 = OpLabel in TEST_F()
1137 ; CHECK: %95 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_0 %30 %uint_128 in TEST_F()
1138 ; CHECK: OpBranch %36 in TEST_F()
1139 ; CHECK: %36 = OpLabel in TEST_F()
1140 ; CHECK: OpStore %_entryPointOutput_vColor %19 in TEST_F()
1162 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
1181 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
1183 ; CHECK: OpDecorate %gl_VertexIndex BuiltIn VertexIndex in TEST_F()
1184 ; CHECK: OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex in TEST_F()
1227 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
1228 ; CHECK: %bool = OpTypeBool in TEST_F()
1229 ; CHECK: %54 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
1230 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
1232 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
1233 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
1234 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
1235 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
1236 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
1237 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
1238 ; CHECK: %_ptr_Input_uint = OpTypePointer Input %uint in TEST_F()
1239 ; CHECK: %gl_VertexIndex = OpVariable %_ptr_Input_uint Input in TEST_F()
1240 ; CHECK: %gl_InstanceIndex = OpVariable %_ptr_Input_uint Input in TEST_F()
1241 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
1242 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
1243 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
1244 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
1245 ; CHECK: %uint_74 = OpConstant %uint 74 in TEST_F()
1246 ; CHECK: %106 = OpConstantNull %v4float in TEST_F()
1266 ; CHECK-NOT: %38 = OpImageSampleExplicitLod %v4float %35 %36 Lod %37 in TEST_F()
1267 ; CHECK-NOT: %40 = OpAccessChain %_ptr_Output_v4float %_ %int_0 in TEST_F()
1268 ; CHECK-NOT: OpStore %40 %38 in TEST_F()
1269 ; CHECK: %46 = OpULessThan %bool %37 %uint_128 in TEST_F()
1270 ; CHECK: OpSelectionMerge %47 None in TEST_F()
1271 ; CHECK: OpBranchConditional %46 %48 %49 in TEST_F()
1272 ; CHECK: %48 = OpLabel in TEST_F()
1273 ; CHECK: %50 = OpLoad %25 %38 in TEST_F()
1274 ; CHECK: %51 = OpImageSampleExplicitLod %v4float %50 %40 Lod %41 in TEST_F()
1275 ; CHECK: OpBranch %47 in TEST_F()
1276 ; CHECK: %49 = OpLabel in TEST_F()
1277 ; CHECK: %52 = OpBitcast %uint %37 in TEST_F()
1278 ; CHECK: %105 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_74 %uint_0 %52 %uint_128 in TEST_F()
1279 ; CHECK: OpBranch %47 in TEST_F()
1280 ; CHECK: %47 = OpLabel in TEST_F()
1281 ; CHECK: %107 = OpPhi %v4float %51 %48 %106 %49 in TEST_F()
1282 ; CHECK: %43 = OpAccessChain %_ptr_Output_v4float %_ %int_0 in TEST_F()
1283 ; CHECK: OpStore %43 %107 in TEST_F()
1321 ; CHECK: OpEntryPoint TessellationEvaluation %main "main" %_ %gl_PrimitiveID %gl_TessCoord in TEST_F()
1353 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
1355 ; CHECK: OpDecorate %gl_PrimitiveID BuiltIn PrimitiveId in TEST_F()
1356 ; CHECK: OpDecorate %gl_TessCoord BuiltIn TessCoord in TEST_F()
1380 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
1381 ; CHECK: %bool = OpTypeBool in TEST_F()
1382 ; CHECK: %40 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
1383 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
1385 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
1386 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
1387 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
1388 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
1389 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
1390 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
1391 ; CHECK: %_ptr_Input_uint = OpTypePointer Input %uint in TEST_F()
1392 ; CHECK: %gl_PrimitiveID = OpVariable %_ptr_Input_uint Input in TEST_F()
1393 ; CHECK: %v3float = OpTypeVector %float 3 in TEST_F()
1394 ; CHECK: %_ptr_Input_v3float = OpTypePointer Input %v3float in TEST_F()
1395 ; CHECK: %gl_TessCoord = OpVariable %_ptr_Input_v3float Input in TEST_F()
1396 ; CHECK: %v3uint = OpTypeVector %uint 3 in TEST_F()
1397 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
1398 ; CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
1399 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
1400 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
1401 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
1402 ; CHECK: %uint_63 = OpConstant %uint 63 in TEST_F()
1403 ; CHECK: %101 = OpConstantNull %v4float in TEST_F()
1414 ; CHECK-NOT: %29 = OpLoad %v4float %28 in TEST_F()
1415 ; CHECK: %34 = OpULessThan %bool %28 %uint_11 in TEST_F()
1416 ; CHECK: OpSelectionMerge %35 None in TEST_F()
1417 ; CHECK: OpBranchConditional %34 %36 %37 in TEST_F()
1418 ; CHECK: %36 = OpLabel in TEST_F()
1419 ; CHECK: %38 = OpLoad %v4float %29 in TEST_F()
1420 ; CHECK: OpBranch %35 in TEST_F()
1421 ; CHECK: %37 = OpLabel in TEST_F()
1422 ; CHECK: %100 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_63 %uint_0 %28 %uint_11 in TEST_F()
1423 ; CHECK: OpBranch %35 in TEST_F()
1424 ; CHECK: %35 = OpLabel in TEST_F()
1425 ; CHECK: %102 = OpPhi %v4float %38 %36 %101 %37 in TEST_F()
1428 ; CHECK-NOT: OpStore %31 %29 in TEST_F()
1429 ; CHECK: OpStore %31 %102 in TEST_F()
1449 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
1453 ; CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_Fra… in TEST_F()
1482 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
1484 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
1518 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
1519 ; CHECK: %bool = OpTypeBool in TEST_F()
1520 ; CHECK: %70 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
1521 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
1523 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
1524 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
1525 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
1526 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
1527 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
1528 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
1529 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
1530 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
1531 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
1532 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
1533 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
1534 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
1535 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
1536 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
1537 ; CHECK: %uint_109 = OpConstant %uint 109 in TEST_F()
1538 ; CHECK: %125 = OpConstantNull %v4float in TEST_F()
1575 ; CHECK-NOT: %45 = OpImageSampleImplicitLod %v4float %41 %44 in TEST_F()
1576 ; CHECK: OpNoLine in TEST_F()
1577 ; CHECK: %62 = OpULessThan %bool %50 %uint_128 in TEST_F()
1578 ; CHECK: OpSelectionMerge %63 None in TEST_F()
1579 ; CHECK: OpBranchConditional %62 %64 %65 in TEST_F()
1580 ; CHECK: %64 = OpLabel in TEST_F()
1581 ; CHECK: %66 = OpLoad %27 %51 in TEST_F()
1582 ; CHECK: %67 = OpSampledImage %37 %66 %53 in TEST_F()
1583 ; CHECK: OpLine %5 24 0 in TEST_F()
1584 ; CHECK: %68 = OpImageSampleImplicitLod %v4float %67 %56 in TEST_F()
1585 ; CHECK: OpNoLine in TEST_F()
1586 ; CHECK: OpBranch %63 in TEST_F()
1587 ; CHECK: %65 = OpLabel in TEST_F()
1588 ; CHECK: %124 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_109 %uint_0 %50 %uint_128 in TEST_F()
1589 ; CHECK: OpBranch %63 in TEST_F()
1590 ; CHECK: %63 = OpLabel in TEST_F()
1591 ; CHECK: %126 = OpPhi %v4float %68 %64 %125 %65 in TEST_F()
1592 ; CHECK: OpLine %5 24 0 in TEST_F()
1619 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
1623 ; CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_Fra… in TEST_F()
1642 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
1644 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
1671 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
1672 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
1673 ; CHECK: %41 = OpTypeFunction %uint %uint %uint in TEST_F()
1674 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
1676 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
1677 ; CHECK: %bool = OpTypeBool in TEST_F()
1678 ; CHECK: %65 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
1680 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
1681 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
1682 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
1683 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
1684 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
1685 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
1686 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
1687 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
1688 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
1689 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
1690 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
1691 ; CHECK: %uint_59 = OpConstant %uint 59 in TEST_F()
1692 ; CHECK: %116 = OpConstantNull %v4float in TEST_F()
1693 ; CHECK: %119 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
1709 ; CHECK-NOT: %71 = OpImageSampleImplicitLod %v4float %68 %53 in TEST_F()
1710 ; CHECK-NOT: OpStore %_entryPointOutput_vColor %71 in TEST_F()
1711 ; CHECK: %55 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_2 %uint_2 in TEST_F()
1712 ; CHECK: %57 = OpULessThan %bool %32 %55 in TEST_F()
1713 ; CHECK: OpSelectionMerge %58 None in TEST_F()
1714 ; CHECK: OpBranchConditional %57 %59 %60 in TEST_F()
1715 ; CHECK: %59 = OpLabel in TEST_F()
1716 ; CHECK: %61 = OpLoad %16 %33 in TEST_F()
1717 ; CHECK: %62 = OpSampledImage %26 %61 %35 in TEST_F()
1718 ; CHECK: %136 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_1 %uint_2 %32 in TEST_F()
1719 ; CHECK: %137 = OpULessThan %bool %uint_0 %136 in TEST_F()
1720 ; CHECK: OpSelectionMerge %138 None in TEST_F()
1721 ; CHECK: OpBranchConditional %137 %139 %140 in TEST_F()
1722 ; CHECK: %139 = OpLabel in TEST_F()
1723 ; CHECK: %141 = OpLoad %16 %33 in TEST_F()
1724 ; CHECK: %142 = OpSampledImage %26 %141 %35 in TEST_F()
1725 ; CHECK: %143 = OpImageSampleImplicitLod %v4float %142 %30 in TEST_F()
1726 ; CHECK: OpBranch %138 in TEST_F()
1727 ; CHECK: %140 = OpLabel in TEST_F()
1728 ; CHECK: %144 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_59 %uint_1 %32 %uint_0 in TEST_F()
1729 ; CHECK: OpBranch %138 in TEST_F()
1730 ; CHECK: %138 = OpLabel in TEST_F()
1731 ; CHECK: %145 = OpPhi %v4float %143 %139 %116 %140 in TEST_F()
1732 ; CHECK: OpBranch %58 in TEST_F()
1733 ; CHECK: %60 = OpLabel in TEST_F()
1734 ; CHECK: %115 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_59 %uint_0 %32 %55 in TEST_F()
1735 ; CHECK: OpBranch %58 in TEST_F()
1736 ; CHECK: %58 = OpLabel in TEST_F()
1737 ; CHECK: %117 = OpPhi %v4float %145 %138 %116 %60 in TEST_F()
1738 ; CHECK: OpStore %_entryPointOutput_vColor %117 in TEST_F()
1753 // texture sample on a scalar descriptor with an initialization check if the in TEST_F()
1762 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
1766 ; CHECK: OpEntryPoint Fragment %MainPs "MainPs" %i_vTextureCoords %_entryPointOutput_vColor %gl_Fra… in TEST_F()
1780 ; check: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
1782 ; check: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
1799 ; CHECK: %uint = OpTypeInt 32 0 in TEST_F()
1800 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
1801 ; CHECK: %28 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
1802 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
1804 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
1805 ; CHECK: %bool = OpTypeBool in TEST_F()
1806 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
1807 ; CHECK: %61 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
1809 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
1810 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
1811 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
1812 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
1813 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
1814 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
1815 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
1816 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
1817 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
1818 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
1819 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
1820 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
1821 ; CHECK: %uint_39 = OpConstant %uint 39 in TEST_F()
1822 ; CHECK: %113 = OpConstantNull %v4float in TEST_F()
1835 ; CHECK-NOT: %24 = OpImageSampleImplicitLod %v4float %23 %20 in TEST_F()
1836 ; CHECK-NOT: OpStore %_entryPointOutput_vColor %24 in TEST_F()
1837 ; CHECK: %50 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
1838 ; CHECK: %52 = OpULessThan %bool %uint_0 %50 in TEST_F()
1839 ; CHECK: OpSelectionMerge %54 None in TEST_F()
1840 ; CHECK: OpBranchConditional %52 %55 %56 in TEST_F()
1841 ; CHECK: %55 = OpLabel in TEST_F()
1842 ; CHECK: %57 = OpLoad %12 %g_tColor in TEST_F()
1843 ; CHECK: %58 = OpSampledImage %16 %57 %22 in TEST_F()
1844 ; CHECK: %59 = OpImageSampleImplicitLod %v4float %58 %20 in TEST_F()
1845 ; CHECK: OpBranch %54 in TEST_F()
1846 ; CHECK: %56 = OpLabel in TEST_F()
1847 ; CHECK: %112 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_39 %uint_1 %uint_0 %uint_0 in TEST_F()
1848 ; CHECK: OpBranch %54 in TEST_F()
1849 ; CHECK: %54 = OpLabel in TEST_F()
1850 ; CHECK: %114 = OpPhi %v4float %59 %55 %113 %56 in TEST_F()
1851 ; CHECK: OpStore %_entryPointOutput_vColor %114 in TEST_F()
1866 ; CHECK: OpEntryPoint Fragment {{%\w+}} "foo" {{%\w+}} {{%\w+}} {{%\w+}} [[v1:%\w+]] [[v2:%\w+]] in TEST_F()
1867 ; CHECK: OpDecorate [[v1]] DescriptorSet 7 in TEST_F()
1868 ; CHECK: OpDecorate [[v2]] DescriptorSet 7 in TEST_F()
1869 ; CHECK: [[v1]] = OpVariable {{%\w+}} StorageBuffer in TEST_F()
1870 ; CHECK: [[v2]] = OpVariable {{%\w+}} StorageBuffer in TEST_F()
1923 ; CHECK: OpEntryPoint Fragment {{%\w+}} "foo" {{%\w+}} {{%\w+}} {{%\w+}} [[v1:%\w+]] [[v2:%\w+]] in TEST_F()
1924 ; CHECK: OpEntryPoint Fragment {{%\w+}} "bar" {{%\w+}} {{%\w+}} {{%\w+}} [[v1:%\w+]] [[v2:%\w+]] in TEST_F()
1925 ; CHECK: OpDecorate [[v1]] DescriptorSet 7 in TEST_F()
1926 ; CHECK: OpDecorate [[v2]] DescriptorSet 7 in TEST_F()
1927 ; CHECK: [[v1]] = OpVariable {{%\w+}} StorageBuffer in TEST_F()
1928 ; CHECK: [[v2]] = OpVariable {{%\w+}} StorageBuffer in TEST_F()
2001 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
2005 ; CHECK: OpEntryPoint Fragment %main "main" %b %nu_ii %gl_FragCoord in TEST_F()
2025 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
2027 ; CHECK: OpDecorate %130 NonUniform in TEST_F()
2029 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
2030 ; CHECK: OpDecorate %127 NonUniform in TEST_F()
2045 ; CHECK: %uint = OpTypeInt 32 0 in TEST_F()
2046 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
2047 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
2048 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
2049 ; CHECK: %26 = OpTypeFunction %uint %uint %uint in TEST_F()
2050 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
2052 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
2053 ; CHECK: %bool = OpTypeBool in TEST_F()
2054 ; CHECK: %49 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
2056 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
2057 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
2058 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
2059 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
2060 ; CHECK: %v4float = OpTypeVector %float 4 in TEST_F()
2061 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
2062 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
2063 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
2064 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
2065 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
2066 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
2067 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
2068 ; CHECK: %uint_45 = OpConstant %uint 45 in TEST_F()
2069 ; CHECK: %101 = OpConstantNull %float in TEST_F()
2070 ; CHECK: %105 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
2081 ; CHECK-NOT: %20 = OpLoad %float %19 in TEST_F()
2082 ; CHECK-NOT: OpStore %b %20 in TEST_F()
2083 ; CHECK: %40 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_3 in TEST_F()
2084 ; CHECK: %42 = OpULessThan %bool %7 %40 in TEST_F()
2085 ; CHECK: OpSelectionMerge %43 None in TEST_F()
2086 ; CHECK: OpBranchConditional %42 %44 %45 in TEST_F()
2087 ; CHECK: %44 = OpLabel in TEST_F()
2088 ; CHECK: %103 = OpBitcast %uint %7 in TEST_F()
2089 ; CHECK: %122 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_3 %103 in TEST_F()
2090 ; CHECK: %123 = OpULessThan %bool %uint_0 %122 in TEST_F()
2091 ; CHECK: OpSelectionMerge %124 None in TEST_F()
2092 ; CHECK: OpBranchConditional %123 %125 %126 in TEST_F()
2093 ; CHECK: %125 = OpLabel in TEST_F()
2094 ; CHECK: %127 = OpLoad %float %20 in TEST_F()
2095 ; CHECK: OpBranch %124 in TEST_F()
2096 ; CHECK: %126 = OpLabel in TEST_F()
2097 ; CHECK: %128 = OpBitcast %uint %7 in TEST_F()
2098 ; CHECK: %129 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_45 %uint_1 %128 %uint_0 in TEST_F()
2099 ; CHECK: OpBranch %124 in TEST_F()
2100 ; CHECK: %124 = OpLabel in TEST_F()
2101 ; CHECK: %130 = OpPhi %float %127 %125 %101 %126 in TEST_F()
2102 ; CHECK: OpBranch %43 in TEST_F()
2103 ; CHECK: %45 = OpLabel in TEST_F()
2104 ; CHECK: %47 = OpBitcast %uint %7 in TEST_F()
2105 ; CHECK: %100 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_45 %uint_0 %47 %40 in TEST_F()
2106 ; CHECK: OpBranch %43 in TEST_F()
2107 ; CHECK: %43 = OpLabel in TEST_F()
2108 ; CHECK: %102 = OpPhi %float %130 %124 %101 %45 in TEST_F()
2109 ; CHECK: OpStore %b %102 in TEST_F()
2143 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
2147 ; CHECK: OpEntryPoint Fragment %main "main" %b %nu_ii %gl_FragCoord in TEST_F()
2167 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
2169 ; CHECK: OpDecorate %130 NonUniform in TEST_F()
2171 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
2172 ; CHECK: OpDecorate %127 NonUniform in TEST_F()
2187 ; CHECK: %uint = OpTypeInt 32 0 in TEST_F()
2188 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
2189 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
2190 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
2191 ; CHECK: %26 = OpTypeFunction %uint %uint %uint in TEST_F()
2192 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
2194 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
2195 ; CHECK: %bool = OpTypeBool in TEST_F()
2196 ; CHECK: %49 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
2198 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
2199 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
2200 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
2201 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
2202 ; CHECK: %v4float = OpTypeVector %float 4 in TEST_F()
2203 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
2204 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
2205 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
2206 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
2207 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
2208 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
2209 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
2210 ; CHECK: %uint_45 = OpConstant %uint 45 in TEST_F()
2211 ; CHECK: %101 = OpConstantNull %float in TEST_F()
2212 ; CHECK: %105 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
2223 ; CHECK-NOT: %20 = OpLoad %float %19 in TEST_F()
2224 ; CHECK-NOT: OpStore %b %20 in TEST_F()
2225 ; CHECK: %40 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_3 in TEST_F()
2226 ; CHECK: %42 = OpULessThan %bool %7 %40 in TEST_F()
2227 ; CHECK: OpSelectionMerge %43 None in TEST_F()
2228 ; CHECK: OpBranchConditional %42 %44 %45 in TEST_F()
2229 ; CHECK: %44 = OpLabel in TEST_F()
2230 ; CHECK: %103 = OpBitcast %uint %7 in TEST_F()
2231 ; CHECK: %122 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_3 %103 in TEST_F()
2232 ; CHECK: %123 = OpULessThan %bool %uint_0 %122 in TEST_F()
2233 ; CHECK: OpSelectionMerge %124 None in TEST_F()
2234 ; CHECK: OpBranchConditional %123 %125 %126 in TEST_F()
2235 ; CHECK: %125 = OpLabel in TEST_F()
2236 ; CHECK: %127 = OpLoad %float %20 in TEST_F()
2237 ; CHECK: OpBranch %124 in TEST_F()
2238 ; CHECK: %126 = OpLabel in TEST_F()
2239 ; CHECK: %128 = OpBitcast %uint %7 in TEST_F()
2240 ; CHECK: %129 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_45 %uint_1 %128 %uint_0 in TEST_F()
2241 ; CHECK: OpBranch %124 in TEST_F()
2242 ; CHECK: %124 = OpLabel in TEST_F()
2243 ; CHECK: %130 = OpPhi %float %127 %125 %101 %126 in TEST_F()
2244 ; CHECK: OpBranch %43 in TEST_F()
2245 ; CHECK: %45 = OpLabel in TEST_F()
2246 ; CHECK: %47 = OpBitcast %uint %7 in TEST_F()
2247 ; CHECK: %100 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_45 %uint_0 %47 %40 in TEST_F()
2248 ; CHECK: OpBranch %43 in TEST_F()
2249 ; CHECK: %43 = OpLabel in TEST_F()
2250 ; CHECK: %102 = OpPhi %float %130 %124 %101 %45 in TEST_F()
2251 ; CHECK: OpStore %b %102 in TEST_F()
2274 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
2278 ; CHECK: OpEntryPoint Fragment %main "main" %b %nu_ii %gl_FragCoord in TEST_F()
2298 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
2300 ; CHECK: OpDecorate %130 NonUniform in TEST_F()
2302 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
2303 ; CHECK: OpDecorate %127 NonUniform in TEST_F()
2318 ; CHECK: %uint = OpTypeInt 32 0 in TEST_F()
2319 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
2320 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
2321 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
2322 ; CHECK: %26 = OpTypeFunction %uint %uint %uint in TEST_F()
2323 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
2325 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
2326 ; CHECK: %bool = OpTypeBool in TEST_F()
2327 ; CHECK: %49 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
2329 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
2330 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
2331 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
2332 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
2333 ; CHECK: %v4float = OpTypeVector %float 4 in TEST_F()
2334 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
2335 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
2336 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
2337 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
2338 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
2339 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
2340 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
2341 ; CHECK: %uint_45 = OpConstant %uint 45 in TEST_F()
2342 ; CHECK: %101 = OpConstantNull %float in TEST_F()
2343 ; CHECK: %105 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
2354 ; CHECK-NOT: %20 = OpLoad %float %19 in TEST_F()
2355 ; CHECK-NOT: OpStore %b %20 in TEST_F()
2356 ; CHECK: %40 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_3 in TEST_F()
2357 ; CHECK: %42 = OpULessThan %bool %7 %40 in TEST_F()
2358 ; CHECK: OpSelectionMerge %43 None in TEST_F()
2359 ; CHECK: OpBranchConditional %42 %44 %45 in TEST_F()
2360 ; CHECK: %44 = OpLabel in TEST_F()
2361 ; CHECK: %103 = OpBitcast %uint %7 in TEST_F()
2362 ; CHECK: %122 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_3 %103 in TEST_F()
2363 ; CHECK: %123 = OpULessThan %bool %uint_0 %122 in TEST_F()
2364 ; CHECK: OpSelectionMerge %124 None in TEST_F()
2365 ; CHECK: OpBranchConditional %123 %125 %126 in TEST_F()
2366 ; CHECK: %125 = OpLabel in TEST_F()
2367 ; CHECK: %127 = OpLoad %float %20 in TEST_F()
2368 ; CHECK: OpBranch %124 in TEST_F()
2369 ; CHECK: %126 = OpLabel in TEST_F()
2370 ; CHECK: %128 = OpBitcast %uint %7 in TEST_F()
2371 ; CHECK: %129 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_45 %uint_1 %128 %uint_0 in TEST_F()
2372 ; CHECK: OpBranch %124 in TEST_F()
2373 ; CHECK: %124 = OpLabel in TEST_F()
2374 ; CHECK: %130 = OpPhi %float %127 %125 %101 %126 in TEST_F()
2375 ; CHECK: OpBranch %43 in TEST_F()
2376 ; CHECK: %45 = OpLabel in TEST_F()
2377 ; CHECK: %47 = OpBitcast %uint %7 in TEST_F()
2378 ; CHECK: %100 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_45 %uint_0 %47 %40 in TEST_F()
2379 ; CHECK: OpBranch %43 in TEST_F()
2380 ; CHECK: %43 = OpLabel in TEST_F()
2381 ; CHECK: %102 = OpPhi %float %130 %124 %101 %45 in TEST_F()
2382 ; CHECK: OpStore %b %102 in TEST_F()
2411 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
2415 ; CHECK: OpEntryPoint Fragment %main "main" %b %gl_FragCoord in TEST_F()
2429 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
2431 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
2443 ; CHECK: %int = OpTypeInt 32 1 in TEST_F()
2444 ; CHECK: %int_0 = OpConstant %int 0 in TEST_F()
2445 ; CHECK: %_ptr_Uniform_float = OpTypePointer Uniform %float in TEST_F()
2446 ; CHECK: %uint = OpTypeInt 32 0 in TEST_F()
2447 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
2448 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
2449 ; CHECK: %21 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
2450 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
2452 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
2453 ; CHECK: %bool = OpTypeBool in TEST_F()
2454 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
2455 ; CHECK: %52 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
2457 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
2458 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
2459 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
2460 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
2461 ; CHECK: %v4float = OpTypeVector %float 4 in TEST_F()
2462 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
2463 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
2464 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
2465 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
2466 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
2467 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
2468 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
2469 ; CHECK: %uint_32 = OpConstant %uint 32 in TEST_F()
2470 ; CHECK: %104 = OpConstantNull %float in TEST_F()
2480 ; CHECK-NOT: %16 = OpLoad %float %15 in TEST_F()
2481 ; CHECK-NOT: OpStore %b %16 in TEST_F()
2482 ; CHECK: %43 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_3 %uint_0 in TEST_F()
2483 ; CHECK: %45 = OpULessThan %bool %uint_0 %43 in TEST_F()
2484 ; CHECK: OpSelectionMerge %47 None in TEST_F()
2485 ; CHECK: OpBranchConditional %45 %48 %49 in TEST_F()
2486 ; CHECK: %48 = OpLabel in TEST_F()
2487 ; CHECK: %50 = OpLoad %float %15 in TEST_F()
2488 ; CHECK: OpBranch %47 in TEST_F()
2489 ; CHECK: %49 = OpLabel in TEST_F()
2490 ; CHECK: %103 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_32 %uint_1 %uint_0 %uint_0 in TEST_F()
2491 ; CHECK: OpBranch %47 in TEST_F()
2492 ; CHECK: %47 = OpLabel in TEST_F()
2493 ; CHECK: %105 = OpPhi %float %50 %48 %104 %49 in TEST_F()
2494 ; CHECK: OpStore %b %105 in TEST_F()
2527 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
2531 ; CHECK: OpEntryPoint Fragment %main "main" %nu_ii %b %gl_FragCoord in TEST_F()
2550 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
2552 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
2567 ; CHECK: %uint = OpTypeInt 32 0 in TEST_F()
2568 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
2569 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
2570 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
2571 ; CHECK: %26 = OpTypeFunction %uint %uint %uint in TEST_F()
2572 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
2574 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
2575 ; CHECK: %bool = OpTypeBool in TEST_F()
2576 ; CHECK: %48 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
2578 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
2579 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
2580 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
2581 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
2582 ; CHECK: %v4float = OpTypeVector %float 4 in TEST_F()
2583 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
2584 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
2585 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
2586 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
2587 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
2588 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
2589 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
2590 ; CHECK: %uint_45 = OpConstant %uint 45 in TEST_F()
2591 ; CHECK: %102 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
2602 ; CHECK-NOT: OpStore %20 %18 in TEST_F()
2603 ; CHECK: %40 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_4 in TEST_F()
2604 ; CHECK: %42 = OpULessThan %bool %7 %40 in TEST_F()
2605 ; CHECK: OpSelectionMerge %43 None in TEST_F()
2606 ; CHECK: OpBranchConditional %42 %44 %45 in TEST_F()
2607 ; CHECK: %44 = OpLabel in TEST_F()
2608 ; CHECK: %100 = OpBitcast %uint %7 in TEST_F()
2609 ; CHECK: %119 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_4 %100 in TEST_F()
2610 ; CHECK: %120 = OpULessThan %bool %uint_0 %119 in TEST_F()
2611 ; CHECK: OpSelectionMerge %121 None in TEST_F()
2612 ; CHECK: OpBranchConditional %120 %122 %123 in TEST_F()
2613 ; CHECK: %122 = OpLabel in TEST_F()
2614 ; CHECK: OpStore %20 %19 in TEST_F()
2615 ; CHECK: OpBranch %121 in TEST_F()
2616 ; CHECK: %123 = OpLabel in TEST_F()
2617 ; CHECK: %124 = OpBitcast %uint %7 in TEST_F()
2618 ; CHECK: %125 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_45 %uint_1 %124 %uint_0 in TEST_F()
2619 ; CHECK: OpBranch %121 in TEST_F()
2620 ; CHECK: %121 = OpLabel in TEST_F()
2621 ; CHECK: OpBranch %43 in TEST_F()
2622 ; CHECK: %45 = OpLabel in TEST_F()
2623 ; CHECK: %46 = OpBitcast %uint %7 in TEST_F()
2624 ; CHECK: %99 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_45 %uint_0 %46 %40 in TEST_F()
2625 ; CHECK: OpBranch %43 in TEST_F()
2626 ; CHECK: %43 = OpLabel in TEST_F()
2659 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
2663 ; CHECK: OpEntryPoint Fragment %main "main" %b %nu_ii %gl_FragCoord in TEST_F()
2683 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
2685 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
2687 ; CHECK: OpDecorate %117 NonUniform in TEST_F()
2704 ; CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
2705 ; CHECK: %bool = OpTypeBool in TEST_F()
2706 ; CHECK: %32 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
2707 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
2709 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
2710 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
2711 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
2712 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
2713 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
2714 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
2715 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
2716 ; CHECK: %v4float = OpTypeVector %float 4 in TEST_F()
2717 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
2718 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
2719 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
2720 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
2721 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
2722 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
2723 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
2724 ; CHECK: %uint_46 = OpConstant %uint 46 in TEST_F()
2725 ; CHECK: %88 = OpConstantNull %float in TEST_F()
2726 ; CHECK: %92 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
2737 ; CHECK-NOT: %22 = OpLoad %float %21 in TEST_F()
2738 ; CHECK-NOT: OpStore %b %22 in TEST_F()
2739 ; CHECK: %25 = OpULessThan %bool %7 %uint_128 in TEST_F()
2740 ; CHECK: OpSelectionMerge %26 None in TEST_F()
2741 ; CHECK: OpBranchConditional %25 %27 %28 in TEST_F()
2742 ; CHECK: %27 = OpLabel in TEST_F()
2743 ; CHECK: %90 = OpBitcast %uint %7 in TEST_F()
2744 ; CHECK: %112 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_3 %90 in TEST_F()
2745 ; CHECK: %113 = OpULessThan %bool %uint_0 %112 in TEST_F()
2746 ; CHECK: OpSelectionMerge %114 None in TEST_F()
2747 ; CHECK: OpBranchConditional %113 %115 %116 in TEST_F()
2748 ; CHECK: %115 = OpLabel in TEST_F()
2749 ; CHECK: %117 = OpLoad %float %22 in TEST_F()
2750 ; CHECK: OpBranch %114 in TEST_F()
2751 ; CHECK: %116 = OpLabel in TEST_F()
2752 ; CHECK: %118 = OpBitcast %uint %7 in TEST_F()
2753 ; CHECK: %119 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_46 %uint_1 %118 %uint_0 in TEST_F()
2754 ; CHECK: OpBranch %114 in TEST_F()
2755 ; CHECK: %114 = OpLabel in TEST_F()
2756 ; CHECK: %120 = OpPhi %float %117 %115 %88 %116 in TEST_F()
2757 ; CHECK: OpBranch %26 in TEST_F()
2758 ; CHECK: %28 = OpLabel in TEST_F()
2759 ; CHECK: %30 = OpBitcast %uint %7 in TEST_F()
2760 ; CHECK: %87 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_46 %uint_0 %30 %uint_128 in TEST_F()
2761 ; CHECK: OpBranch %26 in TEST_F()
2762 ; CHECK: %26 = OpLabel in TEST_F()
2763 ; CHECK: %89 = OpPhi %float %120 %114 %88 %28 in TEST_F()
2764 ; CHECK: OpStore %b %89 in TEST_F()
2801 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
2805 ; CHECK: OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID in TEST_F()
2823 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
2825 ; CHECK: OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId in TEST_F()
2847 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
2848 ; CHECK: %34 = OpTypeFunction %uint %uint %uint in TEST_F()
2849 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
2851 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
2852 ; CHECK: %bool = OpTypeBool in TEST_F()
2853 ; CHECK: %57 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
2855 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
2856 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
2857 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
2858 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
2859 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
2860 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
2861 ; CHECK: %v3uint = OpTypeVector %uint 3 in TEST_F()
2862 ; CHECK: %_ptr_Input_v3uint = OpTypePointer Input %v3uint in TEST_F()
2863 ; CHECK: %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input in TEST_F()
2864 ; CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
2865 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
2866 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
2867 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
2868 ; CHECK: %uint_50 = OpConstant %uint 50 in TEST_F()
2869 ; CHECK: %112 = OpConstantNull %v4float in TEST_F()
2870 ; CHECK: %115 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
2871 ; CHECK: %uint_47 = OpConstant %uint 47 in TEST_F()
2872 ; CHECK: %140 = OpConstantNull %uint in TEST_F()
2873 ; CHECK: %uint_53 = OpConstant %uint 53 in TEST_F()
2888 ; CHECK-NOT: OpStore %31 %29 in TEST_F()
2889 ; CHECK: %132 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
2890 ; CHECK: %133 = OpULessThan %bool %uint_0 %132 in TEST_F()
2891 ; CHECK: OpSelectionMerge %134 None in TEST_F()
2892 ; CHECK: OpBranchConditional %133 %135 %136 in TEST_F()
2893 ; CHECK: %135 = OpLabel in TEST_F()
2894 ; CHECK: %137 = OpLoad %uint %25 in TEST_F()
2895 ; CHECK: OpBranch %134 in TEST_F()
2896 ; CHECK: %136 = OpLabel in TEST_F()
2897 ; CHECK: %139 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_47 %uint_1 %uint_0 %uint_0 in TEST_F()
2898 ; CHECK: OpBranch %134 in TEST_F()
2899 ; CHECK: %134 = OpLabel in TEST_F()
2900 ; CHECK: %141 = OpPhi %uint %137 %135 %140 %136 in TEST_F()
2901 ; CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images %141 in TEST_F()
2902 ; CHECK: %28 = OpLoad %13 %27 in TEST_F()
2903 ; CHECK: %48 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_1 in TEST_F()
2904 ; CHECK: %50 = OpULessThan %bool %141 %48 in TEST_F()
2905 ; CHECK: OpSelectionMerge %51 None in TEST_F()
2906 ; CHECK: OpBranchConditional %50 %52 %53 in TEST_F()
2907 ; CHECK: %52 = OpLabel in TEST_F()
2908 ; CHECK: %54 = OpLoad %13 %27 in TEST_F()
2909 ; CHECK: %142 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_1 %141 in TEST_F()
2910 ; CHECK: %143 = OpULessThan %bool %uint_0 %142 in TEST_F()
2911 ; CHECK: OpSelectionMerge %144 None in TEST_F()
2912 ; CHECK: OpBranchConditional %143 %145 %146 in TEST_F()
2913 ; CHECK: %145 = OpLabel in TEST_F()
2914 ; CHECK: %147 = OpLoad %13 %27 in TEST_F()
2915 ; CHECK: %148 = OpImageRead %v4float %147 %20 in TEST_F()
2916 ; CHECK: OpBranch %144 in TEST_F()
2917 ; CHECK: %146 = OpLabel in TEST_F()
2918 ; CHECK: %149 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_50 %uint_1 %141 %uint_0 in TEST_F()
2919 ; CHECK: OpBranch %144 in TEST_F()
2920 ; CHECK: %144 = OpLabel in TEST_F()
2921 ; CHECK: %150 = OpPhi %v4float %148 %145 %112 %146 in TEST_F()
2922 ; CHECK: OpBranch %51 in TEST_F()
2923 ; CHECK: %53 = OpLabel in TEST_F()
2924 ; CHECK: %111 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_50 %uint_0 %141 %48 in TEST_F()
2925 ; CHECK: OpBranch %51 in TEST_F()
2926 ; CHECK: %51 = OpLabel in TEST_F()
2927 ; CHECK: %113 = OpPhi %v4float %150 %144 %112 %53 in TEST_F()
2928 ; CHECK: %30 = OpCompositeExtract %float %113 0 in TEST_F()
2929 ; CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1 in TEST_F()
2930 ; CHECK: %151 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
2931 ; CHECK: %152 = OpULessThan %bool %uint_0 %151 in TEST_F()
2932 ; CHECK: OpSelectionMerge %153 None in TEST_F()
2933 ; CHECK: OpBranchConditional %152 %154 %155 in TEST_F()
2934 ; CHECK: %154 = OpLabel in TEST_F()
2935 ; CHECK: OpStore %31 %30 in TEST_F()
2936 ; CHECK: OpBranch %153 in TEST_F()
2937 ; CHECK: %155 = OpLabel in TEST_F()
2938 ; CHECK: %157 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_53 %uint_1 %uint_0 %uint_0 in TEST_F()
2939 ; CHECK: OpBranch %153 in TEST_F()
2940 ; CHECK: %153 = OpLabel in TEST_F()
2978 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
2982 ; CHECK: OpEntryPoint RayGenerationNV %main "main" %89 in TEST_F()
3000 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
3002 ; CHECK: OpDecorate %89 BuiltIn LaunchIdNV in TEST_F()
3024 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
3025 ; CHECK: %34 = OpTypeFunction %uint %uint %uint in TEST_F()
3026 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
3028 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
3029 ; CHECK: %bool = OpTypeBool in TEST_F()
3030 ; CHECK: %57 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
3032 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
3033 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
3034 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
3035 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
3036 ; CHECK: %uint_5313 = OpConstant %uint 5313 in TEST_F()
3037 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
3038 ; CHECK: %v3uint = OpTypeVector %uint 3 in TEST_F()
3039 ; CHECK: %_ptr_Input_v3uint = OpTypePointer Input %v3uint in TEST_F()
3040 ; CHECK: %89 = OpVariable %_ptr_Input_v3uint Input in TEST_F()
3041 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
3042 ; CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
3043 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
3044 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
3045 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
3046 ; CHECK: %uint_51 = OpConstant %uint 51 in TEST_F()
3047 ; CHECK: %113 = OpConstantNull %v4float in TEST_F()
3048 ; CHECK: %116 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
3049 ; CHECK: %uint_48 = OpConstant %uint 48 in TEST_F()
3050 ; CHECK: %141 = OpConstantNull %uint in TEST_F()
3051 ; CHECK: %uint_54 = OpConstant %uint 54 in TEST_F()
3066 ; CHECK-NOT: OpStore %31 %29 in TEST_F()
3067 ; CHECK: %133 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3068 ; CHECK: %134 = OpULessThan %bool %uint_0 %133 in TEST_F()
3069 ; CHECK: OpSelectionMerge %135 None in TEST_F()
3070 ; CHECK: OpBranchConditional %134 %136 %137 in TEST_F()
3071 ; CHECK: %136 = OpLabel in TEST_F()
3072 ; CHECK: %138 = OpLoad %uint %25 in TEST_F()
3073 ; CHECK: OpBranch %135 in TEST_F()
3074 ; CHECK: %137 = OpLabel in TEST_F()
3075 ; CHECK: %140 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_48 %uint_1 %uint_0 %uint_0 in TEST_F()
3076 ; CHECK: OpBranch %135 in TEST_F()
3077 ; CHECK: %135 = OpLabel in TEST_F()
3078 ; CHECK: %142 = OpPhi %uint %138 %136 %141 %137 in TEST_F()
3079 ; CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images %142 in TEST_F()
3080 ; CHECK: %28 = OpLoad %13 %27 in TEST_F()
3081 ; CHECK: %48 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_1 in TEST_F()
3082 ; CHECK: %50 = OpULessThan %bool %142 %48 in TEST_F()
3083 ; CHECK: OpSelectionMerge %51 None in TEST_F()
3084 ; CHECK: OpBranchConditional %50 %52 %53 in TEST_F()
3085 ; CHECK: %52 = OpLabel in TEST_F()
3086 ; CHECK: %54 = OpLoad %13 %27 in TEST_F()
3087 ; CHECK: %143 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_1 %142 in TEST_F()
3088 ; CHECK: %144 = OpULessThan %bool %uint_0 %143 in TEST_F()
3089 ; CHECK: OpSelectionMerge %145 None in TEST_F()
3090 ; CHECK: OpBranchConditional %144 %146 %147 in TEST_F()
3091 ; CHECK: %146 = OpLabel in TEST_F()
3092 ; CHECK: %148 = OpLoad %13 %27 in TEST_F()
3093 ; CHECK: %149 = OpImageRead %v4float %148 %20 in TEST_F()
3094 ; CHECK: OpBranch %145 in TEST_F()
3095 ; CHECK: %147 = OpLabel in TEST_F()
3096 ; CHECK: %150 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_1 %142 %uint_0 in TEST_F()
3097 ; CHECK: OpBranch %145 in TEST_F()
3098 ; CHECK: %145 = OpLabel in TEST_F()
3099 ; CHECK: %151 = OpPhi %v4float %149 %146 %113 %147 in TEST_F()
3100 ; CHECK: OpBranch %51 in TEST_F()
3101 ; CHECK: %53 = OpLabel in TEST_F()
3102 ; CHECK: %112 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_0 %142 %48 in TEST_F()
3103 ; CHECK: OpBranch %51 in TEST_F()
3104 ; CHECK: %51 = OpLabel in TEST_F()
3105 ; CHECK: %114 = OpPhi %v4float %151 %145 %113 %53 in TEST_F()
3106 ; CHECK: %30 = OpCompositeExtract %float %114 0 in TEST_F()
3107 ; CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1 in TEST_F()
3108 ; CHECK: %152 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3109 ; CHECK: %153 = OpULessThan %bool %uint_0 %152 in TEST_F()
3110 ; CHECK: OpSelectionMerge %154 None in TEST_F()
3111 ; CHECK: OpBranchConditional %153 %155 %156 in TEST_F()
3112 ; CHECK: %155 = OpLabel in TEST_F()
3113 ; CHECK: OpStore %31 %30 in TEST_F()
3114 ; CHECK: OpBranch %154 in TEST_F()
3115 ; CHECK: %156 = OpLabel in TEST_F()
3116 ; CHECK: %158 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_54 %uint_1 %uint_0 %uint_0 in TEST_F()
3117 ; CHECK: OpBranch %154 in TEST_F()
3118 ; CHECK: %154 = OpLabel in TEST_F()
3155 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
3159 ; CHECK: OpEntryPoint IntersectionNV %main "main" %89 in TEST_F()
3177 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
3179 ; CHECK: OpDecorate %89 BuiltIn LaunchIdNV in TEST_F()
3201 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
3202 ; CHECK: %34 = OpTypeFunction %uint %uint %uint in TEST_F()
3203 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
3205 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
3206 ; CHECK: %bool = OpTypeBool in TEST_F()
3208 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
3209 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
3210 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
3211 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
3212 ; CHECK: %uint_5314 = OpConstant %uint 5314 in TEST_F()
3213 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
3214 ; CHECK: %v3uint = OpTypeVector %uint 3 in TEST_F()
3215 ; CHECK: %_ptr_Input_v3uint = OpTypePointer Input %v3uint in TEST_F()
3216 ; CHECK: %89 = OpVariable %_ptr_Input_v3uint Input in TEST_F()
3217 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
3218 ; CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
3219 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
3220 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
3221 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
3222 ; CHECK: %uint_51 = OpConstant %uint 51 in TEST_F()
3223 ; CHECK: %113 = OpConstantNull %v4float in TEST_F()
3224 ; CHECK: %116 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
3225 ; CHECK: %uint_48 = OpConstant %uint 48 in TEST_F()
3226 ; CHECK: %141 = OpConstantNull %uint in TEST_F()
3227 ; CHECK: %uint_54 = OpConstant %uint 54 in TEST_F()
3242 ; CHECK-NOT: OpStore %31 %29 in TEST_F()
3243 ; CHECK: %133 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3244 ; CHECK: %134 = OpULessThan %bool %uint_0 %133 in TEST_F()
3245 ; CHECK: OpSelectionMerge %135 None in TEST_F()
3246 ; CHECK: OpBranchConditional %134 %136 %137 in TEST_F()
3247 ; CHECK: %136 = OpLabel in TEST_F()
3248 ; CHECK: %138 = OpLoad %uint %25 in TEST_F()
3249 ; CHECK: OpBranch %135 in TEST_F()
3250 ; CHECK: %137 = OpLabel in TEST_F()
3251 ; CHECK: %140 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_48 %uint_1 %uint_0 %uint_0 in TEST_F()
3252 ; CHECK: OpBranch %135 in TEST_F()
3253 ; CHECK: %135 = OpLabel in TEST_F()
3254 ; CHECK: %142 = OpPhi %uint %138 %136 %141 %137 in TEST_F()
3255 ; CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images %142 in TEST_F()
3256 ; CHECK: %28 = OpLoad %13 %27 in TEST_F()
3257 ; CHECK: %48 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_1 in TEST_F()
3258 ; CHECK: %50 = OpULessThan %bool %142 %48 in TEST_F()
3259 ; CHECK: OpSelectionMerge %51 None in TEST_F()
3260 ; CHECK: OpBranchConditional %50 %52 %53 in TEST_F()
3261 ; CHECK: %52 = OpLabel in TEST_F()
3262 ; CHECK: %54 = OpLoad %13 %27 in TEST_F()
3263 ; CHECK: %143 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_1 %142 in TEST_F()
3264 ; CHECK: %144 = OpULessThan %bool %uint_0 %143 in TEST_F()
3265 ; CHECK: OpSelectionMerge %145 None in TEST_F()
3266 ; CHECK: OpBranchConditional %144 %146 %147 in TEST_F()
3267 ; CHECK: %146 = OpLabel in TEST_F()
3268 ; CHECK: %148 = OpLoad %13 %27 in TEST_F()
3269 ; CHECK: %149 = OpImageRead %v4float %148 %20 in TEST_F()
3270 ; CHECK: OpBranch %145 in TEST_F()
3271 ; CHECK: %147 = OpLabel in TEST_F()
3272 ; CHECK: %150 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_1 %142 %uint_0 in TEST_F()
3273 ; CHECK: OpBranch %145 in TEST_F()
3274 ; CHECK: %145 = OpLabel in TEST_F()
3275 ; CHECK: %151 = OpPhi %v4float %149 %146 %113 %147 in TEST_F()
3276 ; CHECK: OpBranch %51 in TEST_F()
3277 ; CHECK: %53 = OpLabel in TEST_F()
3278 ; CHECK: %112 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_0 %142 %48 in TEST_F()
3279 ; CHECK: OpBranch %51 in TEST_F()
3280 ; CHECK: %51 = OpLabel in TEST_F()
3281 ; CHECK: %114 = OpPhi %v4float %151 %145 %113 %53 in TEST_F()
3282 ; CHECK: %30 = OpCompositeExtract %float %114 0 in TEST_F()
3283 ; CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1 in TEST_F()
3284 ; CHECK: %152 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3285 ; CHECK: %153 = OpULessThan %bool %uint_0 %152 in TEST_F()
3286 ; CHECK: OpSelectionMerge %154 None in TEST_F()
3287 ; CHECK: OpBranchConditional %153 %155 %156 in TEST_F()
3288 ; CHECK: %155 = OpLabel in TEST_F()
3289 ; CHECK: OpStore %31 %30 in TEST_F()
3290 ; CHECK: OpBranch %154 in TEST_F()
3291 ; CHECK: %156 = OpLabel in TEST_F()
3292 ; CHECK: %158 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_54 %uint_1 %uint_0 %uint_0 in TEST_F()
3293 ; CHECK: OpBranch %154 in TEST_F()
3294 ; CHECK: %154 = OpLabel in TEST_F()
3331 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
3335 ; CHECK: OpEntryPoint AnyHitNV %main "main" %89 in TEST_F()
3353 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
3355 ; CHECK: OpDecorate %89 BuiltIn LaunchIdNV in TEST_F()
3377 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
3378 ; CHECK: %34 = OpTypeFunction %uint %uint %uint in TEST_F()
3379 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
3381 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
3382 ; CHECK: %bool = OpTypeBool in TEST_F()
3383 ; CHECK: %57 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
3385 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
3386 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
3387 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
3388 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
3389 ; CHECK: %uint_5315 = OpConstant %uint 5315 in TEST_F()
3390 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
3391 ; CHECK: %v3uint = OpTypeVector %uint 3 in TEST_F()
3392 ; CHECK: %_ptr_Input_v3uint = OpTypePointer Input %v3uint in TEST_F()
3393 ; CHECK: %89 = OpVariable %_ptr_Input_v3uint Input in TEST_F()
3394 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
3395 ; CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
3396 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
3397 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
3398 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
3399 ; CHECK: %uint_51 = OpConstant %uint 51 in TEST_F()
3400 ; CHECK: %113 = OpConstantNull %v4float in TEST_F()
3401 ; CHECK: %116 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
3402 ; CHECK: %uint_48 = OpConstant %uint 48 in TEST_F()
3403 ; CHECK: %141 = OpConstantNull %uint in TEST_F()
3404 ; CHECK: %uint_54 = OpConstant %uint 54 in TEST_F()
3419 ; CHECK-NOT: OpStore %31 %29 in TEST_F()
3420 ; CHECK: %133 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3421 ; CHECK: %134 = OpULessThan %bool %uint_0 %133 in TEST_F()
3422 ; CHECK: OpSelectionMerge %135 None in TEST_F()
3423 ; CHECK: OpBranchConditional %134 %136 %137 in TEST_F()
3424 ; CHECK: %136 = OpLabel in TEST_F()
3425 ; CHECK: %138 = OpLoad %uint %25 in TEST_F()
3426 ; CHECK: OpBranch %135 in TEST_F()
3427 ; CHECK: %137 = OpLabel in TEST_F()
3428 ; CHECK: %140 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_48 %uint_1 %uint_0 %uint_0 in TEST_F()
3429 ; CHECK: OpBranch %135 in TEST_F()
3430 ; CHECK: %135 = OpLabel in TEST_F()
3431 ; CHECK: %142 = OpPhi %uint %138 %136 %141 %137 in TEST_F()
3432 ; CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images %142 in TEST_F()
3433 ; CHECK: %28 = OpLoad %13 %27 in TEST_F()
3434 ; CHECK: %48 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_1 in TEST_F()
3435 ; CHECK: %50 = OpULessThan %bool %142 %48 in TEST_F()
3436 ; CHECK: OpSelectionMerge %51 None in TEST_F()
3437 ; CHECK: OpBranchConditional %50 %52 %53 in TEST_F()
3438 ; CHECK: %52 = OpLabel in TEST_F()
3439 ; CHECK: %54 = OpLoad %13 %27 in TEST_F()
3440 ; CHECK: %143 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_1 %142 in TEST_F()
3441 ; CHECK: %144 = OpULessThan %bool %uint_0 %143 in TEST_F()
3442 ; CHECK: OpSelectionMerge %145 None in TEST_F()
3443 ; CHECK: OpBranchConditional %144 %146 %147 in TEST_F()
3444 ; CHECK: %146 = OpLabel in TEST_F()
3445 ; CHECK: %148 = OpLoad %13 %27 in TEST_F()
3446 ; CHECK: %149 = OpImageRead %v4float %148 %20 in TEST_F()
3447 ; CHECK: OpBranch %145 in TEST_F()
3448 ; CHECK: %147 = OpLabel in TEST_F()
3449 ; CHECK: %150 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_1 %142 %uint_0 in TEST_F()
3450 ; CHECK: OpBranch %145 in TEST_F()
3451 ; CHECK: %145 = OpLabel in TEST_F()
3452 ; CHECK: %151 = OpPhi %v4float %149 %146 %113 %147 in TEST_F()
3453 ; CHECK: OpBranch %51 in TEST_F()
3454 ; CHECK: %53 = OpLabel in TEST_F()
3455 ; CHECK: %112 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_0 %142 %48 in TEST_F()
3456 ; CHECK: OpBranch %51 in TEST_F()
3457 ; CHECK: %51 = OpLabel in TEST_F()
3458 ; CHECK: %114 = OpPhi %v4float %151 %145 %113 %53 in TEST_F()
3459 ; CHECK: %30 = OpCompositeExtract %float %114 0 in TEST_F()
3460 ; CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1 in TEST_F()
3461 ; CHECK: %152 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3462 ; CHECK: %153 = OpULessThan %bool %uint_0 %152 in TEST_F()
3463 ; CHECK: OpSelectionMerge %154 None in TEST_F()
3464 ; CHECK: OpBranchConditional %153 %155 %156 in TEST_F()
3465 ; CHECK: %155 = OpLabel in TEST_F()
3466 ; CHECK: OpStore %31 %30 in TEST_F()
3467 ; CHECK: OpBranch %154 in TEST_F()
3468 ; CHECK: %156 = OpLabel in TEST_F()
3469 ; CHECK: %158 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_54 %uint_1 %uint_0 %uint_0 in TEST_F()
3470 ; CHECK: OpBranch %154 in TEST_F()
3471 ; CHECK: %154 = OpLabel in TEST_F()
3508 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
3512 ; CHECK: OpEntryPoint ClosestHitNV %main "main" %89 in TEST_F()
3530 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
3532 ; CHECK: OpDecorate %89 BuiltIn LaunchIdNV in TEST_F()
3554 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
3555 ; CHECK: %34 = OpTypeFunction %uint %uint %uint in TEST_F()
3556 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
3558 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
3559 ; CHECK: %bool = OpTypeBool in TEST_F()
3560 ; CHECK: %57 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
3562 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
3563 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
3564 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
3565 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
3566 ; CHECK: %uint_5316 = OpConstant %uint 5316 in TEST_F()
3567 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
3568 ; CHECK: %v3uint = OpTypeVector %uint 3 in TEST_F()
3569 ; CHECK: %_ptr_Input_v3uint = OpTypePointer Input %v3uint in TEST_F()
3570 ; CHECK: %89 = OpVariable %_ptr_Input_v3uint Input in TEST_F()
3571 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
3572 ; CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
3573 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
3574 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
3575 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
3576 ; CHECK: %uint_51 = OpConstant %uint 51 in TEST_F()
3577 ; CHECK: %113 = OpConstantNull %v4float in TEST_F()
3578 ; CHECK: %116 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
3579 ; CHECK: %uint_48 = OpConstant %uint 48 in TEST_F()
3580 ; CHECK: %141 = OpConstantNull %uint in TEST_F()
3581 ; CHECK: %uint_54 = OpConstant %uint 54 in TEST_F()
3596 ; CHECK-NOT: OpStore %31 %29 in TEST_F()
3597 ; CHECK: %133 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3598 ; CHECK: %134 = OpULessThan %bool %uint_0 %133 in TEST_F()
3599 ; CHECK: OpSelectionMerge %135 None in TEST_F()
3600 ; CHECK: OpBranchConditional %134 %136 %137 in TEST_F()
3601 ; CHECK: %136 = OpLabel in TEST_F()
3602 ; CHECK: %138 = OpLoad %uint %25 in TEST_F()
3603 ; CHECK: OpBranch %135 in TEST_F()
3604 ; CHECK: %137 = OpLabel in TEST_F()
3605 ; CHECK: %140 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_48 %uint_1 %uint_0 %uint_0 in TEST_F()
3606 ; CHECK: OpBranch %135 in TEST_F()
3607 ; CHECK: %135 = OpLabel in TEST_F()
3608 ; CHECK: %142 = OpPhi %uint %138 %136 %141 %137 in TEST_F()
3609 ; CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images %142 in TEST_F()
3610 ; CHECK: %28 = OpLoad %13 %27 in TEST_F()
3611 ; CHECK: %48 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_1 in TEST_F()
3612 ; CHECK: %50 = OpULessThan %bool %142 %48 in TEST_F()
3613 ; CHECK: OpSelectionMerge %51 None in TEST_F()
3614 ; CHECK: OpBranchConditional %50 %52 %53 in TEST_F()
3615 ; CHECK: %52 = OpLabel in TEST_F()
3616 ; CHECK: %54 = OpLoad %13 %27 in TEST_F()
3617 ; CHECK: %143 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_1 %142 in TEST_F()
3618 ; CHECK: %144 = OpULessThan %bool %uint_0 %143 in TEST_F()
3619 ; CHECK: OpSelectionMerge %145 None in TEST_F()
3620 ; CHECK: OpBranchConditional %144 %146 %147 in TEST_F()
3621 ; CHECK: %146 = OpLabel in TEST_F()
3622 ; CHECK: %148 = OpLoad %13 %27 in TEST_F()
3623 ; CHECK: %149 = OpImageRead %v4float %148 %20 in TEST_F()
3624 ; CHECK: OpBranch %145 in TEST_F()
3625 ; CHECK: %147 = OpLabel in TEST_F()
3626 ; CHECK: %150 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_1 %142 %uint_0 in TEST_F()
3627 ; CHECK: OpBranch %145 in TEST_F()
3628 ; CHECK: %145 = OpLabel in TEST_F()
3629 ; CHECK: %151 = OpPhi %v4float %149 %146 %113 %147 in TEST_F()
3630 ; CHECK: OpBranch %51 in TEST_F()
3631 ; CHECK: %53 = OpLabel in TEST_F()
3632 ; CHECK: %112 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_0 %142 %48 in TEST_F()
3633 ; CHECK: OpBranch %51 in TEST_F()
3634 ; CHECK: %51 = OpLabel in TEST_F()
3635 ; CHECK: %114 = OpPhi %v4float %151 %145 %113 %53 in TEST_F()
3636 ; CHECK: %30 = OpCompositeExtract %float %114 0 in TEST_F()
3637 ; CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1 in TEST_F()
3638 ; CHECK: %152 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3639 ; CHECK: %153 = OpULessThan %bool %uint_0 %152 in TEST_F()
3640 ; CHECK: OpSelectionMerge %154 None in TEST_F()
3641 ; CHECK: OpBranchConditional %153 %155 %156 in TEST_F()
3642 ; CHECK: %155 = OpLabel in TEST_F()
3643 ; CHECK: OpStore %31 %30 in TEST_F()
3644 ; CHECK: OpBranch %154 in TEST_F()
3645 ; CHECK: %156 = OpLabel in TEST_F()
3646 ; CHECK: %158 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_54 %uint_1 %uint_0 %uint_0 in TEST_F()
3647 ; CHECK: OpBranch %154 in TEST_F()
3648 ; CHECK: %154 = OpLabel in TEST_F()
3685 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
3689 ; CHECK: OpEntryPoint MissNV %main "main" %89 in TEST_F()
3707 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
3709 ; CHECK: OpDecorate %89 BuiltIn LaunchIdNV in TEST_F()
3731 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
3732 ; CHECK: %34 = OpTypeFunction %uint %uint %uint in TEST_F()
3733 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
3735 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
3736 ; CHECK: %bool = OpTypeBool in TEST_F()
3737 ; CHECK: %57 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
3739 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
3740 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
3741 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
3742 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
3743 ; CHECK: %uint_5317 = OpConstant %uint 5317 in TEST_F()
3744 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
3745 ; CHECK: %v3uint = OpTypeVector %uint 3 in TEST_F()
3746 ; CHECK: %_ptr_Input_v3uint = OpTypePointer Input %v3uint in TEST_F()
3747 ; CHECK: %89 = OpVariable %_ptr_Input_v3uint Input in TEST_F()
3748 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
3749 ; CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
3750 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
3751 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
3752 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
3753 ; CHECK: %uint_51 = OpConstant %uint 51 in TEST_F()
3754 ; CHECK: %113 = OpConstantNull %v4float in TEST_F()
3755 ; CHECK: %116 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
3756 ; CHECK: %uint_48 = OpConstant %uint 48 in TEST_F()
3757 ; CHECK: %141 = OpConstantNull %uint in TEST_F()
3758 ; CHECK: %uint_54 = OpConstant %uint 54 in TEST_F()
3773 ; CHECK-NOT OpStore %31 %29 in TEST_F()
3774 ; CHECK: %133 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3775 ; CHECK: %134 = OpULessThan %bool %uint_0 %133 in TEST_F()
3776 ; CHECK: OpSelectionMerge %135 None in TEST_F()
3777 ; CHECK: OpBranchConditional %134 %136 %137 in TEST_F()
3778 ; CHECK: %136 = OpLabel in TEST_F()
3779 ; CHECK: %138 = OpLoad %uint %25 in TEST_F()
3780 ; CHECK: OpBranch %135 in TEST_F()
3781 ; CHECK: %137 = OpLabel in TEST_F()
3782 ; CHECK: %140 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_48 %uint_1 %uint_0 %uint_0 in TEST_F()
3783 ; CHECK: OpBranch %135 in TEST_F()
3784 ; CHECK: %135 = OpLabel in TEST_F()
3785 ; CHECK: %142 = OpPhi %uint %138 %136 %141 %137 in TEST_F()
3786 ; CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images %142 in TEST_F()
3787 ; CHECK: %28 = OpLoad %13 %27 in TEST_F()
3788 ; CHECK: %48 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_1 in TEST_F()
3789 ; CHECK: %50 = OpULessThan %bool %142 %48 in TEST_F()
3790 ; CHECK: OpSelectionMerge %51 None in TEST_F()
3791 ; CHECK: OpBranchConditional %50 %52 %53 in TEST_F()
3792 ; CHECK: %52 = OpLabel in TEST_F()
3793 ; CHECK: %54 = OpLoad %13 %27 in TEST_F()
3794 ; CHECK: %143 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_1 %142 in TEST_F()
3795 ; CHECK: %144 = OpULessThan %bool %uint_0 %143 in TEST_F()
3796 ; CHECK: OpSelectionMerge %145 None in TEST_F()
3797 ; CHECK: OpBranchConditional %144 %146 %147 in TEST_F()
3798 ; CHECK: %146 = OpLabel in TEST_F()
3799 ; CHECK: %148 = OpLoad %13 %27 in TEST_F()
3800 ; CHECK: %149 = OpImageRead %v4float %148 %20 in TEST_F()
3801 ; CHECK: OpBranch %145 in TEST_F()
3802 ; CHECK: %147 = OpLabel in TEST_F()
3803 ; CHECK: %150 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_1 %142 %uint_0 in TEST_F()
3804 ; CHECK: OpBranch %145 in TEST_F()
3805 ; CHECK: %145 = OpLabel in TEST_F()
3806 ; CHECK: %151 = OpPhi %v4float %149 %146 %113 %147 in TEST_F()
3807 ; CHECK: OpBranch %51 in TEST_F()
3808 ; CHECK: %53 = OpLabel in TEST_F()
3809 ; CHECK: %112 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_0 %142 %48 in TEST_F()
3810 ; CHECK: OpBranch %51 in TEST_F()
3811 ; CHECK: %51 = OpLabel in TEST_F()
3812 ; CHECK: %114 = OpPhi %v4float %151 %145 %113 %53 in TEST_F()
3813 ; CHECK: %30 = OpCompositeExtract %float %114 0 in TEST_F()
3814 ; CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1 in TEST_F()
3815 ; CHECK: %152 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3816 ; CHECK: %153 = OpULessThan %bool %uint_0 %152 in TEST_F()
3817 ; CHECK: OpSelectionMerge %154 None in TEST_F()
3818 ; CHECK: OpBranchConditional %153 %155 %156 in TEST_F()
3819 ; CHECK: %155 = OpLabel in TEST_F()
3820 ; CHECK: OpStore %31 %30 in TEST_F()
3821 ; CHECK: OpBranch %154 in TEST_F()
3822 ; CHECK: %156 = OpLabel in TEST_F()
3823 ; CHECK: %158 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_54 %uint_1 %uint_0 %uint_0 in TEST_F()
3824 ; CHECK: OpBranch %154 in TEST_F()
3825 ; CHECK: %154 = OpLabel in TEST_F()
3862 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
3866 ; CHECK: OpEntryPoint CallableNV %main "main" %89 in TEST_F()
3884 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
3886 ; CHECK: OpDecorate %89 BuiltIn LaunchIdNV in TEST_F()
3908 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
3909 ; CHECK: %34 = OpTypeFunction %uint %uint %uint in TEST_F()
3910 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
3912 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
3913 ; CHECK: %bool = OpTypeBool in TEST_F()
3914 ; CHECK: %57 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
3916 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
3917 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
3918 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
3919 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
3920 ; CHECK: %uint_5318 = OpConstant %uint 5318 in TEST_F()
3921 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
3922 ; CHECK: %v3uint = OpTypeVector %uint 3 in TEST_F()
3923 ; CHECK: %_ptr_Input_v3uint = OpTypePointer Input %v3uint in TEST_F()
3924 ; CHECK: %89 = OpVariable %_ptr_Input_v3uint Input in TEST_F()
3925 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
3926 ; CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
3927 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
3928 ; CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
3929 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
3930 ; CHECK: %uint_51 = OpConstant %uint 51 in TEST_F()
3931 ; CHECK: %113 = OpConstantNull %v4float in TEST_F()
3932 ; CHECK: %116 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
3933 ; CHECK: %uint_48 = OpConstant %uint 48 in TEST_F()
3934 ; CHECK: %141 = OpConstantNull %uint in TEST_F()
3935 ; CHECK: %uint_54 = OpConstant %uint 54 in TEST_F()
3950 ; CHECK-NOT: OpStore %31 %29 in TEST_F()
3951 ; CHECK: %133 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3952 ; CHECK: %134 = OpULessThan %bool %uint_0 %133 in TEST_F()
3953 ; CHECK: OpSelectionMerge %135 None in TEST_F()
3954 ; CHECK: OpBranchConditional %134 %136 %137 in TEST_F()
3955 ; CHECK: %136 = OpLabel in TEST_F()
3956 ; CHECK: %138 = OpLoad %uint %25 in TEST_F()
3957 ; CHECK: OpBranch %135 in TEST_F()
3958 ; CHECK: %137 = OpLabel in TEST_F()
3959 ; CHECK: %140 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_48 %uint_1 %uint_0 %uint_0 in TEST_F()
3960 ; CHECK: OpBranch %135 in TEST_F()
3961 ; CHECK: %135 = OpLabel in TEST_F()
3962 ; CHECK: %142 = OpPhi %uint %138 %136 %141 %137 in TEST_F()
3963 ; CHECK: %27 = OpAccessChain %_ptr_UniformConstant_13 %images %142 in TEST_F()
3964 ; CHECK: %28 = OpLoad %13 %27 in TEST_F()
3965 ; CHECK: %48 = OpFunctionCall %uint %inst_bindless_direct_read_2 %uint_1 %uint_1 in TEST_F()
3966 ; CHECK: %50 = OpULessThan %bool %142 %48 in TEST_F()
3967 ; CHECK: OpSelectionMerge %51 None in TEST_F()
3968 ; CHECK: OpBranchConditional %50 %52 %53 in TEST_F()
3969 ; CHECK: %52 = OpLabel in TEST_F()
3970 ; CHECK: %54 = OpLoad %13 %27 in TEST_F()
3971 ; CHECK: %143 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_1 %142 in TEST_F()
3972 ; CHECK: %144 = OpULessThan %bool %uint_0 %143 in TEST_F()
3973 ; CHECK: OpSelectionMerge %145 None in TEST_F()
3974 ; CHECK: OpBranchConditional %144 %146 %147 in TEST_F()
3975 ; CHECK: %146 = OpLabel in TEST_F()
3976 ; CHECK: %148 = OpLoad %13 %27 in TEST_F()
3977 ; CHECK: %149 = OpImageRead %v4float %148 %20 in TEST_F()
3978 ; CHECK: OpBranch %145 in TEST_F()
3979 ; CHECK: %147 = OpLabel in TEST_F()
3980 ; CHECK: %150 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_1 %142 %uint_0 in TEST_F()
3981 ; CHECK: OpBranch %145 in TEST_F()
3982 ; CHECK: %145 = OpLabel in TEST_F()
3983 ; CHECK: %151 = OpPhi %v4float %149 %146 %113 %147 in TEST_F()
3984 ; CHECK: OpBranch %51 in TEST_F()
3985 ; CHECK: %53 = OpLabel in TEST_F()
3986 ; CHECK: %112 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_51 %uint_0 %142 %48 in TEST_F()
3987 ; CHECK: OpBranch %51 in TEST_F()
3988 ; CHECK: %51 = OpLabel in TEST_F()
3989 ; CHECK: %114 = OpPhi %v4float %151 %145 %113 %53 in TEST_F()
3990 ; CHECK: %30 = OpCompositeExtract %float %114 0 in TEST_F()
3991 ; CHECK: %31 = OpAccessChain %_ptr_Uniform_float %sbo %int_1 in TEST_F()
3992 ; CHECK: %152 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
3993 ; CHECK: %153 = OpULessThan %bool %uint_0 %152 in TEST_F()
3994 ; CHECK: OpSelectionMerge %154 None in TEST_F()
3995 ; CHECK: OpBranchConditional %153 %155 %156 in TEST_F()
3996 ; CHECK: %155 = OpLabel in TEST_F()
3997 ; CHECK: OpStore %31 %30 in TEST_F()
3998 ; CHECK: OpBranch %154 in TEST_F()
3999 ; CHECK: %156 = OpLabel in TEST_F()
4000 ; CHECK: %158 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_54 %uint_1 %uint_0 %uint_0 in TEST_F()
4001 ; CHECK: OpBranch %154 in TEST_F()
4002 ; CHECK: %154 = OpLabel in TEST_F()
4048 ; CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
4052 ; CHECK: OpEntryPoint Fragment %main "main" %inTexcoord %outColor %gl_FragCoord in TEST_F()
4082 ; CHECK: OpDecorate %63 NonUniform in TEST_F()
4083 ; CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
4085 ; CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
4087 ; CHECK: OpDecorate %151 NonUniform in TEST_F()
4119 ; CHECK: %bool = OpTypeBool in TEST_F()
4120 ; CHECK: %68 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
4121 ; CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
4123 ; CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
4124 ; CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
4125 ; CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
4126 ; CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
4127 ; CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
4128 ; CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
4129 ; CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
4130 ; CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
4131 ; CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
4132 ; CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
4133 ; CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
4134 ; CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
4135 ; CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
4136 ; CHECK: %uint_79 = OpConstant %uint 79 in TEST_F()
4137 ; CHECK: %122 = OpConstantNull %v4float in TEST_F()
4138 ; CHECK: %126 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
4140 ; CHECK: %uint_87 = OpConstant %uint 87 in TEST_F()
4141 ; CHECK: %165 = OpConstantNull %v2float in TEST_F()
4142 ; CHECK: %uint_89 = OpConstant %uint 89 in TEST_F()
4171 ; CHECK-NOT: %51 = OpCompositeExtract %float %50 0 in TEST_F()
4172 ; CHECK: %157 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %uint_0 in TEST_F()
4173 ; CHECK: %158 = OpULessThan %bool %uint_0 %157 in TEST_F()
4174 ; CHECK: OpSelectionMerge %159 None in TEST_F()
4175 ; CHECK: OpBranchConditional %158 %160 %161 in TEST_F()
4176 ; CHECK: %160 = OpLabel in TEST_F()
4177 ; CHECK: %162 = OpLoad %v2float %47 in TEST_F()
4178 ; CHECK: OpBranch %159 in TEST_F()
4179 ; CHECK: %161 = OpLabel in TEST_F()
4180 ; CHECK: %164 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_87 %uint_1 %uint_0 %uint_0 in TEST_F()
4181 ; CHECK: OpBranch %159 in TEST_F()
4182 ; CHECK: %159 = OpLabel in TEST_F()
4183 ; CHECK: %166 = OpPhi %v2float %162 %160 %165 %161 in TEST_F()
4184 ; CHECK: %49 = OpFMul %v2float %42 %166 in TEST_F()
4185 ; CHECK: %167 = OpSampledImage %27 %39 %40 in TEST_F()
4186 ; CHECK: %168 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_2 %uint_0 in TEST_F()
4187 ; CHECK: %169 = OpULessThan %bool %uint_0 %168 in TEST_F()
4188 ; CHECK: OpSelectionMerge %170 None in TEST_F()
4189 ; CHECK: OpBranchConditional %169 %171 %172 in TEST_F()
4190 ; CHECK: %171 = OpLabel in TEST_F()
4191 ; CHECK: %173 = OpLoad %13 %uniformTex in TEST_F()
4192 ; CHECK: %174 = OpSampledImage %27 %173 %40 in TEST_F()
4193 ; CHECK: %175 = OpImageSampleImplicitLod %v4float %174 %49 in TEST_F()
4194 ; CHECK: OpBranch %170 in TEST_F()
4195 ; CHECK: %172 = OpLabel in TEST_F()
4196 ; CHECK: %177 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_89 %uint_1 %uint_0 %uint_0 in TEST_F()
4197 ; CHECK: OpBranch %170 in TEST_F()
4198 ; CHECK: %170 = OpLabel in TEST_F()
4199 ; CHECK: %178 = OpPhi %v4float %175 %171 %122 %172 in TEST_F()
4200 ; CHECK: %51 = OpCompositeExtract %float %178 0 in TEST_F()
4219 // Check that uniform refs do not go out-of-bounds. All checks use same input in TEST_F()
4258 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
4262 ;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords… in TEST_F()
4290 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
4292 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
4323 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
4324 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
4325 ;CHECK: %122 = OpTypeFunction %uint %uint %uint %uint in TEST_F()
4326 ;CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
4328 ;CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
4329 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
4330 ;CHECK: %148 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
4332 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
4333 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
4334 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
4335 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
4336 ;CHECK:%_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
4337 ;CHECK:%gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
4338 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
4339 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
4340 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
4341 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
4342 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
4343 ;CHECK: %uint_71 = OpConstant %uint 71 in TEST_F()
4344 ;CHECK: %202 = OpConstantNull %v2float in TEST_F()
4345 ;CHECK: %uint_75 = OpConstant %uint 75 in TEST_F()
4348 ;CHECK: %140 = OpFunctionCall %uint %inst_bindless_direct_read_3 %uint_1 %uint_1 %uint_0 in TEST_F()
4349 ;CHECK: OpBranch %117 in TEST_F()
4350 ;CHECK: %117 = OpLabel in TEST_F()
4351 ;CHECK: OpBranch %116 in TEST_F()
4352 ;CHECK: %116 = OpLabel in TEST_F()
4362 ;CHECK-NOT: %87 = OpLoad %v2float %86 in TEST_F()
4363 ;CHECK: %119 = OpIAdd %uint %uint_0 %uint_7 in TEST_F()
4364 ;CHECK: %141 = OpULessThan %bool %119 %140 in TEST_F()
4365 ;CHECK: OpSelectionMerge %143 None in TEST_F()
4366 ;CHECK: OpBranchConditional %141 %144 %145 in TEST_F()
4367 ;CHECK: %144 = OpLabel in TEST_F()
4368 ;CHECK: %146 = OpLoad %v2float %86 in TEST_F()
4369 ;CHECK: OpBranch %143 in TEST_F()
4370 ;CHECK: %145 = OpLabel in TEST_F()
4371 …;CHECK: %201 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_71 %uint_4 %uint_0 … in TEST_F()
4372 ;CHECK: OpBranch %143 in TEST_F()
4373 ;CHECK: %143 = OpLabel in TEST_F()
4374 ;CHECK: %203 = OpPhi %v2float %146 %144 %202 %145 in TEST_F()
4379 ;CHECK-NOT: %90 = OpLoad %v2float %89 in TEST_F()
4380 ;CHECK: %204 = OpIAdd %uint %uint_8 %uint_7 in TEST_F()
4381 ;CHECK: %205 = OpULessThan %bool %204 %140 in TEST_F()
4382 ;CHECK: OpSelectionMerge %206 None in TEST_F()
4383 ;CHECK: OpBranchConditional %205 %207 %208 in TEST_F()
4384 ;CHECK: %207 = OpLabel in TEST_F()
4385 ;CHECK: %209 = OpLoad %v2float %89 in TEST_F()
4386 ;CHECK: OpBranch %206 in TEST_F()
4387 ;CHECK: %208 = OpLabel in TEST_F()
4388 …;CHECK: %211 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_75 %uint_4 %uint_0 … in TEST_F()
4389 ;CHECK: OpBranch %206 in TEST_F()
4390 ;CHECK: %206 = OpLabel in TEST_F()
4391 ;CHECK: %212 = OpPhi %v2float %209 %207 %202 %208 in TEST_F()
4395 ;CHECK-NOT: %115 = OpPhi %v2float %87 %85 %90 %88 in TEST_F()
4396 ;CHECK: %115 = OpPhi %v2float %203 %143 %212 %206 in TEST_F()
4415 // Check that uniform array ref does not go out-of-bounds. in TEST_F()
4453 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
4492 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
4494 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
4528 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
4529 ;CHECK: %uint_80 = OpConstant %uint 80 in TEST_F()
4530 ;CHECK: %uint_64 = OpConstant %uint 64 in TEST_F()
4531 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
4532 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
4533 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
4534 ;CHECK: %105 = OpTypeFunction %uint %uint %uint %uint in TEST_F()
4535 ;CHECK:%_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
4537 ;CHECK:%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
4538 ;CHECK: %bool = OpTypeBool in TEST_F()
4539 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
4540 ;CHECK: %132 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
4542 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
4543 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
4544 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
4545 ;CHECK:%_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
4546 ;CHECK:%gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
4547 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
4548 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
4549 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
4550 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
4551 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
4552 ;CHECK: %uint_78 = OpConstant %uint 78 in TEST_F()
4553 ;CHECK: %185 = OpConstantNull %v2float in TEST_F()
4556 ;CHECK: %123 = OpFunctionCall %uint %inst_bindless_direct_read_3 %uint_1 %uint_2 %uint_0 in TEST_F()
4557 ;CHECK: OpBranch %93 in TEST_F()
4558 ;CHECK: %93 = OpLabel in TEST_F()
4559 ;CHECK: OpBranch %92 in TEST_F()
4560 ;CHECK: %92 = OpLabel in TEST_F()
4566 ;CHECK-NOT: %82 = OpLoad %v2float %81 in TEST_F()
4567 ;CHECK: %96 = OpIMul %uint %uint_80 %80 in TEST_F()
4568 ;CHECK: %97 = OpIAdd %uint %uint_0 %96 in TEST_F()
4569 ;CHECK: %99 = OpIAdd %uint %97 %uint_64 in TEST_F()
4570 ;CHECK: %101 = OpIAdd %uint %99 %uint_7 in TEST_F()
4571 ;CHECK: %125 = OpULessThan %bool %101 %123 in TEST_F()
4572 ;CHECK: OpSelectionMerge %127 None in TEST_F()
4573 ;CHECK: OpBranchConditional %125 %128 %129 in TEST_F()
4574 ;CHECK: %128 = OpLabel in TEST_F()
4575 ;CHECK: %130 = OpLoad %v2float %81 in TEST_F()
4576 ;CHECK: OpBranch %127 in TEST_F()
4577 ;CHECK: %129 = OpLabel in TEST_F()
4578 ;CHECK: %184 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_78 %uint_4 %uint_0 %… in TEST_F()
4579 ;CHECK: OpBranch %127 in TEST_F()
4580 ;CHECK: %127 = OpLabel in TEST_F()
4581 ;CHECK: %186 = OpPhi %v2float %130 %128 %185 %129 in TEST_F()
4583 ;CHECK-NOT: %86 = OpFAdd %v2float %66 %82 in TEST_F()
4584 ;CHECK: %86 = OpFAdd %v2float %66 %186 in TEST_F()
4610 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
4614 ;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords… in TEST_F()
4650 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
4652 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
4686 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
4687 ;CHECK: %uint_80 = OpConstant %uint 80 in TEST_F()
4688 ;CHECK: %uint_64 = OpConstant %uint 64 in TEST_F()
4689 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
4690 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
4691 ;CHECK: %104 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
4692 ;CHECK:%_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
4694 ;CHECK:%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
4695 ;CHECK: %bool = OpTypeBool in TEST_F()
4696 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
4697 ;CHECK: %135 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
4699 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
4700 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
4701 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
4702 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
4703 ;CHECK:%_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
4704 ;CHECK:%gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
4705 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
4706 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
4707 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
4708 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
4709 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
4710 ;CHECK: %uint_78 = OpConstant %uint 78 in TEST_F()
4711 ;CHECK: %189 = OpConstantNull %v2float in TEST_F()
4712 ;CHECK: %uint_83 = OpConstant %uint 83 in TEST_F()
4713 ;CHECK: %201 = OpConstantNull %v4float in TEST_F()
4716 ;CHECK: %126 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_2 %ui… in TEST_F()
4717 ;CHECK: %191 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %ui… in TEST_F()
4718 ;CHECK: OpBranch %93 in TEST_F()
4719 ;CHECK: %93 = OpLabel in TEST_F()
4720 ;CHECK: OpBranch %92 in TEST_F()
4721 ;CHECK: %92 = OpLabel in TEST_F()
4728 ;CHECK-NOT: %82 = OpLoad %v2float %81 in TEST_F()
4729 ;CHECK-NOT: %86 = OpFAdd %v2float %66 %82 in TEST_F()
4730 ;CHECK: %96 = OpIMul %uint %uint_80 %80 in TEST_F()
4731 ;CHECK: %97 = OpIAdd %uint %uint_0 %96 in TEST_F()
4732 ;CHECK: %99 = OpIAdd %uint %97 %uint_64 in TEST_F()
4733 ;CHECK: %101 = OpIAdd %uint %99 %uint_7 in TEST_F()
4734 ;CHECK: %128 = OpULessThan %bool %101 %126 in TEST_F()
4735 ;CHECK: OpSelectionMerge %130 None in TEST_F()
4736 ;CHECK: OpBranchConditional %128 %131 %132 in TEST_F()
4737 ;CHECK: %131 = OpLabel in TEST_F()
4738 ;CHECK: %133 = OpLoad %v2float %81 in TEST_F()
4739 ;CHECK: OpBranch %130 in TEST_F()
4740 ;CHECK: %132 = OpLabel in TEST_F()
4741 ;CHECK: %188 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_78 %uint_4 %uint_0 %… in TEST_F()
4742 ;CHECK: OpBranch %130 in TEST_F()
4743 ;CHECK: %130 = OpLabel in TEST_F()
4744 ;CHECK: %190 = OpPhi %v2float %133 %131 %189 %132 in TEST_F()
4745 ;CHECK: %86 = OpFAdd %v2float %66 %190 in TEST_F()
4751 ;CHECK-NOT: %91 = OpImageSampleImplicitLod %v4float %89 %86 in TEST_F()
4752 ;CHECK-NOT: OpStore %_entryPointOutput_vColor %91 in TEST_F()
4753 ;CHECK: %192 = OpULessThan %bool %uint_0 %191 in TEST_F()
4754 ;CHECK: OpSelectionMerge %193 None in TEST_F()
4755 ;CHECK: OpBranchConditional %192 %194 %195 in TEST_F()
4756 ;CHECK: %194 = OpLabel in TEST_F()
4757 ;CHECK: %196 = OpLoad %46 %g_tColor in TEST_F()
4758 ;CHECK: %197 = OpSampledImage %54 %196 %88 in TEST_F()
4759 ;CHECK: %198 = OpImageSampleImplicitLod %v4float %197 %86 in TEST_F()
4760 ;CHECK: OpBranch %193 in TEST_F()
4761 ;CHECK: %195 = OpLabel in TEST_F()
4762 ;CHECK: %200 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_83 %uint_1 %uint_0 %… in TEST_F()
4763 ;CHECK: OpBranch %193 in TEST_F()
4764 ;CHECK: %193 = OpLabel in TEST_F()
4765 ;CHECK: %202 = OpPhi %v4float %198 %194 %201 %195 in TEST_F()
4766 ;CHECK: OpStore %_entryPointOutput_vColor %202 in TEST_F()
4779 // Check that descriptor indexed with 16bit index is inbounds and in TEST_F()
4789 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
4793 ;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %g_tColor %_ %g_sAniso %i_vTextureCoords %_en… in TEST_F()
4812 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
4814 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
4843 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
4844 ;CHECK: %bool = OpTypeBool in TEST_F()
4845 ;CHECK: %51 = OpTypeFunction %void %uint %uint %uint %uint in TEST_F()
4846 ;CHECK:%_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
4848 ;CHECK:%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
4849 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
4850 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
4851 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
4852 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
4853 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
4854 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
4855 ;CHECK:%_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
4856 ;CHECK:%gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
4857 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
4858 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
4859 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
4860 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
4861 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
4862 ;CHECK: %uint_60 = OpConstant %uint 60 in TEST_F()
4863 ;CHECK: %106 = OpConstantNull %v4float in TEST_F()
4864 ;CHECK: %111 = OpTypeFunction %uint %uint %uint %uint %uint in TEST_F()
4868 ;CHECK: OpBranch %108 in TEST_F()
4869 ;CHECK: %108 = OpLabel in TEST_F()
4870 ;CHECK: OpBranch %39 in TEST_F()
4871 ;CHECK: %39 = OpLabel in TEST_F()
4881 ;CHECK-NOT: %38 = OpImageSampleImplicitLod %v4float %37 %31 in TEST_F()
4882 ;CHECK-NOT: OpStore %_entryPointOutput_vColor %38 in TEST_F()
4883 ;CHECK: %41 = OpUConvert %uint %33 in TEST_F()
4884 ;CHECK: %43 = OpULessThan %bool %41 %uint_128 in TEST_F()
4885 ;CHECK: OpSelectionMerge %44 None in TEST_F()
4886 ;CHECK: OpBranchConditional %43 %45 %46 in TEST_F()
4887 ;CHECK: %45 = OpLabel in TEST_F()
4888 ;CHECK: %47 = OpLoad %16 %34 in TEST_F()
4889 ;CHECK: %48 = OpSampledImage %27 %47 %36 in TEST_F()
4890 ;CHECK: %109 = OpUConvert %uint %33 in TEST_F()
4891 ;CHECK: %131 = OpFunctionCall %uint %inst_bindless_direct_read_4 %uint_0 %uint_0 %uint_0 %109 in TEST_F()
4892 ;CHECK: %132 = OpULessThan %bool %uint_0 %131 in TEST_F()
4893 ;CHECK: OpSelectionMerge %133 None in TEST_F()
4894 ;CHECK: OpBranchConditional %132 %134 %135 in TEST_F()
4895 ;CHECK: %134 = OpLabel in TEST_F()
4896 ;CHECK: %136 = OpLoad %16 %34 in TEST_F()
4897 ;CHECK: %137 = OpSampledImage %27 %136 %36 in TEST_F()
4898 ;CHECK: %138 = OpImageSampleImplicitLod %v4float %137 %31 in TEST_F()
4899 ;CHECK: OpBranch %133 in TEST_F()
4900 ;CHECK: %135 = OpLabel in TEST_F()
4901 ;CHECK: %139 = OpUConvert %uint %33 in TEST_F()
4902 ;CHECK: %140 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_60 %uint_1 %139 %uin… in TEST_F()
4903 ;CHECK: OpBranch %133 in TEST_F()
4904 ;CHECK: %133 = OpLabel in TEST_F()
4905 ;CHECK: %141 = OpPhi %v4float %138 %134 %106 %135 in TEST_F()
4906 ;CHECK: OpBranch %44 in TEST_F()
4907 ;CHECK: %46 = OpLabel in TEST_F()
4908 ;CHECK: %105 = OpFunctionCall %void %inst_bindless_stream_write_4 %uint_60 %uint_0 %41 %uint… in TEST_F()
4909 ;CHECK: OpBranch %44 in TEST_F()
4910 ;CHECK: %44 = OpLabel in TEST_F()
4911 ;CHECK: %107 = OpPhi %v4float %141 %133 %106 %46 in TEST_F()
4912 ;CHECK: OpStore %_entryPointOutput_vColor %107 in TEST_F()
4925 // Check that uniform array ref with 16bit index does not go out-of-bounds. in TEST_F()
4965 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
4969 ;CHECK: OpEntryPoint Fragment %MainPs "MainPs" %_ %__0 %g_tColor %g_sAniso %i_vTextureCoords… in TEST_F()
5005 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
5007 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
5042 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
5043 ;CHECK: %uint_80 = OpConstant %uint 80 in TEST_F()
5044 ;CHECK: %uint_64 = OpConstant %uint 64 in TEST_F()
5045 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
5046 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
5047 ;CHECK: %61 = OpTypeFunction %uint %uint %uint %uint in TEST_F()
5048 ;CHECK:%_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
5050 ;CHECK:%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
5051 ;CHECK: %bool = OpTypeBool in TEST_F()
5052 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
5053 ;CHECK: %88 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
5055 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
5056 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
5057 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
5058 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
5059 ;CHECK:%_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
5060 ;CHECK:%gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
5061 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
5062 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
5063 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
5064 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
5065 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
5066 ;CHECK: %uint_81 = OpConstant %uint 81 in TEST_F()
5067 ;CHECK: %142 = OpConstantNull %v2float in TEST_F()
5070 ;CHECK: %79 = OpFunctionCall %uint %inst_bindless_direct_read_3 %uint_1 %uint_0 %uint_0 in TEST_F()
5071 ;CHECK: OpBranch %49 in TEST_F()
5072 ;CHECK: %49 = OpLabel in TEST_F()
5073 ;CHECK: OpBranch %48 in TEST_F()
5074 ;CHECK: %48 = OpLabel in TEST_F()
5081 ;CHECK-NOT: %42 = OpLoad %v2float %41 in TEST_F()
5082 ;CHECK-NOT: %43 = OpFAdd %v2float %38 %42 in TEST_F()
5083 ;CHECK: %52 = OpUConvert %uint %40 in TEST_F()
5084 ;CHECK: %53 = OpIMul %uint %uint_80 %52 in TEST_F()
5085 ;CHECK: %54 = OpIAdd %uint %uint_0 %53 in TEST_F()
5086 ;CHECK: %56 = OpIAdd %uint %54 %uint_64 in TEST_F()
5087 ;CHECK: %58 = OpIAdd %uint %56 %uint_7 in TEST_F()
5088 ;CHECK: %81 = OpULessThan %bool %58 %79 in TEST_F()
5089 ;CHECK: OpSelectionMerge %83 None in TEST_F()
5090 ;CHECK: OpBranchConditional %81 %84 %85 in TEST_F()
5091 ;CHECK: %84 = OpLabel in TEST_F()
5092 ;CHECK: %86 = OpLoad %v2float %41 in TEST_F()
5093 ;CHECK: OpBranch %83 in TEST_F()
5094 ;CHECK: %85 = OpLabel in TEST_F()
5095 ;CHECK: %141 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_81 %uint_4 %uint_0 %… in TEST_F()
5096 ;CHECK: OpBranch %83 in TEST_F()
5097 ;CHECK: %83 = OpLabel in TEST_F()
5098 ;CHECK: %143 = OpPhi %v2float %86 %84 %142 %85 in TEST_F()
5099 ;CHECK: %43 = OpFAdd %v2float %38 %143 in TEST_F()
5117 // The buffer-oob row major matrix check in TEST_F()
5138 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
5142 ;CHECK: OpEntryPoint Vertex %main "main" %v_vtxResult %_ %a_position %inst_bindless_input_bu… in TEST_F()
5161 ;CHECK-NOT: OpDecorate %21 RelaxedPrecision in TEST_F()
5162 ;CHECK: OpDecorate %116 RelaxedPrecision in TEST_F()
5164 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
5166 ;CHECK: OpDecorate %61 RelaxedPrecision in TEST_F()
5168 ;CHECK: OpDecorate %gl_VertexIndex BuiltIn VertexIndex in TEST_F()
5169 ;CHECK: OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex in TEST_F()
5189 ;CHECK; %uint_0 = OpConstant %uint 0 in TEST_F()
5190 ;CHECK; %uint_16 = OpConstant %uint 16 in TEST_F()
5191 ;CHECK; %uint_4 = OpConstant %uint 4 in TEST_F()
5192 ;CHECK; %uint_3 = OpConstant %uint 3 in TEST_F()
5193 ;CHECK; %37 = OpTypeFunction %uint %uint %uint %uint in TEST_F()
5194 ;CHECK;%_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
5196 ;CHECK;%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
5197 ;CHECK; %bool = OpTypeBool in TEST_F()
5198 ;CHECK; %63 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
5200 ;CHECK; %uint_11 = OpConstant %uint 11 in TEST_F()
5201 ;CHECK; %uint_23 = OpConstant %uint 23 in TEST_F()
5202 ;CHECK; %uint_2 = OpConstant %uint 2 in TEST_F()
5203 ;CHECK;%_ptr_Input_uint = OpTypePointer Input %uint in TEST_F()
5204 ;CHECK;%gl_VertexIndex = OpVariable %_ptr_Input_uint Input in TEST_F()
5205 ;CHECK;%gl_InstanceIndex = OpVariable %_ptr_Input_uint Input in TEST_F()
5206 ;CHECK; %uint_5 = OpConstant %uint 5 in TEST_F()
5207 ;CHECK; %uint_7 = OpConstant %uint 7 in TEST_F()
5208 ;CHECK; %uint_8 = OpConstant %uint 8 in TEST_F()
5209 ;CHECK; %uint_9 = OpConstant %uint 9 in TEST_F()
5210 ;CHECK; %uint_10 = OpConstant %uint 10 in TEST_F()
5211 ;CHECK; %uint_45 = OpConstant %uint 45 in TEST_F()
5212 ;CHECK; %115 = OpConstantNull %float in TEST_F()
5215 ;CHECK: %55 = OpFunctionCall %uint %inst_bindless_direct_read_3 %uint_1 %uint_0 %uint_0 in TEST_F()
5216 ;CHECK: OpBranch %26 in TEST_F()
5217 ;CHECK: %26 = OpLabel in TEST_F()
5218 ;CHECK: OpBranch %25 in TEST_F()
5219 ;CHECK: %25 = OpLabel in TEST_F()
5222 ;CHECK-NOT: %21 = OpLoad %float %20 in TEST_F()
5223 ;CHECK: %30 = OpIMul %uint %uint_4 %int_2 in TEST_F()
5224 ;CHECK: %31 = OpIAdd %uint %uint_0 %30 in TEST_F()
5225 ;CHECK: %32 = OpIMul %uint %uint_16 %uint_1 in TEST_F()
5226 ;CHECK: %33 = OpIAdd %uint %31 %32 in TEST_F()
5227 ;CHECK: %35 = OpIAdd %uint %33 %uint_3 in TEST_F()
5228 ;CHECK: %57 = OpULessThan %bool %35 %55 in TEST_F()
5229 ;CHECK: OpSelectionMerge %58 None in TEST_F()
5230 ;CHECK: OpBranchConditional %57 %59 %60 in TEST_F()
5231 ;CHECK: %59 = OpLabel in TEST_F()
5232 ;CHECK: %61 = OpLoad %float %20 in TEST_F()
5233 ;CHECK: OpBranch %58 in TEST_F()
5234 ;CHECK: %60 = OpLabel in TEST_F()
5235 ;CHECK: %114 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_45 %uint_4 %uint_0 %… in TEST_F()
5236 ;CHECK: OpBranch %58 in TEST_F()
5237 ;CHECK: %58 = OpLabel in TEST_F()
5238 ;CHECK: %116 = OpPhi %float %61 %59 %115 %60 in TEST_F()
5240 ;CHECK-NOT: OpStore %v_vtxResult %21 in TEST_F()
5241 ;CHECK: OpStore %v_vtxResult %116 in TEST_F()
5254 // The buffer-oob column major matrix check in TEST_F()
5275 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
5279 ;CHECK: OpEntryPoint Vertex %main "main" %v_vtxResult %_ %a_position %inst_bindless_input_bu… in TEST_F()
5298 ;CHECK-NOT: OpDecorate %21 RelaxedPrecision in TEST_F()
5299 ;CHECK: OpDecorate %115 RelaxedPrecision in TEST_F()
5301 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
5303 ;CHECK: OpDecorate %61 RelaxedPrecision in TEST_F()
5305 ;CHECK: OpDecorate %gl_VertexIndex BuiltIn VertexIndex in TEST_F()
5306 ;CHECK: OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex in TEST_F()
5326 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
5327 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
5328 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
5329 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
5330 ;CHECK: %37 = OpTypeFunction %uint %uint %uint %uint in TEST_F()
5331 ;CHECK:%_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
5333 ;CHECK:%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
5334 ;CHECK: %bool = OpTypeBool in TEST_F()
5335 ;CHECK: %63 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
5337 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
5338 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
5339 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
5340 ;CHECK:%_ptr_Input_uint = OpTypePointer Input %uint in TEST_F()
5341 ;CHECK:%gl_VertexIndex = OpVariable %_ptr_Input_uint Input in TEST_F()
5342 ;CHECK:%gl_InstanceIndex = OpVariable %_ptr_Input_uint Input in TEST_F()
5343 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
5344 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
5345 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
5346 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
5347 ;CHECK: %uint_45 = OpConstant %uint 45 in TEST_F()
5348 ;CHECK: %114 = OpConstantNull %float in TEST_F()
5351 ;CHECK: %55 = OpFunctionCall %uint %inst_bindless_direct_read_3 %uint_1 %uint_0 %uint_0 in TEST_F()
5352 ;CHECK: OpBranch %26 in TEST_F()
5353 ;CHECK: %26 = OpLabel in TEST_F()
5354 ;CHECK: OpBranch %25 in TEST_F()
5355 ;CHECK: %25 = OpLabel in TEST_F()
5358 ;CHECK-NOT: %21 = OpLoad %float %20 in TEST_F()
5359 ;CHECK: %29 = OpIMul %uint %uint_8 %int_2 in TEST_F()
5360 ;CHECK: %30 = OpIAdd %uint %uint_0 %29 in TEST_F()
5361 ;CHECK: %32 = OpIMul %uint %uint_4 %uint_1 in TEST_F()
5362 ;CHECK: %33 = OpIAdd %uint %30 %32 in TEST_F()
5363 ;CHECK: %35 = OpIAdd %uint %33 %uint_3 in TEST_F()
5364 ;CHECK: %57 = OpULessThan %bool %35 %55 in TEST_F()
5365 ;CHECK: OpSelectionMerge %58 None in TEST_F()
5366 ;CHECK: OpBranchConditional %57 %59 %60 in TEST_F()
5367 ;CHECK: %59 = OpLabel in TEST_F()
5368 ;CHECK: %61 = OpLoad %float %20 in TEST_F()
5369 ;CHECK: OpBranch %58 in TEST_F()
5370 ;CHECK: %60 = OpLabel in TEST_F()
5371 ;CHECK: %113 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_45 %uint_4 %uint_0 %… in TEST_F()
5372 ;CHECK: OpBranch %58 in TEST_F()
5373 ;CHECK: %58 = OpLabel in TEST_F()
5374 ;CHECK: %115 = OpPhi %float %61 %59 %114 %60 in TEST_F()
5376 ;CHECK-NOT: OpStore %v_vtxResult %21 in TEST_F()
5377 ;CHECK: OpStore %v_vtxResult %115 in TEST_F()
5391 // The buffer-oob row major matrix vector ref check in TEST_F()
5412 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
5416 ;CHECK: OpEntryPoint Vertex %main "main" %v_vtxResult %_ %a_position %inst_bindless_input_bu… in TEST_F()
5436 ;CHECK-NOT: OpDecorate %26 RelaxedPrecision in TEST_F()
5437 ;CHECK: OpDecorate %125 RelaxedPrecision in TEST_F()
5439 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
5441 ;CHECK: OpDecorate %70 RelaxedPrecision in TEST_F()
5443 ;CHECK: OpDecorate %gl_VertexIndex BuiltIn VertexIndex in TEST_F()
5444 ;CHECK: OpDecorate %gl_InstanceIndex BuiltIn InstanceIndex in TEST_F()
5469 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
5470 ;CHECK: %uint_128 = OpConstant %uint 128 in TEST_F()
5471 ;CHECK: %uint_32 = OpConstant %uint 32 in TEST_F()
5472 ;CHECK: %uint_16 = OpConstant %uint 16 in TEST_F()
5473 ;CHECK: %uint_19 = OpConstant %uint 19 in TEST_F()
5474 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
5475 ;CHECK: %46 = OpTypeFunction %uint %uint %uint %uint in TEST_F()
5476 ;CHECK:%_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
5478 ;CHECK:%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
5479 ;CHECK: %bool = OpTypeBool in TEST_F()
5480 ;CHECK: %72 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
5482 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
5483 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
5484 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
5485 ;CHECK:%_ptr_Input_uint = OpTypePointer Input %uint in TEST_F()
5486 ;CHECK:%gl_VertexIndex = OpVariable %_ptr_Input_uint Input in TEST_F()
5487 ;CHECK:%gl_InstanceIndex = OpVariable %_ptr_Input_uint Input in TEST_F()
5488 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
5489 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
5490 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
5491 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
5492 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
5493 ;CHECK: %uint_51 = OpConstant %uint 51 in TEST_F()
5494 ;CHECK: %124 = OpConstantNull %v2float in TEST_F()
5497 ;CHECK: %64 = OpFunctionCall %uint %inst_bindless_direct_read_3 %uint_1 %uint_0 %uint_0 in TEST_F()
5498 ;CHECK: OpBranch %31 in TEST_F()
5499 ;CHECK: %31 = OpLabel in TEST_F()
5500 ;CHECK: OpBranch %30 in TEST_F()
5501 ;CHECK: %30 = OpLabel in TEST_F()
5505 ;CHECK-NOT: %26 = OpLoad %v2float %25 in TEST_F()
5506 ;CHECK-NOT: OpStore %v_vtxResult %26 in TEST_F()
5507 ;CHECK: %34 = OpIMul %uint %uint_128 %int_2 in TEST_F()
5508 ;CHECK: %35 = OpIAdd %uint %uint_0 %34 in TEST_F()
5509 ;CHECK: %37 = OpIMul %uint %uint_32 %int_3 in TEST_F()
5510 ;CHECK: %38 = OpIAdd %uint %35 %37 in TEST_F()
5511 ;CHECK: %40 = OpIMul %uint %uint_4 %int_1 in TEST_F()
5512 ;CHECK: %41 = OpIAdd %uint %38 %40 in TEST_F()
5513 ;CHECK: %43 = OpIAdd %uint %41 %uint_19 in TEST_F()
5514 ;CHECK: %66 = OpULessThan %bool %43 %64 in TEST_F()
5515 ;CHECK: OpSelectionMerge %67 None in TEST_F()
5516 ;CHECK: OpBranchConditional %66 %68 %69 in TEST_F()
5517 ;CHECK: %68 = OpLabel in TEST_F()
5518 ;CHECK: %70 = OpLoad %v2float %25 in TEST_F()
5519 ;CHECK: OpBranch %67 in TEST_F()
5520 ;CHECK: %69 = OpLabel in TEST_F()
5521 ;CHECK: %123 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_51 %uint_4 %uint_0 %… in TEST_F()
5522 ;CHECK: OpBranch %67 in TEST_F()
5523 ;CHECK: %67 = OpLabel in TEST_F()
5524 ;CHECK: %125 = OpPhi %v2float %70 %68 %124 %69 in TEST_F()
5525 ;CHECK: OpStore %v_vtxResult %125 in TEST_F()
5538 // Texel buffer (imagebuffer) oob check for ImageRead in TEST_F()
5553 ;CHECK: OpCapability ImageQuery in TEST_F()
5554 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
5570 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
5572 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
5585 ;CHECK: %uint = OpTypeInt 32 0 in TEST_F()
5586 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
5587 ;CHECK: %bool = OpTypeBool in TEST_F()
5588 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
5589 ;CHECK: %35 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
5590 ;CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
5592 ;CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
5593 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
5594 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
5595 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
5596 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
5597 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
5598 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
5599 ;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
5600 ;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
5601 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
5602 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
5603 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
5604 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
5605 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
5606 ;CHECK: %uint_33 = OpConstant %uint 33 in TEST_F()
5607 ;CHECK: %93 = OpConstantNull %v4float in TEST_F()
5610 ;CHECK: OpBranch %21 in TEST_F()
5611 ;CHECK: %21 = OpLabel in TEST_F()
5612 ;CHECK: OpBranch %20 in TEST_F()
5613 ;CHECK: %20 = OpLabel in TEST_F()
5614 ;CHECK: OpBranch %19 in TEST_F()
5615 ;CHECK: %19 = OpLabel in TEST_F()
5620 ;CHECK-NOT: %18 = OpImageRead %v4float %13 %17 in TEST_F()
5621 ;CHECK-NOT: OpStore %x %18 in TEST_F()
5622 ;CHECK: %23 = OpBitcast %uint %17 in TEST_F()
5623 ;CHECK: %25 = OpImageQuerySize %uint %13 in TEST_F()
5624 ;CHECK: %27 = OpULessThan %bool %23 %25 in TEST_F()
5625 ;CHECK: OpSelectionMerge %29 None in TEST_F()
5626 ;CHECK: OpBranchConditional %27 %30 %31 in TEST_F()
5627 ;CHECK: %30 = OpLabel in TEST_F()
5628 ;CHECK: %32 = OpLoad %10 %s in TEST_F()
5629 ;CHECK: %33 = OpImageRead %v4float %32 %17 in TEST_F()
5630 ;CHECK: OpBranch %29 in TEST_F()
5631 ;CHECK: %31 = OpLabel in TEST_F()
5632 ;CHECK: %92 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_33 %uint_7 %uint… in TEST_F()
5633 ;CHECK: OpBranch %29 in TEST_F()
5634 ;CHECK: %29 = OpLabel in TEST_F()
5635 ;CHECK: %94 = OpPhi %v4float %33 %30 %93 %31 in TEST_F()
5636 ;CHECK: OpStore %x %94 in TEST_F()
5649 // Texel buffer (imagebuffer) oob check for ImageWrite in TEST_F()
5664 ;CHECK: OpCapability ImageQuery in TEST_F()
5665 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
5669 ;CHECK: OpEntryPoint Fragment %main "main" %s %ii %x %inst_bindless_output_buffer… in TEST_F()
5682 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
5684 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
5697 ;CHECK: %uint = OpTypeInt 32 0 in TEST_F()
5698 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
5699 ;CHECK: %bool = OpTypeBool in TEST_F()
5700 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
5701 ;CHECK: %34 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
5702 ;CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
5704 ;CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
5705 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
5706 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
5707 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
5708 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
5709 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
5710 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
5711 ;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
5712 ;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
5713 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
5714 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
5715 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
5716 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
5717 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
5718 ;CHECK: %uint_34 = OpConstant %uint 34 in TEST_F()
5721 ;CHECK: OpBranch %21 in TEST_F()
5722 ;CHECK: %21 = OpLabel in TEST_F()
5723 ;CHECK: OpBranch %20 in TEST_F()
5724 ;CHECK: %20 = OpLabel in TEST_F()
5725 ;CHECK: OpBranch %19 in TEST_F()
5726 ;CHECK: %19 = OpLabel in TEST_F()
5731 ;CHECK-NOT: OpImageWrite %10 %14 %18 in TEST_F()
5732 ;CHECK: %23 = OpBitcast %uint %14 in TEST_F()
5733 ;CHECK: %25 = OpImageQuerySize %uint %10 in TEST_F()
5734 ;CHECK: %27 = OpULessThan %bool %23 %25 in TEST_F()
5735 ;CHECK: OpSelectionMerge %29 None in TEST_F()
5736 ;CHECK: OpBranchConditional %27 %30 %31 in TEST_F()
5737 ;CHECK: %30 = OpLabel in TEST_F()
5738 ;CHECK: %32 = OpLoad %7 %s in TEST_F()
5739 ;CHECK: OpImageWrite %32 %14 %18 in TEST_F()
5740 ;CHECK: OpBranch %29 in TEST_F()
5741 ;CHECK: %31 = OpLabel in TEST_F()
5742 ;CHECK: %91 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_34 %uint_7 %uint… in TEST_F()
5743 ;CHECK: OpBranch %29 in TEST_F()
5744 ;CHECK: %29 = OpLabel in TEST_F()
5757 // Texel buffer (texturebuffer) oob check for ImageFetch in TEST_F()
5772 ;CHECK: OpCapability ImageQuery in TEST_F()
5773 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
5777 ;CHECK: OpEntryPoint Fragment %main "main" %x %s %ii %inst_bindless_output_buffer… in TEST_F()
5789 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
5791 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
5804 ;CHECK: %uint = OpTypeInt 32 0 in TEST_F()
5805 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
5806 ;CHECK: %bool = OpTypeBool in TEST_F()
5807 ;CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
5808 ;CHECK: %35 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
5809 ;CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
5811 ;CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
5812 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
5813 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
5814 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
5815 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
5816 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
5817 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
5818 ;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
5819 ;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
5820 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
5821 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
5822 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
5823 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
5824 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
5825 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
5826 ;CHECK: %uint_32 = OpConstant %uint 32 in TEST_F()
5827 ;CHECK: %94 = OpConstantNull %v4float in TEST_F()
5830 ;CHECK: OpBranch %21 in TEST_F()
5831 ;CHECK: %21 = OpLabel in TEST_F()
5832 ;CHECK: OpBranch %20 in TEST_F()
5833 ;CHECK: %20 = OpLabel in TEST_F()
5834 ;CHECK: OpBranch %19 in TEST_F()
5835 ;CHECK: %19 = OpLabel in TEST_F()
5840 ;CHECK-NOT: %18 = OpImageFetch %v4float %13 %17 in TEST_F()
5841 ;CHECK-NOT: OpStore %x %18 in TEST_F()
5842 ;CHECK: %23 = OpBitcast %uint %17 in TEST_F()
5843 ;CHECK: %25 = OpImageQuerySize %uint %13 in TEST_F()
5844 ;CHECK: %27 = OpULessThan %bool %23 %25 in TEST_F()
5845 ;CHECK: OpSelectionMerge %29 None in TEST_F()
5846 ;CHECK: OpBranchConditional %27 %30 %31 in TEST_F()
5847 ;CHECK: %30 = OpLabel in TEST_F()
5848 ;CHECK: %32 = OpLoad %10 %s in TEST_F()
5849 ;CHECK: %33 = OpImageFetch %v4float %32 %17 in TEST_F()
5850 ;CHECK: OpBranch %29 in TEST_F()
5851 ;CHECK: %31 = OpLabel in TEST_F()
5852 ;CHECK: %93 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_32 %uint_6 %uint… in TEST_F()
5853 ;CHECK: OpBranch %29 in TEST_F()
5854 ;CHECK: %29 = OpLabel in TEST_F()
5855 ;CHECK: %95 = OpPhi %v4float %33 %30 %94 %31 in TEST_F()
5856 ;CHECK: OpStore %x %95 in TEST_F()
5869 // Texel buffer (samplerbuffer) oob check for ImageFetch in TEST_F()
5884 ;CHECK: OpCapability ImageQuery in TEST_F()
5885 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
5889 ;CHECK: OpEntryPoint Fragment %main "main" %x %s %ii %inst_bindless_output_buffer… in TEST_F()
5901 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
5903 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
5917 ;CHECK: %uint = OpTypeInt 32 0 in TEST_F()
5918 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
5919 ;CHECK: %bool = OpTypeBool in TEST_F()
5920 ;CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
5921 ;CHECK: %38 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
5922 ;CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
5924 ;CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
5925 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
5926 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
5927 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
5928 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
5929 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
5930 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
5931 ;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
5932 ;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
5933 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
5934 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
5935 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
5936 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
5937 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
5938 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
5939 ;CHECK: %uint_34 = OpConstant %uint 34 in TEST_F()
5940 ;CHECK: %97 = OpConstantNull %v4float in TEST_F()
5943 ;CHECK: OpBranch %23 in TEST_F()
5944 ;CHECK: %23 = OpLabel in TEST_F()
5945 ;CHECK: OpBranch %22 in TEST_F()
5946 ;CHECK: %22 = OpLabel in TEST_F()
5947 ;CHECK: OpBranch %21 in TEST_F()
5948 ;CHECK: %21 = OpLabel in TEST_F()
5954 ;CHECK-NOT: %20 = OpImageFetch %v4float %19 %18 in TEST_F()
5955 ;CHECK-NOT: OpStore %x %20 in TEST_F()
5956 ;CHECK: %25 = OpBitcast %uint %18 in TEST_F()
5957 ;CHECK: %27 = OpImageQuerySize %uint %19 in TEST_F()
5958 ;CHECK: %29 = OpULessThan %bool %25 %27 in TEST_F()
5959 ;CHECK: OpSelectionMerge %31 None in TEST_F()
5960 ;CHECK: OpBranchConditional %29 %32 %33 in TEST_F()
5961 ;CHECK: %32 = OpLabel in TEST_F()
5962 ;CHECK: %34 = OpLoad %11 %s in TEST_F()
5963 ;CHECK: %35 = OpImage %10 %34 in TEST_F()
5964 ;CHECK: %36 = OpImageFetch %v4float %35 %18 in TEST_F()
5965 ;CHECK: OpBranch %31 in TEST_F()
5966 ;CHECK: %33 = OpLabel in TEST_F()
5967 ;CHECK: %96 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_34 %uint_6 %uint… in TEST_F()
5968 ;CHECK: OpBranch %31 in TEST_F()
5969 ;CHECK: %31 = OpLabel in TEST_F()
5970 ;CHECK: %98 = OpPhi %v4float %36 %32 %97 %33 in TEST_F()
5971 ;CHECK: OpStore %x %98 in TEST_F()
5984 // Texel buffer (samplerbuffer constructor) oob check for ImageFetch in TEST_F()
6000 ;CHECK: OpCapability ImageQuery in TEST_F()
6001 ;CHECK: OpExtension "SPV_KHR_storage_buffer_storage_class" in TEST_F()
6005 ;CHECK: OpEntryPoint Fragment %main "main" %x %tBuf %s %ii %inst_bindless_output_… in TEST_F()
6020 ;CHECK: OpDecorate %_runtimearr_uint ArrayStride 4 in TEST_F()
6022 ;CHECK: OpDecorate %gl_FragCoord BuiltIn FragCoord in TEST_F()
6039 ;CHECK: %uint = OpTypeInt 32 0 in TEST_F()
6040 ;CHECK: %uint_0 = OpConstant %uint 0 in TEST_F()
6041 ;CHECK: %bool = OpTypeBool in TEST_F()
6042 ;CHECK: %uint_6 = OpConstant %uint 6 in TEST_F()
6043 ;CHECK: %44 = OpTypeFunction %void %uint %uint %uint %uint %uint in TEST_F()
6044 ;CHECK: %_runtimearr_uint = OpTypeRuntimeArray %uint in TEST_F()
6046 ;CHECK: %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint in TEST_F()
6047 ;CHECK: %uint_11 = OpConstant %uint 11 in TEST_F()
6048 ;CHECK: %uint_4 = OpConstant %uint 4 in TEST_F()
6049 ;CHECK: %uint_1 = OpConstant %uint 1 in TEST_F()
6050 ;CHECK: %uint_23 = OpConstant %uint 23 in TEST_F()
6051 ;CHECK: %uint_2 = OpConstant %uint 2 in TEST_F()
6052 ;CHECK: %uint_3 = OpConstant %uint 3 in TEST_F()
6053 ;CHECK: %_ptr_Input_v4float = OpTypePointer Input %v4float in TEST_F()
6054 ;CHECK: %gl_FragCoord = OpVariable %_ptr_Input_v4float Input in TEST_F()
6055 ;CHECK: %v4uint = OpTypeVector %uint 4 in TEST_F()
6056 ;CHECK: %uint_5 = OpConstant %uint 5 in TEST_F()
6057 ;CHECK: %uint_7 = OpConstant %uint 7 in TEST_F()
6058 ;CHECK: %uint_8 = OpConstant %uint 8 in TEST_F()
6059 ;CHECK: %uint_9 = OpConstant %uint 9 in TEST_F()
6060 ;CHECK: %uint_10 = OpConstant %uint 10 in TEST_F()
6061 ;CHECK: %uint_42 = OpConstant %uint 42 in TEST_F()
6062 ;CHECK: %103 = OpConstantNull %v4float in TEST_F()
6065 ;CHECK: OpBranch %28 in TEST_F()
6066 ;CHECK: %28 = OpLabel in TEST_F()
6067 ;CHECK: OpBranch %27 in TEST_F()
6068 ;CHECK: %27 = OpLabel in TEST_F()
6069 ;CHECK: OpBranch %26 in TEST_F()
6070 ;CHECK: %26 = OpLabel in TEST_F()
6078 ;CHECK-NOT: %25 = OpImageFetch %v4float %24 %23 in TEST_F()
6079 ;CHECK-NOT: OpStore %x %25 in TEST_F()
6080 ;CHECK: %30 = OpBitcast %uint %23 in TEST_F()
6081 ;CHECK: %32 = OpImageQuerySize %uint %24 in TEST_F()
6082 ;CHECK: %34 = OpULessThan %bool %30 %32 in TEST_F()
6083 ;CHECK: OpSelectionMerge %36 None in TEST_F()
6084 ;CHECK: OpBranchConditional %34 %37 %38 in TEST_F()
6085 ;CHECK: %37 = OpLabel in TEST_F()
6086 ;CHECK: %39 = OpLoad %10 %tBuf in TEST_F()
6087 ;CHECK: %40 = OpSampledImage %18 %39 %17 in TEST_F()
6088 ;CHECK: %41 = OpImage %10 %40 in TEST_F()
6089 ;CHECK: %42 = OpImageFetch %v4float %41 %23 in TEST_F()
6090 ;CHECK: OpBranch %36 in TEST_F()
6091 ;CHECK: %38 = OpLabel in TEST_F()
6092 ;CHECK: %102 = OpFunctionCall %void %inst_bindless_stream_write_5 %uint_42 %uint_6 %uint… in TEST_F()
6093 ;CHECK: OpBranch %36 in TEST_F()
6094 ;CHECK: %36 = OpLabel in TEST_F()
6095 ;CHECK: %104 = OpPhi %v4float %42 %37 %103 %38 in TEST_F()
6096 ;CHECK: OpStore %x %104 in TEST_F()