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 %expected "expected"
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 1 Offset 16
21 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
22 OpMemberDecorate %_UniformBuffer 2 Offset 32
23 OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
24 OpDecorate %_UniformBuffer Block
25 OpDecorate %10 Binding 0
26 OpDecorate %10 DescriptorSet 0
27 OpDecorate %100 RelaxedPrecision
28 OpDecorate %103 RelaxedPrecision
29 OpDecorate %104 RelaxedPrecision
30 %float = OpTypeFloat 32
31 %v4float = OpTypeVector %float 4
32 %_ptr_Output_v4float = OpTypePointer Output %v4float
33 %sk_FragColor = OpVariable %_ptr_Output_v4float Output
35 %_ptr_Input_bool = OpTypePointer Input %bool
36 %sk_Clockwise = OpVariable %_ptr_Input_bool Input
37 %_UniformBuffer = OpTypeStruct %v4float %v4float %v4float
38 %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
39 %10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
41 %15 = OpTypeFunction %void
42 %float_0 = OpConstant %float 0
43 %v2float = OpTypeVector %float 2
44 %19 = OpConstantComposite %v2float %float_0 %float_0
45 %_ptr_Function_v2float = OpTypePointer Function %v2float
46 %23 = OpTypeFunction %v4float %_ptr_Function_v2float
47 %_ptr_Function_v4float = OpTypePointer Function %v4float
48 %float_1_25 = OpConstant %float 1.25
49 %float_0_75 = OpConstant %float 0.75
50 %float_2_25 = OpConstant %float 2.25
51 %31 = OpConstantComposite %v4float %float_1_25 %float_0 %float_0_75 %float_2_25
52 %false = OpConstantFalse %bool
53 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
55 %int_0 = OpConstant %int 0
56 %v2bool = OpTypeVector %bool 2
57 %v3float = OpTypeVector %float 3
58 %v3bool = OpTypeVector %bool 3
59 %v4bool = OpTypeVector %bool 4
60 %true = OpConstantTrue %bool
61 %79 = OpConstantComposite %v2float %float_1_25 %float_0
62 %86 = OpConstantComposite %v3float %float_1_25 %float_0 %float_0_75
63 %int_1 = OpConstant %int 1
64 %int_2 = OpConstant %int 2
65 %_entrypoint_v = OpFunction %void None %15
67 %20 = OpVariable %_ptr_Function_v2float Function
69 %22 = OpFunctionCall %v4float %main %20
70 OpStore %sk_FragColor %22
73 %main = OpFunction %v4float None %23
74 %24 = OpFunctionParameter %_ptr_Function_v2float
76 %expected = OpVariable %_ptr_Function_v4float Function
77 %94 = OpVariable %_ptr_Function_v4float Function
79 %34 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
80 %38 = OpLoad %v4float %34
81 %39 = OpCompositeExtract %float %38 0
82 %33 = OpExtInst %float %1 FAbs %39
83 %40 = OpFOrdEqual %bool %33 %float_1_25
84 OpSelectionMerge %42 None
85 OpBranchConditional %40 %41 %42
87 %44 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
88 %45 = OpLoad %v4float %44
89 %46 = OpVectorShuffle %v2float %45 %45 0 1
90 %43 = OpExtInst %v2float %1 FAbs %46
91 %47 = OpVectorShuffle %v2float %31 %31 0 1
92 %48 = OpFOrdEqual %v2bool %43 %47
96 %51 = OpPhi %bool %false %25 %50 %41
97 OpSelectionMerge %53 None
98 OpBranchConditional %51 %52 %53
100 %55 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
101 %56 = OpLoad %v4float %55
102 %57 = OpVectorShuffle %v3float %56 %56 0 1 2
103 %54 = OpExtInst %v3float %1 FAbs %57
104 %59 = OpVectorShuffle %v3float %31 %31 0 1 2
105 %60 = OpFOrdEqual %v3bool %54 %59
106 %62 = OpAll %bool %60
109 %63 = OpPhi %bool %false %42 %62 %52
110 OpSelectionMerge %65 None
111 OpBranchConditional %63 %64 %65
113 %67 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
114 %68 = OpLoad %v4float %67
115 %66 = OpExtInst %v4float %1 FAbs %68
116 %69 = OpFOrdEqual %v4bool %66 %31
117 %71 = OpAll %bool %69
120 %72 = OpPhi %bool %false %53 %71 %64
121 OpSelectionMerge %74 None
122 OpBranchConditional %72 %73 %74
126 %76 = OpPhi %bool %false %65 %true %73
127 OpSelectionMerge %78 None
128 OpBranchConditional %76 %77 %78
130 %80 = OpVectorShuffle %v2float %31 %31 0 1
131 %81 = OpFOrdEqual %v2bool %79 %80
132 %82 = OpAll %bool %81
135 %83 = OpPhi %bool %false %74 %82 %77
136 OpSelectionMerge %85 None
137 OpBranchConditional %83 %84 %85
139 %87 = OpVectorShuffle %v3float %31 %31 0 1 2
140 %88 = OpFOrdEqual %v3bool %86 %87
141 %89 = OpAll %bool %88
144 %90 = OpPhi %bool %false %78 %89 %84
145 OpSelectionMerge %92 None
146 OpBranchConditional %90 %91 %92
150 %93 = OpPhi %bool %false %85 %true %91
151 OpSelectionMerge %97 None
152 OpBranchConditional %93 %95 %96
154 %98 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
155 %100 = OpLoad %v4float %98
159 %101 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
160 %103 = OpLoad %v4float %101
164 %104 = OpLoad %v4float %94