xref: /aosp_15_r20/external/skia/tests/sksl/intrinsics/MixFloatES2.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 %_entrypoint_v "_entrypoint" %sk_FragColor
5*c8dee2aaSAndroid Build Coastguard Worker               OpExecutionMode %_entrypoint_v OriginUpperLeft
6*c8dee2aaSAndroid Build Coastguard Worker               OpName %sk_FragColor "sk_FragColor"
7*c8dee2aaSAndroid Build Coastguard Worker               OpName %_UniformBuffer "_UniformBuffer"
8*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %_UniformBuffer 0 "colorGreen"
9*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %_UniformBuffer 1 "colorRed"
10*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %_UniformBuffer 2 "colorBlack"
11*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %_UniformBuffer 3 "colorWhite"
12*c8dee2aaSAndroid Build Coastguard Worker               OpMemberName %_UniformBuffer 4 "testInputs"
13*c8dee2aaSAndroid Build Coastguard Worker               OpName %_entrypoint_v "_entrypoint_v"
14*c8dee2aaSAndroid Build Coastguard Worker               OpName %main "main"
15*c8dee2aaSAndroid Build Coastguard Worker               OpName %expectedBW "expectedBW"
16*c8dee2aaSAndroid Build Coastguard Worker               OpName %expectedWT "expectedWT"
17*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %sk_FragColor RelaxedPrecision
18*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %sk_FragColor Location 0
19*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %sk_FragColor Index 0
20*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 0 Offset 0
21*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
22*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 1 Offset 16
23*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
24*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 2 Offset 32
25*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
26*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 3 Offset 48
27*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision
28*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 4 Offset 64
29*c8dee2aaSAndroid Build Coastguard Worker               OpMemberDecorate %_UniformBuffer 4 RelaxedPrecision
30*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %_UniformBuffer Block
31*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %7 Binding 0
32*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %7 DescriptorSet 0
33*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %expectedBW RelaxedPrecision
34*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %expectedWT RelaxedPrecision
35*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %38 RelaxedPrecision
36*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %41 RelaxedPrecision
37*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %51 RelaxedPrecision
38*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %53 RelaxedPrecision
39*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %65 RelaxedPrecision
40*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %67 RelaxedPrecision
41*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %77 RelaxedPrecision
42*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %79 RelaxedPrecision
43*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %90 RelaxedPrecision
44*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %91 RelaxedPrecision
45*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %94 RelaxedPrecision
46*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %95 RelaxedPrecision
47*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %102 RelaxedPrecision
48*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %103 RelaxedPrecision
49*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %105 RelaxedPrecision
50*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %106 RelaxedPrecision
51*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %108 RelaxedPrecision
52*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %117 RelaxedPrecision
53*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %118 RelaxedPrecision
54*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %121 RelaxedPrecision
55*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %122 RelaxedPrecision
56*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %124 RelaxedPrecision
57*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %133 RelaxedPrecision
58*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %135 RelaxedPrecision
59*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %146 RelaxedPrecision
60*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %152 RelaxedPrecision
61*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %163 RelaxedPrecision
62*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %164 RelaxedPrecision
63*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %167 RelaxedPrecision
64*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %168 RelaxedPrecision
65*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %175 RelaxedPrecision
66*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %176 RelaxedPrecision
67*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %178 RelaxedPrecision
68*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %179 RelaxedPrecision
69*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %181 RelaxedPrecision
70*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %189 RelaxedPrecision
71*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %190 RelaxedPrecision
72*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %192 RelaxedPrecision
73*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %193 RelaxedPrecision
74*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %195 RelaxedPrecision
75*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %203 RelaxedPrecision
76*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %205 RelaxedPrecision
77*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %216 RelaxedPrecision
78*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %223 RelaxedPrecision
79*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %235 RelaxedPrecision
80*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %237 RelaxedPrecision
81*c8dee2aaSAndroid Build Coastguard Worker               OpDecorate %238 RelaxedPrecision
82*c8dee2aaSAndroid Build Coastguard Worker      %float = OpTypeFloat 32
83*c8dee2aaSAndroid Build Coastguard Worker    %v4float = OpTypeVector %float 4
84*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Output_v4float = OpTypePointer Output %v4float
85*c8dee2aaSAndroid Build Coastguard Worker%sk_FragColor = OpVariable %_ptr_Output_v4float Output
86*c8dee2aaSAndroid Build Coastguard Worker%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float %v4float
87*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
88*c8dee2aaSAndroid Build Coastguard Worker          %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
89*c8dee2aaSAndroid Build Coastguard Worker       %void = OpTypeVoid
90*c8dee2aaSAndroid Build Coastguard Worker         %12 = OpTypeFunction %void
91*c8dee2aaSAndroid Build Coastguard Worker    %float_0 = OpConstant %float 0
92*c8dee2aaSAndroid Build Coastguard Worker    %v2float = OpTypeVector %float 2
93*c8dee2aaSAndroid Build Coastguard Worker         %16 = OpConstantComposite %v2float %float_0 %float_0
94*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_v2float = OpTypePointer Function %v2float
95*c8dee2aaSAndroid Build Coastguard Worker         %20 = OpTypeFunction %v4float %_ptr_Function_v2float
96*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Function_v4float = OpTypePointer Function %v4float
97*c8dee2aaSAndroid Build Coastguard Worker  %float_0_5 = OpConstant %float 0.5
98*c8dee2aaSAndroid Build Coastguard Worker    %float_1 = OpConstant %float 1
99*c8dee2aaSAndroid Build Coastguard Worker         %27 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_1
100*c8dee2aaSAndroid Build Coastguard Worker %float_2_25 = OpConstant %float 2.25
101*c8dee2aaSAndroid Build Coastguard Worker         %30 = OpConstantComposite %v4float %float_1 %float_0_5 %float_1 %float_2_25
102*c8dee2aaSAndroid Build Coastguard Worker       %bool = OpTypeBool
103*c8dee2aaSAndroid Build Coastguard Worker      %false = OpConstantFalse %bool
104*c8dee2aaSAndroid Build Coastguard Worker%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
105*c8dee2aaSAndroid Build Coastguard Worker        %int = OpTypeInt 32 1
106*c8dee2aaSAndroid Build Coastguard Worker      %int_0 = OpConstant %int 0
107*c8dee2aaSAndroid Build Coastguard Worker      %int_1 = OpConstant %int 1
108*c8dee2aaSAndroid Build Coastguard Worker         %42 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
109*c8dee2aaSAndroid Build Coastguard Worker         %43 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_1
110*c8dee2aaSAndroid Build Coastguard Worker     %v4bool = OpTypeVector %bool 4
111*c8dee2aaSAndroid Build Coastguard Worker %float_0_25 = OpConstant %float 0.25
112*c8dee2aaSAndroid Build Coastguard Worker         %55 = OpConstantComposite %v4float %float_0_25 %float_0_25 %float_0_25 %float_0_25
113*c8dee2aaSAndroid Build Coastguard Worker %float_0_75 = OpConstant %float 0.75
114*c8dee2aaSAndroid Build Coastguard Worker         %57 = OpConstantComposite %v4float %float_0_25 %float_0_75 %float_0 %float_1
115*c8dee2aaSAndroid Build Coastguard Worker         %68 = OpConstantComposite %v4float %float_0_75 %float_0_75 %float_0_75 %float_0_75
116*c8dee2aaSAndroid Build Coastguard Worker         %69 = OpConstantComposite %v4float %float_0_75 %float_0_25 %float_0 %float_1
117*c8dee2aaSAndroid Build Coastguard Worker         %80 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
118*c8dee2aaSAndroid Build Coastguard Worker         %81 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
119*c8dee2aaSAndroid Build Coastguard Worker      %int_2 = OpConstant %int 2
120*c8dee2aaSAndroid Build Coastguard Worker      %int_3 = OpConstant %int 3
121*c8dee2aaSAndroid Build Coastguard Worker        %107 = OpConstantComposite %v2float %float_0_5 %float_0_5
122*c8dee2aaSAndroid Build Coastguard Worker     %v2bool = OpTypeVector %bool 2
123*c8dee2aaSAndroid Build Coastguard Worker    %v3float = OpTypeVector %float 3
124*c8dee2aaSAndroid Build Coastguard Worker        %123 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
125*c8dee2aaSAndroid Build Coastguard Worker     %v3bool = OpTypeVector %bool 3
126*c8dee2aaSAndroid Build Coastguard Worker        %136 = OpConstantComposite %v4float %float_0_5 %float_0_5 %float_0_5 %float_0_5
127*c8dee2aaSAndroid Build Coastguard Worker       %true = OpConstantTrue %bool
128*c8dee2aaSAndroid Build Coastguard Worker      %int_4 = OpConstant %int 4
129*c8dee2aaSAndroid Build Coastguard Worker        %180 = OpConstantComposite %v2float %float_0 %float_0_5
130*c8dee2aaSAndroid Build Coastguard Worker        %194 = OpConstantComposite %v3float %float_0 %float_0_5 %float_0
131*c8dee2aaSAndroid Build Coastguard Worker        %206 = OpConstantComposite %v4float %float_0 %float_0_5 %float_0 %float_1
132*c8dee2aaSAndroid Build Coastguard Worker        %215 = OpConstantComposite %v2float %float_1 %float_0_5
133*c8dee2aaSAndroid Build Coastguard Worker        %222 = OpConstantComposite %v3float %float_1 %float_0_5 %float_1
134*c8dee2aaSAndroid Build Coastguard Worker%_entrypoint_v = OpFunction %void None %12
135*c8dee2aaSAndroid Build Coastguard Worker         %13 = OpLabel
136*c8dee2aaSAndroid Build Coastguard Worker         %17 = OpVariable %_ptr_Function_v2float Function
137*c8dee2aaSAndroid Build Coastguard Worker               OpStore %17 %16
138*c8dee2aaSAndroid Build Coastguard Worker         %19 = OpFunctionCall %v4float %main %17
139*c8dee2aaSAndroid Build Coastguard Worker               OpStore %sk_FragColor %19
140*c8dee2aaSAndroid Build Coastguard Worker               OpReturn
141*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
142*c8dee2aaSAndroid Build Coastguard Worker       %main = OpFunction %v4float None %20
143*c8dee2aaSAndroid Build Coastguard Worker         %21 = OpFunctionParameter %_ptr_Function_v2float
144*c8dee2aaSAndroid Build Coastguard Worker         %22 = OpLabel
145*c8dee2aaSAndroid Build Coastguard Worker %expectedBW = OpVariable %_ptr_Function_v4float Function
146*c8dee2aaSAndroid Build Coastguard Worker %expectedWT = OpVariable %_ptr_Function_v4float Function
147*c8dee2aaSAndroid Build Coastguard Worker        %230 = OpVariable %_ptr_Function_v4float Function
148*c8dee2aaSAndroid Build Coastguard Worker               OpStore %expectedBW %27
149*c8dee2aaSAndroid Build Coastguard Worker               OpStore %expectedWT %30
150*c8dee2aaSAndroid Build Coastguard Worker         %34 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
151*c8dee2aaSAndroid Build Coastguard Worker         %38 = OpLoad %v4float %34
152*c8dee2aaSAndroid Build Coastguard Worker         %39 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
153*c8dee2aaSAndroid Build Coastguard Worker         %41 = OpLoad %v4float %39
154*c8dee2aaSAndroid Build Coastguard Worker         %33 = OpExtInst %v4float %1 FMix %38 %41 %42
155*c8dee2aaSAndroid Build Coastguard Worker         %44 = OpFOrdEqual %v4bool %33 %43
156*c8dee2aaSAndroid Build Coastguard Worker         %46 = OpAll %bool %44
157*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %48 None
158*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %46 %47 %48
159*c8dee2aaSAndroid Build Coastguard Worker         %47 = OpLabel
160*c8dee2aaSAndroid Build Coastguard Worker         %50 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
161*c8dee2aaSAndroid Build Coastguard Worker         %51 = OpLoad %v4float %50
162*c8dee2aaSAndroid Build Coastguard Worker         %52 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
163*c8dee2aaSAndroid Build Coastguard Worker         %53 = OpLoad %v4float %52
164*c8dee2aaSAndroid Build Coastguard Worker         %49 = OpExtInst %v4float %1 FMix %51 %53 %55
165*c8dee2aaSAndroid Build Coastguard Worker         %58 = OpFOrdEqual %v4bool %49 %57
166*c8dee2aaSAndroid Build Coastguard Worker         %59 = OpAll %bool %58
167*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %48
168*c8dee2aaSAndroid Build Coastguard Worker         %48 = OpLabel
169*c8dee2aaSAndroid Build Coastguard Worker         %60 = OpPhi %bool %false %22 %59 %47
170*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %62 None
171*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %60 %61 %62
172*c8dee2aaSAndroid Build Coastguard Worker         %61 = OpLabel
173*c8dee2aaSAndroid Build Coastguard Worker         %64 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
174*c8dee2aaSAndroid Build Coastguard Worker         %65 = OpLoad %v4float %64
175*c8dee2aaSAndroid Build Coastguard Worker         %66 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
176*c8dee2aaSAndroid Build Coastguard Worker         %67 = OpLoad %v4float %66
177*c8dee2aaSAndroid Build Coastguard Worker         %63 = OpExtInst %v4float %1 FMix %65 %67 %68
178*c8dee2aaSAndroid Build Coastguard Worker         %70 = OpFOrdEqual %v4bool %63 %69
179*c8dee2aaSAndroid Build Coastguard Worker         %71 = OpAll %bool %70
180*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %62
181*c8dee2aaSAndroid Build Coastguard Worker         %62 = OpLabel
182*c8dee2aaSAndroid Build Coastguard Worker         %72 = OpPhi %bool %false %48 %71 %61
183*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %74 None
184*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %72 %73 %74
185*c8dee2aaSAndroid Build Coastguard Worker         %73 = OpLabel
186*c8dee2aaSAndroid Build Coastguard Worker         %76 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
187*c8dee2aaSAndroid Build Coastguard Worker         %77 = OpLoad %v4float %76
188*c8dee2aaSAndroid Build Coastguard Worker         %78 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
189*c8dee2aaSAndroid Build Coastguard Worker         %79 = OpLoad %v4float %78
190*c8dee2aaSAndroid Build Coastguard Worker         %75 = OpExtInst %v4float %1 FMix %77 %79 %80
191*c8dee2aaSAndroid Build Coastguard Worker         %82 = OpFOrdEqual %v4bool %75 %81
192*c8dee2aaSAndroid Build Coastguard Worker         %83 = OpAll %bool %82
193*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %74
194*c8dee2aaSAndroid Build Coastguard Worker         %74 = OpLabel
195*c8dee2aaSAndroid Build Coastguard Worker         %84 = OpPhi %bool %false %62 %83 %73
196*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %86 None
197*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %84 %85 %86
198*c8dee2aaSAndroid Build Coastguard Worker         %85 = OpLabel
199*c8dee2aaSAndroid Build Coastguard Worker         %88 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2
200*c8dee2aaSAndroid Build Coastguard Worker         %90 = OpLoad %v4float %88
201*c8dee2aaSAndroid Build Coastguard Worker         %91 = OpCompositeExtract %float %90 0
202*c8dee2aaSAndroid Build Coastguard Worker         %92 = OpAccessChain %_ptr_Uniform_v4float %7 %int_3
203*c8dee2aaSAndroid Build Coastguard Worker         %94 = OpLoad %v4float %92
204*c8dee2aaSAndroid Build Coastguard Worker         %95 = OpCompositeExtract %float %94 0
205*c8dee2aaSAndroid Build Coastguard Worker         %87 = OpExtInst %float %1 FMix %91 %95 %float_0_5
206*c8dee2aaSAndroid Build Coastguard Worker         %96 = OpFOrdEqual %bool %87 %float_0_5
207*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %86
208*c8dee2aaSAndroid Build Coastguard Worker         %86 = OpLabel
209*c8dee2aaSAndroid Build Coastguard Worker         %97 = OpPhi %bool %false %74 %96 %85
210*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %99 None
211*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %97 %98 %99
212*c8dee2aaSAndroid Build Coastguard Worker         %98 = OpLabel
213*c8dee2aaSAndroid Build Coastguard Worker        %101 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2
214*c8dee2aaSAndroid Build Coastguard Worker        %102 = OpLoad %v4float %101
215*c8dee2aaSAndroid Build Coastguard Worker        %103 = OpVectorShuffle %v2float %102 %102 0 1
216*c8dee2aaSAndroid Build Coastguard Worker        %104 = OpAccessChain %_ptr_Uniform_v4float %7 %int_3
217*c8dee2aaSAndroid Build Coastguard Worker        %105 = OpLoad %v4float %104
218*c8dee2aaSAndroid Build Coastguard Worker        %106 = OpVectorShuffle %v2float %105 %105 0 1
219*c8dee2aaSAndroid Build Coastguard Worker        %100 = OpExtInst %v2float %1 FMix %103 %106 %107
220*c8dee2aaSAndroid Build Coastguard Worker        %108 = OpVectorShuffle %v2float %27 %27 0 1
221*c8dee2aaSAndroid Build Coastguard Worker        %109 = OpFOrdEqual %v2bool %100 %108
222*c8dee2aaSAndroid Build Coastguard Worker        %111 = OpAll %bool %109
223*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %99
224*c8dee2aaSAndroid Build Coastguard Worker         %99 = OpLabel
225*c8dee2aaSAndroid Build Coastguard Worker        %112 = OpPhi %bool %false %86 %111 %98
226*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %114 None
227*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %112 %113 %114
228*c8dee2aaSAndroid Build Coastguard Worker        %113 = OpLabel
229*c8dee2aaSAndroid Build Coastguard Worker        %116 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2
230*c8dee2aaSAndroid Build Coastguard Worker        %117 = OpLoad %v4float %116
231*c8dee2aaSAndroid Build Coastguard Worker        %118 = OpVectorShuffle %v3float %117 %117 0 1 2
232*c8dee2aaSAndroid Build Coastguard Worker        %120 = OpAccessChain %_ptr_Uniform_v4float %7 %int_3
233*c8dee2aaSAndroid Build Coastguard Worker        %121 = OpLoad %v4float %120
234*c8dee2aaSAndroid Build Coastguard Worker        %122 = OpVectorShuffle %v3float %121 %121 0 1 2
235*c8dee2aaSAndroid Build Coastguard Worker        %115 = OpExtInst %v3float %1 FMix %118 %122 %123
236*c8dee2aaSAndroid Build Coastguard Worker        %124 = OpVectorShuffle %v3float %27 %27 0 1 2
237*c8dee2aaSAndroid Build Coastguard Worker        %125 = OpFOrdEqual %v3bool %115 %124
238*c8dee2aaSAndroid Build Coastguard Worker        %127 = OpAll %bool %125
239*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %114
240*c8dee2aaSAndroid Build Coastguard Worker        %114 = OpLabel
241*c8dee2aaSAndroid Build Coastguard Worker        %128 = OpPhi %bool %false %99 %127 %113
242*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %130 None
243*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %128 %129 %130
244*c8dee2aaSAndroid Build Coastguard Worker        %129 = OpLabel
245*c8dee2aaSAndroid Build Coastguard Worker        %132 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2
246*c8dee2aaSAndroid Build Coastguard Worker        %133 = OpLoad %v4float %132
247*c8dee2aaSAndroid Build Coastguard Worker        %134 = OpAccessChain %_ptr_Uniform_v4float %7 %int_3
248*c8dee2aaSAndroid Build Coastguard Worker        %135 = OpLoad %v4float %134
249*c8dee2aaSAndroid Build Coastguard Worker        %131 = OpExtInst %v4float %1 FMix %133 %135 %136
250*c8dee2aaSAndroid Build Coastguard Worker        %137 = OpFOrdEqual %v4bool %131 %27
251*c8dee2aaSAndroid Build Coastguard Worker        %138 = OpAll %bool %137
252*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %130
253*c8dee2aaSAndroid Build Coastguard Worker        %130 = OpLabel
254*c8dee2aaSAndroid Build Coastguard Worker        %139 = OpPhi %bool %false %114 %138 %129
255*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %141 None
256*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %139 %140 %141
257*c8dee2aaSAndroid Build Coastguard Worker        %140 = OpLabel
258*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %141
259*c8dee2aaSAndroid Build Coastguard Worker        %141 = OpLabel
260*c8dee2aaSAndroid Build Coastguard Worker        %143 = OpPhi %bool %false %130 %true %140
261*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %145 None
262*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %143 %144 %145
263*c8dee2aaSAndroid Build Coastguard Worker        %144 = OpLabel
264*c8dee2aaSAndroid Build Coastguard Worker        %146 = OpVectorShuffle %v2float %27 %27 0 1
265*c8dee2aaSAndroid Build Coastguard Worker        %147 = OpFOrdEqual %v2bool %107 %146
266*c8dee2aaSAndroid Build Coastguard Worker        %148 = OpAll %bool %147
267*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %145
268*c8dee2aaSAndroid Build Coastguard Worker        %145 = OpLabel
269*c8dee2aaSAndroid Build Coastguard Worker        %149 = OpPhi %bool %false %141 %148 %144
270*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %151 None
271*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %149 %150 %151
272*c8dee2aaSAndroid Build Coastguard Worker        %150 = OpLabel
273*c8dee2aaSAndroid Build Coastguard Worker        %152 = OpVectorShuffle %v3float %27 %27 0 1 2
274*c8dee2aaSAndroid Build Coastguard Worker        %153 = OpFOrdEqual %v3bool %123 %152
275*c8dee2aaSAndroid Build Coastguard Worker        %154 = OpAll %bool %153
276*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %151
277*c8dee2aaSAndroid Build Coastguard Worker        %151 = OpLabel
278*c8dee2aaSAndroid Build Coastguard Worker        %155 = OpPhi %bool %false %145 %154 %150
279*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %157 None
280*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %155 %156 %157
281*c8dee2aaSAndroid Build Coastguard Worker        %156 = OpLabel
282*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %157
283*c8dee2aaSAndroid Build Coastguard Worker        %157 = OpLabel
284*c8dee2aaSAndroid Build Coastguard Worker        %158 = OpPhi %bool %false %151 %true %156
285*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %160 None
286*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %158 %159 %160
287*c8dee2aaSAndroid Build Coastguard Worker        %159 = OpLabel
288*c8dee2aaSAndroid Build Coastguard Worker        %162 = OpAccessChain %_ptr_Uniform_v4float %7 %int_3
289*c8dee2aaSAndroid Build Coastguard Worker        %163 = OpLoad %v4float %162
290*c8dee2aaSAndroid Build Coastguard Worker        %164 = OpCompositeExtract %float %163 0
291*c8dee2aaSAndroid Build Coastguard Worker        %165 = OpAccessChain %_ptr_Uniform_v4float %7 %int_4
292*c8dee2aaSAndroid Build Coastguard Worker        %167 = OpLoad %v4float %165
293*c8dee2aaSAndroid Build Coastguard Worker        %168 = OpCompositeExtract %float %167 0
294*c8dee2aaSAndroid Build Coastguard Worker        %161 = OpExtInst %float %1 FMix %164 %168 %float_0
295*c8dee2aaSAndroid Build Coastguard Worker        %169 = OpFOrdEqual %bool %161 %float_1
296*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %160
297*c8dee2aaSAndroid Build Coastguard Worker        %160 = OpLabel
298*c8dee2aaSAndroid Build Coastguard Worker        %170 = OpPhi %bool %false %157 %169 %159
299*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %172 None
300*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %170 %171 %172
301*c8dee2aaSAndroid Build Coastguard Worker        %171 = OpLabel
302*c8dee2aaSAndroid Build Coastguard Worker        %174 = OpAccessChain %_ptr_Uniform_v4float %7 %int_3
303*c8dee2aaSAndroid Build Coastguard Worker        %175 = OpLoad %v4float %174
304*c8dee2aaSAndroid Build Coastguard Worker        %176 = OpVectorShuffle %v2float %175 %175 0 1
305*c8dee2aaSAndroid Build Coastguard Worker        %177 = OpAccessChain %_ptr_Uniform_v4float %7 %int_4
306*c8dee2aaSAndroid Build Coastguard Worker        %178 = OpLoad %v4float %177
307*c8dee2aaSAndroid Build Coastguard Worker        %179 = OpVectorShuffle %v2float %178 %178 0 1
308*c8dee2aaSAndroid Build Coastguard Worker        %173 = OpExtInst %v2float %1 FMix %176 %179 %180
309*c8dee2aaSAndroid Build Coastguard Worker        %181 = OpVectorShuffle %v2float %30 %30 0 1
310*c8dee2aaSAndroid Build Coastguard Worker        %182 = OpFOrdEqual %v2bool %173 %181
311*c8dee2aaSAndroid Build Coastguard Worker        %183 = OpAll %bool %182
312*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %172
313*c8dee2aaSAndroid Build Coastguard Worker        %172 = OpLabel
314*c8dee2aaSAndroid Build Coastguard Worker        %184 = OpPhi %bool %false %160 %183 %171
315*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %186 None
316*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %184 %185 %186
317*c8dee2aaSAndroid Build Coastguard Worker        %185 = OpLabel
318*c8dee2aaSAndroid Build Coastguard Worker        %188 = OpAccessChain %_ptr_Uniform_v4float %7 %int_3
319*c8dee2aaSAndroid Build Coastguard Worker        %189 = OpLoad %v4float %188
320*c8dee2aaSAndroid Build Coastguard Worker        %190 = OpVectorShuffle %v3float %189 %189 0 1 2
321*c8dee2aaSAndroid Build Coastguard Worker        %191 = OpAccessChain %_ptr_Uniform_v4float %7 %int_4
322*c8dee2aaSAndroid Build Coastguard Worker        %192 = OpLoad %v4float %191
323*c8dee2aaSAndroid Build Coastguard Worker        %193 = OpVectorShuffle %v3float %192 %192 0 1 2
324*c8dee2aaSAndroid Build Coastguard Worker        %187 = OpExtInst %v3float %1 FMix %190 %193 %194
325*c8dee2aaSAndroid Build Coastguard Worker        %195 = OpVectorShuffle %v3float %30 %30 0 1 2
326*c8dee2aaSAndroid Build Coastguard Worker        %196 = OpFOrdEqual %v3bool %187 %195
327*c8dee2aaSAndroid Build Coastguard Worker        %197 = OpAll %bool %196
328*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %186
329*c8dee2aaSAndroid Build Coastguard Worker        %186 = OpLabel
330*c8dee2aaSAndroid Build Coastguard Worker        %198 = OpPhi %bool %false %172 %197 %185
331*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %200 None
332*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %198 %199 %200
333*c8dee2aaSAndroid Build Coastguard Worker        %199 = OpLabel
334*c8dee2aaSAndroid Build Coastguard Worker        %202 = OpAccessChain %_ptr_Uniform_v4float %7 %int_3
335*c8dee2aaSAndroid Build Coastguard Worker        %203 = OpLoad %v4float %202
336*c8dee2aaSAndroid Build Coastguard Worker        %204 = OpAccessChain %_ptr_Uniform_v4float %7 %int_4
337*c8dee2aaSAndroid Build Coastguard Worker        %205 = OpLoad %v4float %204
338*c8dee2aaSAndroid Build Coastguard Worker        %201 = OpExtInst %v4float %1 FMix %203 %205 %206
339*c8dee2aaSAndroid Build Coastguard Worker        %207 = OpFOrdEqual %v4bool %201 %30
340*c8dee2aaSAndroid Build Coastguard Worker        %208 = OpAll %bool %207
341*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %200
342*c8dee2aaSAndroid Build Coastguard Worker        %200 = OpLabel
343*c8dee2aaSAndroid Build Coastguard Worker        %209 = OpPhi %bool %false %186 %208 %199
344*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %211 None
345*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %209 %210 %211
346*c8dee2aaSAndroid Build Coastguard Worker        %210 = OpLabel
347*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %211
348*c8dee2aaSAndroid Build Coastguard Worker        %211 = OpLabel
349*c8dee2aaSAndroid Build Coastguard Worker        %212 = OpPhi %bool %false %200 %true %210
350*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %214 None
351*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %212 %213 %214
352*c8dee2aaSAndroid Build Coastguard Worker        %213 = OpLabel
353*c8dee2aaSAndroid Build Coastguard Worker        %216 = OpVectorShuffle %v2float %30 %30 0 1
354*c8dee2aaSAndroid Build Coastguard Worker        %217 = OpFOrdEqual %v2bool %215 %216
355*c8dee2aaSAndroid Build Coastguard Worker        %218 = OpAll %bool %217
356*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %214
357*c8dee2aaSAndroid Build Coastguard Worker        %214 = OpLabel
358*c8dee2aaSAndroid Build Coastguard Worker        %219 = OpPhi %bool %false %211 %218 %213
359*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %221 None
360*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %219 %220 %221
361*c8dee2aaSAndroid Build Coastguard Worker        %220 = OpLabel
362*c8dee2aaSAndroid Build Coastguard Worker        %223 = OpVectorShuffle %v3float %30 %30 0 1 2
363*c8dee2aaSAndroid Build Coastguard Worker        %224 = OpFOrdEqual %v3bool %222 %223
364*c8dee2aaSAndroid Build Coastguard Worker        %225 = OpAll %bool %224
365*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %221
366*c8dee2aaSAndroid Build Coastguard Worker        %221 = OpLabel
367*c8dee2aaSAndroid Build Coastguard Worker        %226 = OpPhi %bool %false %214 %225 %220
368*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %228 None
369*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %226 %227 %228
370*c8dee2aaSAndroid Build Coastguard Worker        %227 = OpLabel
371*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %228
372*c8dee2aaSAndroid Build Coastguard Worker        %228 = OpLabel
373*c8dee2aaSAndroid Build Coastguard Worker        %229 = OpPhi %bool %false %221 %true %227
374*c8dee2aaSAndroid Build Coastguard Worker               OpSelectionMerge %233 None
375*c8dee2aaSAndroid Build Coastguard Worker               OpBranchConditional %229 %231 %232
376*c8dee2aaSAndroid Build Coastguard Worker        %231 = OpLabel
377*c8dee2aaSAndroid Build Coastguard Worker        %234 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
378*c8dee2aaSAndroid Build Coastguard Worker        %235 = OpLoad %v4float %234
379*c8dee2aaSAndroid Build Coastguard Worker               OpStore %230 %235
380*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %233
381*c8dee2aaSAndroid Build Coastguard Worker        %232 = OpLabel
382*c8dee2aaSAndroid Build Coastguard Worker        %236 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
383*c8dee2aaSAndroid Build Coastguard Worker        %237 = OpLoad %v4float %236
384*c8dee2aaSAndroid Build Coastguard Worker               OpStore %230 %237
385*c8dee2aaSAndroid Build Coastguard Worker               OpBranch %233
386*c8dee2aaSAndroid Build Coastguard Worker        %233 = OpLabel
387*c8dee2aaSAndroid Build Coastguard Worker        %238 = OpLoad %v4float %230
388*c8dee2aaSAndroid Build Coastguard Worker               OpReturnValue %238
389*c8dee2aaSAndroid Build Coastguard Worker               OpFunctionEnd
390