xref: /aosp_15_r20/external/skia/tests/sksl/spirv/SpecializedFieldAccess.asm.frag (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 Fragment %main "main"
5*c8dee2aaSAndroid Build Coastguard Worker               OpExecutionMode %main OriginUpperLeft
6*c8dee2aaSAndroid Build Coastguard Worker               OpName %StructB "StructB"
7*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %StructB 0 "val"
8*c8dee2aaSAndroid Build Coastguard Worker               OpName %StructA "StructA"
9*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %StructA 0 "structB"
10*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %StructA 1 "val"
11*c8dee2aaSAndroid Build Coastguard Worker               OpName %testStorageBuffer "testStorageBuffer"
12*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %testStorageBuffer 0 "testStructA"
13*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %testStorageBuffer 1 "testArr"
14*c8dee2aaSAndroid Build Coastguard Worker               OpName %testSecondStorageBuffer "testSecondStorageBuffer"
15*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %testSecondStorageBuffer 0 "testStructArr"
16*c8dee2aaSAndroid Build Coastguard Worker               OpName %foo_fff_testArr "foo_fff_testArr"
17*c8dee2aaSAndroid Build Coastguard Worker               OpName %bar_fSf_testStructArr "bar_fSf_testStructArr"
18*c8dee2aaSAndroid Build Coastguard Worker               OpName %main "main"
19*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %StructB 0 Offset 0
20*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %StructA 0 Offset 0
21*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %StructA 0 RelaxedPrecision
22*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %StructA 1 Offset 4
23*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %_runtimearr_float ArrayStride 4
24*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %testStorageBuffer 0 Offset 0
25*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %testStorageBuffer 0 RelaxedPrecision
26*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %testStorageBuffer 1 Offset 8
27*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %testStorageBuffer BufferBlock
28*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %5 Binding 0
29*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %5 DescriptorSet 0
30*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %_runtimearr_StructA ArrayStride 8
31*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %testSecondStorageBuffer 0 Offset 0
32*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %testSecondStorageBuffer 0 RelaxedPrecision
33*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %testSecondStorageBuffer BufferBlock
34*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %12 Binding 1
35*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %12 DescriptorSet 0
36*c8dee2aaSAndroid Build Coastguard Worker      %float = OpTypeFloat 32
37*c8dee2aaSAndroid Build Coastguard Worker    %StructB = OpTypeStruct %float
38*c8dee2aaSAndroid Build Coastguard Worker    %StructA = OpTypeStruct %StructB %float
39*c8dee2aaSAndroid Build Coastguard Worker%_runtimearr_float = OpTypeRuntimeArray %float
40*c8dee2aaSAndroid Build Coastguard Worker%testStorageBuffer = OpTypeStruct %StructA %_runtimearr_float
41*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_testStorageBuffer = OpTypePointer Uniform %testStorageBuffer
42*c8dee2aaSAndroid Build Coastguard Worker          %5 = OpVariable %_ptr_Uniform_testStorageBuffer Uniform
43*c8dee2aaSAndroid Build Coastguard Worker%_runtimearr_StructA = OpTypeRuntimeArray %StructA
44*c8dee2aaSAndroid Build Coastguard Worker%testSecondStorageBuffer = OpTypeStruct %_runtimearr_StructA
45*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_testSecondStorageBuffer = OpTypePointer Uniform %testSecondStorageBuffer
46*c8dee2aaSAndroid Build Coastguard Worker         %12 = OpVariable %_ptr_Uniform_testSecondStorageBuffer Uniform
47*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_float = OpTypePointer Function %float
48*c8dee2aaSAndroid Build Coastguard Worker         %17 = OpTypeFunction %float %_ptr_Function_float
49*c8dee2aaSAndroid Build Coastguard Worker        %int = OpTypeInt 32 1
50*c8dee2aaSAndroid Build Coastguard Worker      %int_1 = OpConstant %int 1
51*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_float = OpTypePointer Uniform %float
52*c8dee2aaSAndroid Build Coastguard Worker      %int_0 = OpConstant %int 0
53*c8dee2aaSAndroid Build Coastguard Worker       %void = OpTypeVoid
54*c8dee2aaSAndroid Build Coastguard Worker         %35 = OpTypeFunction %void
55*c8dee2aaSAndroid Build Coastguard Worker%foo_fff_testArr = OpFunction %float None %17
56*c8dee2aaSAndroid Build Coastguard Worker         %18 = OpFunctionParameter %_ptr_Function_float
57*c8dee2aaSAndroid Build Coastguard Worker         %19 = OpLabel
58*c8dee2aaSAndroid Build Coastguard Worker         %22 = OpLoad %float %18
59*c8dee2aaSAndroid Build Coastguard Worker         %23 = OpConvertFToS %int %22
60*c8dee2aaSAndroid Build Coastguard Worker         %24 = OpAccessChain %_ptr_Uniform_float %5 %int_1 %23
61*c8dee2aaSAndroid Build Coastguard Worker         %26 = OpLoad %float %24
62*c8dee2aaSAndroid Build Coastguard Worker               OpReturnValue %26
63*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
64*c8dee2aaSAndroid Build Coastguard Worker%bar_fSf_testStructArr = OpFunction %float None %17
65*c8dee2aaSAndroid Build Coastguard Worker         %27 = OpFunctionParameter %_ptr_Function_float
66*c8dee2aaSAndroid Build Coastguard Worker         %28 = OpLabel
67*c8dee2aaSAndroid Build Coastguard Worker         %30 = OpLoad %float %27
68*c8dee2aaSAndroid Build Coastguard Worker         %31 = OpConvertFToS %int %30
69*c8dee2aaSAndroid Build Coastguard Worker         %32 = OpAccessChain %_ptr_Uniform_float %12 %int_0 %31 %int_0 %int_0
70*c8dee2aaSAndroid Build Coastguard Worker         %33 = OpLoad %float %32
71*c8dee2aaSAndroid Build Coastguard Worker               OpReturnValue %33
72*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
73*c8dee2aaSAndroid Build Coastguard Worker       %main = OpFunction %void None %35
74*c8dee2aaSAndroid Build Coastguard Worker         %36 = OpLabel
75*c8dee2aaSAndroid Build Coastguard Worker         %39 = OpVariable %_ptr_Function_float Function
76*c8dee2aaSAndroid Build Coastguard Worker         %43 = OpVariable %_ptr_Function_float Function
77*c8dee2aaSAndroid Build Coastguard Worker         %47 = OpVariable %_ptr_Function_float Function
78*c8dee2aaSAndroid Build Coastguard Worker         %37 = OpAccessChain %_ptr_Uniform_float %5 %int_0 %int_1
79*c8dee2aaSAndroid Build Coastguard Worker         %38 = OpLoad %float %37
80*c8dee2aaSAndroid Build Coastguard Worker               OpStore %39 %38
81*c8dee2aaSAndroid Build Coastguard Worker         %40 = OpFunctionCall %float %foo_fff_testArr %39
82*c8dee2aaSAndroid Build Coastguard Worker         %41 = OpAccessChain %_ptr_Uniform_float %5 %int_0 %int_0 %int_0
83*c8dee2aaSAndroid Build Coastguard Worker         %42 = OpLoad %float %41
84*c8dee2aaSAndroid Build Coastguard Worker               OpStore %43 %42
85*c8dee2aaSAndroid Build Coastguard Worker         %44 = OpFunctionCall %float %foo_fff_testArr %43
86*c8dee2aaSAndroid Build Coastguard Worker         %45 = OpAccessChain %_ptr_Uniform_float %5 %int_0 %int_0 %int_0
87*c8dee2aaSAndroid Build Coastguard Worker         %46 = OpLoad %float %45
88*c8dee2aaSAndroid Build Coastguard Worker               OpStore %47 %46
89*c8dee2aaSAndroid Build Coastguard Worker         %48 = OpFunctionCall %float %bar_fSf_testStructArr %47
90*c8dee2aaSAndroid Build Coastguard Worker               OpReturn
91*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
92