2323; CHECK-DAG: %[[ZERO:[0-9]+]] = OpConstant %[[UINT]] 0
2424; CHECK-DAG: %[[MYCBUFFER:[0-9]+]] = OpVariable %[[PTR_WRAPPER]] Uniform
2525
26+ ; CHECK-DAG: %[[I64:[0-9]+]] = OpTypeInt 64 0
27+ ; CHECK-DAG: %[[STRUCT2:[0-9]+]] = OpTypeStruct %[[I64]] %[[UINT]]
28+ ; CHECK-DAG: %[[CONST_3:[0-9]+]] = OpConstant %[[UINT]] 3
29+ ; CHECK-DAG: %[[ARRAY2:[0-9]+]] = OpTypeArray %[[STRUCT2]] %[[CONST_3]]
30+ ; CHECK-DAG: %[[CBLAYOUT2:[0-9]+]] = OpTypeStruct %[[ARRAY2]] %[[I64]]
31+ ; CHECK-DAG: %[[PTR_PRIVATE:[0-9]+]] = OpTypePointer Private %[[CBLAYOUT2]]
32+ ; CHECK-DAG: %[[MYPRIVATEVAR:[0-9]+]] = OpVariable %[[PTR_PRIVATE]] Private
33+
2634%__cblayout_MyCBuffer = type <{ <{ [3 x <{ %OrigType , target ("spirv.Padding" , 12 ) }>], %OrigType }>, float }>
2735%OrigType = type <{ float }>
2836
37+ %__cblayout_MyCBuffer2 = type <{ [ 3 x <{ i64 , i32 }> ], i64 }>
38+
2939@MyCBuffer.cb = local_unnamed_addr global target ("spirv.VulkanBuffer" , %__cblayout_MyCBuffer , 2 , 0 ) poison
40+ @myPrivateVar = internal addrspace (10 ) global %__cblayout_MyCBuffer2 poison
41+
3042@myArray = external hidden local_unnamed_addr addrspace (12 ) global <{ [3 x <{ %OrigType , target ("spirv.Padding" , 12 ) }>], %OrigType }>, align 1
3143@MyCBuffer.str = private unnamed_addr constant [10 x i8 ] c "MyCBuffer\00 " , align 1
3244@.str = private unnamed_addr constant [7 x i8 ] c "output\00 " , align 1
@@ -54,9 +66,13 @@ entry:
5466; CHECK: %[[VAL_FLOAT:[0-9]+]] = OpLoad %[[FLOAT]] %[[PTR_FIELD]] Aligned 4
5567 %2 = load float , ptr addrspace (12 ) %cbufferidx.i , align 4
5668
69+ %val = load i64 , ptr addrspace (10 ) getelementptr (%__cblayout_MyCBuffer2 , ptr addrspace (10 ) @myPrivateVar , i32 0 , i32 1 ), align 8
70+ %val.float = sitofp i64 %val to float
71+
5772 %vecinit4.i = insertelement <4 x float > <float poison, float 0 .000000e+00 , float 0 .000000e+00 , float 0 .000000e+00 >, float %2 , i64 0
73+ %vecinit4.i.2 = insertelement <4 x float > %vecinit4.i , float %val.float , i64 1
5874 %3 = tail call noundef align 16 dereferenceable (16 ) ptr addrspace (11 ) @llvm.spv.resource.getpointer.p11.tspirv.Image_f32_5_2_0_0_2_1t (target ("spirv.Image" , float , 5 , 2 , 0 , 0 , 2 , 1 ) %0 , i32 0 )
59- store <4 x float > %vecinit4.i , ptr addrspace (11 ) %3 , align 16
75+ store <4 x float > %vecinit4.i.2 , ptr addrspace (11 ) %3 , align 16
6076; CHECK: OpImageWrite {{%[0-9]+}} {{%[0-9]+}} {{%[0-9]+}}
6177 ret void
6278}
@@ -71,4 +87,4 @@ attributes #1 = { "hlsl.numthreads"="1,1,1" "hlsl.shader"="compute" }
7187
7288!hlsl.cbs = !{!0 }
7389
74- !0 = distinct !{ptr @MyCBuffer.cb , ptr addrspace (12 ) @myArray , null }
90+ !0 = distinct !{ptr @MyCBuffer.cb , ptr addrspace (12 ) @myArray , null }
0 commit comments