xref: /aosp_15_r20/external/skia/tests/sksl/shared/StructComparison.asm.frag (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor
5               OpExecutionMode %_entrypoint_v OriginUpperLeft
6               OpName %sk_FragColor "sk_FragColor"
7               OpName %_UniformBuffer "_UniformBuffer"
8               OpMemberName %_UniformBuffer 0 "colorGreen"
9               OpMemberName %_UniformBuffer 1 "colorRed"
10               OpMemberName %_UniformBuffer 2 "testArray"
11               OpName %_entrypoint_v "_entrypoint_v"
12               OpName %main "main"
13               OpName %array "array"
14               OpName %S "S"
15               OpMemberName %S 0 "x"
16               OpMemberName %S 1 "y"
17               OpMemberName %S 2 "m"
18               OpMemberName %S 3 "a"
19               OpName %s1 "s1"
20               OpName %s2 "s2"
21               OpName %s3 "s3"
22               OpDecorate %sk_FragColor RelaxedPrecision
23               OpDecorate %sk_FragColor Location 0
24               OpDecorate %sk_FragColor Index 0
25               OpDecorate %_arr_float_int_5 ArrayStride 16
26               OpMemberDecorate %_UniformBuffer 0 Offset 0
27               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
28               OpMemberDecorate %_UniformBuffer 1 Offset 16
29               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
30               OpMemberDecorate %_UniformBuffer 2 Offset 32
31               OpDecorate %_UniformBuffer Block
32               OpDecorate %7 Binding 0
33               OpDecorate %7 DescriptorSet 0
34               OpMemberDecorate %S 0 Offset 0
35               OpMemberDecorate %S 1 Offset 4
36               OpMemberDecorate %S 2 Offset 16
37               OpMemberDecorate %S 2 ColMajor
38               OpMemberDecorate %S 2 MatrixStride 16
39               OpMemberDecorate %S 2 RelaxedPrecision
40               OpMemberDecorate %S 3 Offset 48
41               OpDecorate %59 RelaxedPrecision
42               OpDecorate %61 RelaxedPrecision
43               OpDecorate %83 RelaxedPrecision
44               OpDecorate %85 RelaxedPrecision
45               OpDecorate %103 RelaxedPrecision
46               OpDecorate %105 RelaxedPrecision
47               OpDecorate %106 RelaxedPrecision
48      %float = OpTypeFloat 32
49    %v4float = OpTypeVector %float 4
50%_ptr_Output_v4float = OpTypePointer Output %v4float
51%sk_FragColor = OpVariable %_ptr_Output_v4float Output
52        %int = OpTypeInt 32 1
53      %int_5 = OpConstant %int 5
54%_arr_float_int_5 = OpTypeArray %float %int_5
55%_UniformBuffer = OpTypeStruct %v4float %v4float %_arr_float_int_5
56%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
57          %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
58       %void = OpTypeVoid
59         %15 = OpTypeFunction %void
60    %float_0 = OpConstant %float 0
61    %v2float = OpTypeVector %float 2
62         %19 = OpConstantComposite %v2float %float_0 %float_0
63%_ptr_Function_v2float = OpTypePointer Function %v2float
64         %23 = OpTypeFunction %v4float %_ptr_Function_v2float
65%_ptr_Function__arr_float_int_5 = OpTypePointer Function %_arr_float_int_5
66    %float_1 = OpConstant %float 1
67    %float_2 = OpConstant %float 2
68    %float_3 = OpConstant %float 3
69    %float_4 = OpConstant %float 4
70    %float_5 = OpConstant %float 5
71%mat2v2float = OpTypeMatrix %v2float 2
72          %S = OpTypeStruct %int %int %mat2v2float %_arr_float_int_5
73%_ptr_Function_S = OpTypePointer Function %S
74      %int_1 = OpConstant %int 1
75      %int_2 = OpConstant %int 2
76         %40 = OpConstantComposite %v2float %float_1 %float_0
77         %41 = OpConstantComposite %v2float %float_0 %float_1
78         %42 = OpConstantComposite %mat2v2float %40 %41
79%_ptr_Uniform__arr_float_int_5 = OpTypePointer Uniform %_arr_float_int_5
80         %50 = OpConstantComposite %v2float %float_2 %float_0
81         %51 = OpConstantComposite %v2float %float_0 %float_2
82         %52 = OpConstantComposite %mat2v2float %50 %51
83       %bool = OpTypeBool
84      %false = OpConstantFalse %bool
85       %true = OpConstantTrue %bool
86     %v2bool = OpTypeVector %bool 2
87%_ptr_Function_v4float = OpTypePointer Function %v4float
88%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
89      %int_0 = OpConstant %int 0
90%_entrypoint_v = OpFunction %void None %15
91         %16 = OpLabel
92         %20 = OpVariable %_ptr_Function_v2float Function
93               OpStore %20 %19
94         %22 = OpFunctionCall %v4float %main %20
95               OpStore %sk_FragColor %22
96               OpReturn
97               OpFunctionEnd
98       %main = OpFunction %v4float None %23
99         %24 = OpFunctionParameter %_ptr_Function_v2float
100         %25 = OpLabel
101      %array = OpVariable %_ptr_Function__arr_float_int_5 Function
102         %s1 = OpVariable %_ptr_Function_S Function
103         %s2 = OpVariable %_ptr_Function_S Function
104         %s3 = OpVariable %_ptr_Function_S Function
105         %95 = OpVariable %_ptr_Function_v4float Function
106         %33 = OpCompositeConstruct %_arr_float_int_5 %float_1 %float_2 %float_3 %float_4 %float_5
107               OpStore %array %33
108         %43 = OpCompositeConstruct %S %int_1 %int_2 %42 %33
109               OpStore %s1 %43
110         %45 = OpAccessChain %_ptr_Uniform__arr_float_int_5 %7 %int_2
111         %47 = OpLoad %_arr_float_int_5 %45
112         %48 = OpCompositeConstruct %S %int_1 %int_2 %42 %47
113               OpStore %s2 %48
114         %53 = OpCompositeConstruct %S %int_1 %int_2 %52 %33
115               OpStore %s3 %53
116         %57 = OpLogicalAnd %bool %true %true
117         %59 = OpFOrdEqual %v2bool %40 %40
118         %60 = OpAll %bool %59
119         %61 = OpFOrdEqual %v2bool %41 %41
120         %62 = OpAll %bool %61
121         %63 = OpLogicalAnd %bool %60 %62
122         %64 = OpLogicalAnd %bool %63 %57
123         %65 = OpCompositeExtract %float %47 0
124         %66 = OpFOrdEqual %bool %float_1 %65
125         %67 = OpCompositeExtract %float %47 1
126         %68 = OpFOrdEqual %bool %float_2 %67
127         %69 = OpLogicalAnd %bool %68 %66
128         %70 = OpCompositeExtract %float %47 2
129         %71 = OpFOrdEqual %bool %float_3 %70
130         %72 = OpLogicalAnd %bool %71 %69
131         %73 = OpCompositeExtract %float %47 3
132         %74 = OpFOrdEqual %bool %float_4 %73
133         %75 = OpLogicalAnd %bool %74 %72
134         %76 = OpCompositeExtract %float %47 4
135         %77 = OpFOrdEqual %bool %float_5 %76
136         %78 = OpLogicalAnd %bool %77 %75
137         %79 = OpLogicalAnd %bool %78 %64
138               OpSelectionMerge %81 None
139               OpBranchConditional %79 %80 %81
140         %80 = OpLabel
141         %82 = OpLogicalOr %bool %false %false
142         %83 = OpFUnordNotEqual %v2bool %40 %50
143         %84 = OpAny %bool %83
144         %85 = OpFUnordNotEqual %v2bool %41 %51
145         %86 = OpAny %bool %85
146         %87 = OpLogicalOr %bool %84 %86
147         %88 = OpLogicalOr %bool %87 %82
148         %89 = OpLogicalOr %bool %false %false
149         %90 = OpLogicalOr %bool %false %89
150         %91 = OpLogicalOr %bool %false %90
151         %92 = OpLogicalOr %bool %false %91
152         %93 = OpLogicalOr %bool %92 %88
153               OpBranch %81
154         %81 = OpLabel
155         %94 = OpPhi %bool %false %25 %93 %80
156               OpSelectionMerge %99 None
157               OpBranchConditional %94 %97 %98
158         %97 = OpLabel
159        %100 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
160        %103 = OpLoad %v4float %100
161               OpStore %95 %103
162               OpBranch %99
163         %98 = OpLabel
164        %104 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
165        %105 = OpLoad %v4float %104
166               OpStore %95 %105
167               OpBranch %99
168         %99 = OpLabel
169        %106 = OpLoad %v4float %95
170               OpReturnValue %106
171               OpFunctionEnd
172