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