1OpCapability Shader
2%1 = OpExtInstImport "GLSL.std.450"
3OpMemoryModel Logical GLSL450
4OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5OpExecutionMode %_entrypoint_v OriginUpperLeft
6OpName %sk_FragColor "sk_FragColor"
7OpName %sk_Clockwise "sk_Clockwise"
8OpName %_UniformBuffer "_UniformBuffer"
9OpMemberName %_UniformBuffer 0 "testInputs"
10OpMemberName %_UniformBuffer 1 "colorBlack"
11OpMemberName %_UniformBuffer 2 "colorGreen"
12OpMemberName %_UniformBuffer 3 "colorRed"
13OpName %_entrypoint_v "_entrypoint_v"
14OpName %main "main"
15OpName %_0_v "_0_v"
16OpName %_1_i "_1_i"
17OpName %_2_x "_2_x"
18OpName %_3_y "_3_y"
19OpName %_4_z "_4_z"
20OpName %_5_w "_5_w"
21OpDecorate %sk_FragColor RelaxedPrecision
22OpDecorate %sk_FragColor Location 0
23OpDecorate %sk_FragColor Index 0
24OpDecorate %sk_Clockwise BuiltIn FrontFacing
25OpMemberDecorate %_UniformBuffer 0 Offset 0
26OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
27OpMemberDecorate %_UniformBuffer 1 Offset 16
28OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
29OpMemberDecorate %_UniformBuffer 2 Offset 32
30OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
31OpMemberDecorate %_UniformBuffer 3 Offset 48
32OpMemberDecorate %_UniformBuffer 3 RelaxedPrecision
33OpDecorate %_UniformBuffer Block
34OpDecorate %10 Binding 0
35OpDecorate %10 DescriptorSet 0
36OpDecorate %_0_v RelaxedPrecision
37OpDecorate %32 RelaxedPrecision
38OpDecorate %38 RelaxedPrecision
39OpDecorate %39 RelaxedPrecision
40OpDecorate %41 RelaxedPrecision
41OpDecorate %43 RelaxedPrecision
42OpDecorate %45 RelaxedPrecision
43OpDecorate %_2_x RelaxedPrecision
44OpDecorate %50 RelaxedPrecision
45OpDecorate %_3_y RelaxedPrecision
46OpDecorate %55 RelaxedPrecision
47OpDecorate %_4_z RelaxedPrecision
48OpDecorate %60 RelaxedPrecision
49OpDecorate %_5_w RelaxedPrecision
50OpDecorate %65 RelaxedPrecision
51OpDecorate %69 RelaxedPrecision
52OpDecorate %70 RelaxedPrecision
53OpDecorate %71 RelaxedPrecision
54OpDecorate %72 RelaxedPrecision
55OpDecorate %73 RelaxedPrecision
56OpDecorate %75 RelaxedPrecision
57OpDecorate %85 RelaxedPrecision
58OpDecorate %88 RelaxedPrecision
59OpDecorate %89 RelaxedPrecision
60%float = OpTypeFloat 32
61%v4float = OpTypeVector %float 4
62%_ptr_Output_v4float = OpTypePointer Output %v4float
63%sk_FragColor = OpVariable %_ptr_Output_v4float Output
64%bool = OpTypeBool
65%_ptr_Input_bool = OpTypePointer Input %bool
66%sk_Clockwise = OpVariable %_ptr_Input_bool Input
67%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float %v4float
68%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
69%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
70%void = OpTypeVoid
71%15 = OpTypeFunction %void
72%v2float = OpTypeVector %float 2
73%float_0 = OpConstant %float 0
74%19 = OpConstantComposite %v2float %float_0 %float_0
75%_ptr_Function_v2float = OpTypePointer Function %v2float
76%23 = OpTypeFunction %v4float %_ptr_Function_v2float
77%_ptr_Function_v4float = OpTypePointer Function %v4float
78%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
79%int = OpTypeInt 32 1
80%int_0 = OpConstant %int 0
81%v4int = OpTypeVector %int 4
82%_ptr_Function_v4int = OpTypePointer Function %v4int
83%int_1 = OpConstant %int 1
84%_ptr_Function_float = OpTypePointer Function %float
85%float_n1_25 = OpConstant %float -1.25
86%75 = OpConstantComposite %v4float %float_n1_25 %float_n1_25 %float_n1_25 %float_0
87%v4bool = OpTypeVector %bool 4
88%int_2 = OpConstant %int 2
89%int_3 = OpConstant %int 3
90%_entrypoint_v = OpFunction %void None %15
91%16 = OpLabel
92%20 = OpVariable %_ptr_Function_v2float Function
93OpStore %20 %19
94%22 = OpFunctionCall %v4float %main %20
95OpStore %sk_FragColor %22
96OpReturn
97OpFunctionEnd
98%main = OpFunction %v4float None %23
99%24 = OpFunctionParameter %_ptr_Function_v2float
100%25 = OpLabel
101%_0_v = OpVariable %_ptr_Function_v4float Function
102%_1_i = OpVariable %_ptr_Function_v4int Function
103%_2_x = OpVariable %_ptr_Function_float Function
104%_3_y = OpVariable %_ptr_Function_float Function
105%_4_z = OpVariable %_ptr_Function_float Function
106%_5_w = OpVariable %_ptr_Function_float Function
107%79 = OpVariable %_ptr_Function_v4float Function
108%28 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
109%32 = OpLoad %v4float %28
110OpStore %_0_v %32
111%36 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
112%38 = OpLoad %v4float %36
113%39 = OpCompositeExtract %float %38 0
114%40 = OpConvertFToS %int %39
115%41 = OpCompositeExtract %float %38 1
116%42 = OpConvertFToS %int %41
117%43 = OpCompositeExtract %float %38 2
118%44 = OpConvertFToS %int %43
119%45 = OpCompositeExtract %float %38 3
120%46 = OpConvertFToS %int %45
121%47 = OpCompositeConstruct %v4int %40 %42 %44 %46
122OpStore %_1_i %47
123%50 = OpLoad %v4float %_0_v
124%51 = OpLoad %v4int %_1_i
125%52 = OpCompositeExtract %int %51 0
126%53 = OpVectorExtractDynamic %float %50 %52
127OpStore %_2_x %53
128%55 = OpLoad %v4float %_0_v
129%56 = OpLoad %v4int %_1_i
130%57 = OpCompositeExtract %int %56 1
131%58 = OpVectorExtractDynamic %float %55 %57
132OpStore %_3_y %58
133%60 = OpLoad %v4float %_0_v
134%61 = OpLoad %v4int %_1_i
135%62 = OpCompositeExtract %int %61 2
136%63 = OpVectorExtractDynamic %float %60 %62
137OpStore %_4_z %63
138%65 = OpLoad %v4float %_0_v
139%66 = OpLoad %v4int %_1_i
140%67 = OpCompositeExtract %int %66 3
141%68 = OpVectorExtractDynamic %float %65 %67
142OpStore %_5_w %68
143%69 = OpLoad %float %_2_x
144%70 = OpLoad %float %_3_y
145%71 = OpLoad %float %_4_z
146%72 = OpLoad %float %_5_w
147%73 = OpCompositeConstruct %v4float %69 %70 %71 %72
148%76 = OpFOrdEqual %v4bool %73 %75
149%78 = OpAll %bool %76
150OpSelectionMerge %82 None
151OpBranchConditional %78 %80 %81
152%80 = OpLabel
153%83 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
154%85 = OpLoad %v4float %83
155OpStore %79 %85
156OpBranch %82
157%81 = OpLabel
158%86 = OpAccessChain %_ptr_Uniform_v4float %10 %int_3
159%88 = OpLoad %v4float %86
160OpStore %79 %88
161OpBranch %82
162%82 = OpLabel
163%89 = OpLoad %v4float %79
164OpReturnValue %89
165OpFunctionEnd
166