2 %1 = OpExtInstImport "GLSL.std.450"
3 OpMemoryModel Logical GLSL450
4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5 OpExecutionMode %_entrypoint_v OriginUpperLeft
6 OpName %sk_FragColor "sk_FragColor"
7 OpName %sk_Clockwise "sk_Clockwise"
8 OpName %_UniformBuffer "_UniformBuffer"
9 OpMemberName %_UniformBuffer 0 "pos1"
10 OpMemberName %_UniformBuffer 1 "pos2"
11 OpMemberName %_UniformBuffer 2 "colorGreen"
12 OpMemberName %_UniformBuffer 3 "colorRed"
13 OpName %_entrypoint_v "_entrypoint_v"
15 OpName %expected "expected"
16 OpDecorate %sk_FragColor RelaxedPrecision
17 OpDecorate %sk_FragColor Location 0
18 OpDecorate %sk_FragColor Index 0
19 OpDecorate %sk_Clockwise BuiltIn FrontFacing
20 OpMemberDecorate %_UniformBuffer 0 Offset 0
21 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
22 OpMemberDecorate %_UniformBuffer 1 Offset 16
23 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
24 OpMemberDecorate %_UniformBuffer 2 Offset 32
25 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
26 OpMemberDecorate %_UniformBuffer 3 Offset 48
27 OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision
28 OpDecorate %_UniformBuffer Block
29 OpDecorate %10 Binding 0
30 OpDecorate %10 DescriptorSet 0
31 OpDecorate %expected RelaxedPrecision
32 OpDecorate %33 RelaxedPrecision
33 OpDecorate %38 RelaxedPrecision
34 OpDecorate %39 RelaxedPrecision
35 OpDecorate %42 RelaxedPrecision
36 OpDecorate %43 RelaxedPrecision
37 OpDecorate %47 RelaxedPrecision
38 OpDecorate %49 RelaxedPrecision
39 OpDecorate %50 RelaxedPrecision
40 OpDecorate %52 RelaxedPrecision
41 OpDecorate %53 RelaxedPrecision
42 OpDecorate %58 RelaxedPrecision
43 OpDecorate %60 RelaxedPrecision
44 OpDecorate %61 RelaxedPrecision
45 OpDecorate %64 RelaxedPrecision
46 OpDecorate %65 RelaxedPrecision
47 OpDecorate %70 RelaxedPrecision
48 OpDecorate %72 RelaxedPrecision
49 OpDecorate %74 RelaxedPrecision
50 OpDecorate %96 RelaxedPrecision
51 OpDecorate %99 RelaxedPrecision
52 OpDecorate %100 RelaxedPrecision
53 %float = OpTypeFloat 32
54 %v4float = OpTypeVector %float 4
55 %_ptr_Output_v4float = OpTypePointer Output %v4float
56 %sk_FragColor = OpVariable %_ptr_Output_v4float Output
58 %_ptr_Input_bool = OpTypePointer Input %bool
59 %sk_Clockwise = OpVariable %_ptr_Input_bool Input
60 %_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float
61 %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
62 %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
64 %15 = OpTypeFunction %void
65 %float_0 = OpConstant %float 0
66 %v2float = OpTypeVector %float 2
67 %19 = OpConstantComposite %v2float %float_0 %float_0
68 %_ptr_Function_v2float = OpTypePointer Function %v2float
69 %23 = OpTypeFunction %v4float %_ptr_Function_v2float
70 %_ptr_Function_v4float = OpTypePointer Function %v4float
71 %float_3 = OpConstant %float 3
72 %float_5 = OpConstant %float 5
73 %float_13 = OpConstant %float 13
74 %31 = OpConstantComposite %v4float %float_3 %float_3 %float_5 %float_13
75 %false = OpConstantFalse %bool
76 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
78 %int_0 = OpConstant %int 0
79 %int_1 = OpConstant %int 1
80 %v3float = OpTypeVector %float 3
81 %true = OpConstantTrue %bool
82 %int_2 = OpConstant %int 2
83 %int_3 = OpConstant %int 3
84 %_entrypoint_v = OpFunction %void None %15
86 %20 = OpVariable %_ptr_Function_v2float Function
88 %22 = OpFunctionCall %v4float %main %20
89 OpStore %sk_FragColor %22
92 %main = OpFunction %v4float None %23
93 %24 = OpFunctionParameter %_ptr_Function_v2float
95 %expected = OpVariable %_ptr_Function_v4float Function
96 %90 = OpVariable %_ptr_Function_v4float Function
98 %34 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
99 %38 = OpLoad %v4float %34
100 %39 = OpCompositeExtract %float %38 0
101 %40 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
102 %42 = OpLoad %v4float %40
103 %43 = OpCompositeExtract %float %42 0
104 %33 = OpExtInst %float %1 Distance %39 %43
105 %44 = OpFOrdEqual %bool %33 %float_3
106 OpSelectionMerge %46 None
107 OpBranchConditional %44 %45 %46
109 %48 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
110 %49 = OpLoad %v4float %48
111 %50 = OpVectorShuffle %v2float %49 %49 0 1
112 %51 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
113 %52 = OpLoad %v4float %51
114 %53 = OpVectorShuffle %v2float %52 %52 0 1
115 %47 = OpExtInst %float %1 Distance %50 %53
116 %54 = OpFOrdEqual %bool %47 %float_3
119 %55 = OpPhi %bool %false %25 %54 %45
120 OpSelectionMerge %57 None
121 OpBranchConditional %55 %56 %57
123 %59 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
124 %60 = OpLoad %v4float %59
125 %61 = OpVectorShuffle %v3float %60 %60 0 1 2
126 %63 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
127 %64 = OpLoad %v4float %63
128 %65 = OpVectorShuffle %v3float %64 %64 0 1 2
129 %58 = OpExtInst %float %1 Distance %61 %65
130 %66 = OpFOrdEqual %bool %58 %float_5
133 %67 = OpPhi %bool %false %46 %66 %56
134 OpSelectionMerge %69 None
135 OpBranchConditional %67 %68 %69
137 %71 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
138 %72 = OpLoad %v4float %71
139 %73 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
140 %74 = OpLoad %v4float %73
141 %70 = OpExtInst %float %1 Distance %72 %74
142 %75 = OpFOrdEqual %bool %70 %float_13
145 %76 = OpPhi %bool %false %57 %75 %68
146 OpSelectionMerge %78 None
147 OpBranchConditional %76 %77 %78
151 %80 = OpPhi %bool %false %69 %true %77
152 OpSelectionMerge %82 None
153 OpBranchConditional %80 %81 %82
157 %83 = OpPhi %bool %false %78 %true %81
158 OpSelectionMerge %85 None
159 OpBranchConditional %83 %84 %85
163 %86 = OpPhi %bool %false %82 %true %84
164 OpSelectionMerge %88 None
165 OpBranchConditional %86 %87 %88
169 %89 = OpPhi %bool %false %85 %true %87
170 OpSelectionMerge %93 None
171 OpBranchConditional %89 %91 %92
173 %94 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
174 %96 = OpLoad %v4float %94
178 %97 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3
179 %99 = OpLoad %v4float %97
183 %100 = OpLoad %v4float %90