xref: /aosp_15_r20/external/skia/tests/sksl/compute/AtomicDeclarations.asm.comp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker               OpCapability Shader
2*c8dee2aaSAndroid Build Coastguard Worker          %1 = OpExtInstImport "GLSL.std.450"
3*c8dee2aaSAndroid Build Coastguard Worker               OpMemoryModel Logical GLSL450
4*c8dee2aaSAndroid Build Coastguard Worker               OpEntryPoint GLCompute %main "main"
5*c8dee2aaSAndroid Build Coastguard Worker               OpExecutionMode %main LocalSize 64 1 1
6*c8dee2aaSAndroid Build Coastguard Worker               OpName %S "S"
7*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %S 0 "structMemberAtomic"
8*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %S 1 "structMemberAtomicArray"
9*c8dee2aaSAndroid Build Coastguard Worker               OpName %NestedS "NestedS"
10*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %NestedS 0 "nestedStructWithAtomicMember"
11*c8dee2aaSAndroid Build Coastguard Worker               OpName %ssbo "ssbo"
12*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %ssbo 0 "ssboAtomic"
13*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %ssbo 1 "ssboAtomicArray"
14*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %ssbo 2 "ssboStructWithAtomicMember"
15*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %ssbo 3 "ssboStructWithAtomicMemberArray"
16*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %ssbo 4 "ssboNestedStructWithAtomicMember"
17*c8dee2aaSAndroid Build Coastguard Worker               OpName %wgAtomic "wgAtomic"
18*c8dee2aaSAndroid Build Coastguard Worker               OpName %wgAtomicArray "wgAtomicArray"
19*c8dee2aaSAndroid Build Coastguard Worker               OpName %wgNestedStructWithAtomicMember "wgNestedStructWithAtomicMember"
20*c8dee2aaSAndroid Build Coastguard Worker               OpName %main "main"
21*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %_arr_uint_int_2 ArrayStride 4
22*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %S 0 Offset 0
23*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %S 0 RelaxedPrecision
24*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %S 1 Offset 4
25*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %S 1 RelaxedPrecision
26*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %_arr_S_int_2 ArrayStride 12
27*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %NestedS 0 Offset 0
28*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %NestedS 0 RelaxedPrecision
29*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 0 Offset 0
30*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 0 RelaxedPrecision
31*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 1 Offset 4
32*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 1 RelaxedPrecision
33*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 2 Offset 12
34*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 2 RelaxedPrecision
35*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 3 Offset 24
36*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 3 RelaxedPrecision
37*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 4 Offset 48
38*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %ssbo 4 RelaxedPrecision
39*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %ssbo BufferBlock
40*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %3 Binding 0
41*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %3 DescriptorSet 0
42*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %_arr_uint_int_2_0 ArrayStride 16
43*c8dee2aaSAndroid Build Coastguard Worker       %uint = OpTypeInt 32 0
44*c8dee2aaSAndroid Build Coastguard Worker        %int = OpTypeInt 32 1
45*c8dee2aaSAndroid Build Coastguard Worker      %int_2 = OpConstant %int 2
46*c8dee2aaSAndroid Build Coastguard Worker%_arr_uint_int_2 = OpTypeArray %uint %int_2
47*c8dee2aaSAndroid Build Coastguard Worker          %S = OpTypeStruct %uint %_arr_uint_int_2
48*c8dee2aaSAndroid Build Coastguard Worker%_arr_S_int_2 = OpTypeArray %S %int_2
49*c8dee2aaSAndroid Build Coastguard Worker    %NestedS = OpTypeStruct %S
50*c8dee2aaSAndroid Build Coastguard Worker       %ssbo = OpTypeStruct %uint %_arr_uint_int_2 %S %_arr_S_int_2 %NestedS
51*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_ssbo = OpTypePointer Uniform %ssbo
52*c8dee2aaSAndroid Build Coastguard Worker          %3 = OpVariable %_ptr_Uniform_ssbo Uniform
53*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint
54*c8dee2aaSAndroid Build Coastguard Worker   %wgAtomic = OpVariable %_ptr_Workgroup_uint Workgroup
55*c8dee2aaSAndroid Build Coastguard Worker%_arr_uint_int_2_0 = OpTypeArray %uint %int_2
56*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Workgroup__arr_uint_int_2_0 = OpTypePointer Workgroup %_arr_uint_int_2_0
57*c8dee2aaSAndroid Build Coastguard Worker%wgAtomicArray = OpVariable %_ptr_Workgroup__arr_uint_int_2_0 Workgroup
58*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Workgroup_NestedS = OpTypePointer Workgroup %NestedS
59*c8dee2aaSAndroid Build Coastguard Worker%wgNestedStructWithAtomicMember = OpVariable %_ptr_Workgroup_NestedS Workgroup
60*c8dee2aaSAndroid Build Coastguard Worker       %void = OpTypeVoid
61*c8dee2aaSAndroid Build Coastguard Worker         %21 = OpTypeFunction %void
62*c8dee2aaSAndroid Build Coastguard Worker      %int_1 = OpConstant %int 1
63*c8dee2aaSAndroid Build Coastguard Worker     %uint_2 = OpConstant %uint 2
64*c8dee2aaSAndroid Build Coastguard Worker     %uint_0 = OpConstant %uint 0
65*c8dee2aaSAndroid Build Coastguard Worker      %int_0 = OpConstant %int 0
66*c8dee2aaSAndroid Build Coastguard Worker     %uint_1 = OpConstant %uint 1
67*c8dee2aaSAndroid Build Coastguard Worker       %main = OpFunction %void None %21
68*c8dee2aaSAndroid Build Coastguard Worker         %22 = OpLabel
69*c8dee2aaSAndroid Build Coastguard Worker         %25 = OpAccessChain %_ptr_Workgroup_uint %wgAtomicArray %int_1
70*c8dee2aaSAndroid Build Coastguard Worker         %28 = OpAtomicLoad %uint %wgAtomic %uint_2 %uint_0
71*c8dee2aaSAndroid Build Coastguard Worker         %23 = OpAtomicIAdd %uint %25 %uint_2 %uint_0 %28
72*c8dee2aaSAndroid Build Coastguard Worker         %31 = OpAccessChain %_ptr_Workgroup_uint %wgAtomicArray %int_0
73*c8dee2aaSAndroid Build Coastguard Worker         %33 = OpAccessChain %_ptr_Workgroup_uint %wgAtomicArray %int_1
74*c8dee2aaSAndroid Build Coastguard Worker         %32 = OpAtomicLoad %uint %33 %uint_2 %uint_0
75*c8dee2aaSAndroid Build Coastguard Worker         %29 = OpAtomicIAdd %uint %31 %uint_2 %uint_0 %32
76*c8dee2aaSAndroid Build Coastguard Worker         %35 = OpAccessChain %_ptr_Workgroup_uint %wgNestedStructWithAtomicMember %int_0 %int_0
77*c8dee2aaSAndroid Build Coastguard Worker         %34 = OpAtomicIAdd %uint %35 %uint_2 %uint_0 %uint_1
78*c8dee2aaSAndroid Build Coastguard Worker               OpReturn
79*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
80