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 "testInputs"
10 OpMemberName %_UniformBuffer 1 "colorGreen"
11 OpMemberName %_UniformBuffer 2 "colorRed"
12 OpName %_entrypoint_v "_entrypoint_v"
14 OpName %expectedA "expectedA"
15 OpDecorate %sk_FragColor RelaxedPrecision
16 OpDecorate %sk_FragColor Location 0
17 OpDecorate %sk_FragColor Index 0
18 OpDecorate %sk_Clockwise BuiltIn FrontFacing
19 OpMemberDecorate %_UniformBuffer 0 Offset 0
20 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
21 OpMemberDecorate %_UniformBuffer 1 Offset 16
22 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
23 OpMemberDecorate %_UniformBuffer 2 Offset 32
24 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
25 OpDecorate %_UniformBuffer Block
26 OpDecorate %10 Binding 0
27 OpDecorate %10 DescriptorSet 0
28 OpDecorate %32 RelaxedPrecision
29 OpDecorate %37 RelaxedPrecision
30 OpDecorate %38 RelaxedPrecision
31 OpDecorate %42 RelaxedPrecision
32 OpDecorate %44 RelaxedPrecision
33 OpDecorate %45 RelaxedPrecision
34 OpDecorate %53 RelaxedPrecision
35 OpDecorate %55 RelaxedPrecision
36 OpDecorate %56 RelaxedPrecision
37 OpDecorate %65 RelaxedPrecision
38 OpDecorate %67 RelaxedPrecision
39 OpDecorate %78 RelaxedPrecision
40 OpDecorate %81 RelaxedPrecision
41 OpDecorate %82 RelaxedPrecision
42 %float = OpTypeFloat 32
43 %v4float = OpTypeVector %float 4
44 %_ptr_Output_v4float = OpTypePointer Output %v4float
45 %sk_FragColor = OpVariable %_ptr_Output_v4float Output
47 %_ptr_Input_bool = OpTypePointer Input %bool
48 %sk_Clockwise = OpVariable %_ptr_Input_bool Input
49 %_UniformBuffer = OpTypeStruct %v4float %v4float %v4float
50 %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
51 %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
53 %15 = OpTypeFunction %void
54 %float_0 = OpConstant %float 0
55 %v2float = OpTypeVector %float 2
56 %19 = OpConstantComposite %v2float %float_0 %float_0
57 %_ptr_Function_v2float = OpTypePointer Function %v2float
58 %23 = OpTypeFunction %v4float %_ptr_Function_v2float
59 %_ptr_Function_v4float = OpTypePointer Function %v4float
60 %float_n1 = OpConstant %float -1
61 %float_2 = OpConstant %float 2
62 %30 = OpConstantComposite %v4float %float_n1 %float_0 %float_0 %float_2
63 %false = OpConstantFalse %bool
64 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
66 %int_0 = OpConstant %int 0
67 %46 = OpConstantComposite %v2float %float_n1 %float_0
68 %v2bool = OpTypeVector %bool 2
69 %v3float = OpTypeVector %float 3
70 %58 = OpConstantComposite %v3float %float_n1 %float_0 %float_0
71 %v3bool = OpTypeVector %bool 3
72 %v4bool = OpTypeVector %bool 4
73 %int_1 = OpConstant %int 1
74 %int_2 = OpConstant %int 2
75 %_entrypoint_v = OpFunction %void None %15
77 %20 = OpVariable %_ptr_Function_v2float Function
79 %22 = OpFunctionCall %v4float %main %20
80 OpStore %sk_FragColor %22
83 %main = OpFunction %v4float None %23
84 %24 = OpFunctionParameter %_ptr_Function_v2float
86 %expectedA = OpVariable %_ptr_Function_v4float Function
87 %72 = OpVariable %_ptr_Function_v4float Function
88 OpStore %expectedA %30
89 %33 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
90 %37 = OpLoad %v4float %33
91 %38 = OpCompositeExtract %float %37 0
92 %32 = OpExtInst %float %1 Trunc %38
93 %39 = OpFOrdEqual %bool %32 %float_n1
94 OpSelectionMerge %41 None
95 OpBranchConditional %39 %40 %41
97 %43 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
98 %44 = OpLoad %v4float %43
99 %45 = OpVectorShuffle %v2float %44 %44 0 1
100 %42 = OpExtInst %v2float %1 Trunc %45
101 %47 = OpFOrdEqual %v2bool %42 %46
102 %49 = OpAll %bool %47
105 %50 = OpPhi %bool %false %25 %49 %40
106 OpSelectionMerge %52 None
107 OpBranchConditional %50 %51 %52
109 %54 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
110 %55 = OpLoad %v4float %54
111 %56 = OpVectorShuffle %v3float %55 %55 0 1 2
112 %53 = OpExtInst %v3float %1 Trunc %56
113 %59 = OpFOrdEqual %v3bool %53 %58
114 %61 = OpAll %bool %59
117 %62 = OpPhi %bool %false %41 %61 %51
118 OpSelectionMerge %64 None
119 OpBranchConditional %62 %63 %64
121 %66 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
122 %67 = OpLoad %v4float %66
123 %65 = OpExtInst %v4float %1 Trunc %67
124 %68 = OpFOrdEqual %v4bool %65 %30
125 %70 = OpAll %bool %68
128 %71 = OpPhi %bool %false %52 %70 %63
129 OpSelectionMerge %75 None
130 OpBranchConditional %71 %73 %74
132 %76 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
133 %78 = OpLoad %v4float %76
137 %79 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
138 %81 = OpLoad %v4float %79
142 %82 = OpLoad %v4float %72