• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "colorGreen"
10OpMemberName %_UniformBuffer 1 "colorRed"
11OpName %_entrypoint_v "_entrypoint_v"
12OpName %main "main"
13OpName %value "value"
14OpName %exp "exp"
15OpName %result "result"
16OpName %ok "ok"
17OpDecorate %sk_FragColor RelaxedPrecision
18OpDecorate %sk_FragColor Location 0
19OpDecorate %sk_FragColor Index 0
20OpDecorate %sk_Clockwise BuiltIn FrontFacing
21OpMemberDecorate %_UniformBuffer 0 Offset 0
22OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
23OpMemberDecorate %_UniformBuffer 1 Offset 16
24OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
25OpDecorate %_UniformBuffer Block
26OpDecorate %10 Binding 0
27OpDecorate %10 DescriptorSet 0
28OpDecorate %32 RelaxedPrecision
29OpDecorate %33 RelaxedPrecision
30OpDecorate %35 RelaxedPrecision
31OpDecorate %126 RelaxedPrecision
32OpDecorate %132 RelaxedPrecision
33OpDecorate %134 RelaxedPrecision
34OpDecorate %135 RelaxedPrecision
35%float = OpTypeFloat 32
36%v4float = OpTypeVector %float 4
37%_ptr_Output_v4float = OpTypePointer Output %v4float
38%sk_FragColor = OpVariable %_ptr_Output_v4float Output
39%bool = OpTypeBool
40%_ptr_Input_bool = OpTypePointer Input %bool
41%sk_Clockwise = OpVariable %_ptr_Input_bool Input
42%_UniformBuffer = OpTypeStruct %v4float %v4float
43%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
44%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
45%void = OpTypeVoid
46%15 = OpTypeFunction %void
47%v2float = OpTypeVector %float 2
48%float_0 = OpConstant %float 0
49%19 = OpConstantComposite %v2float %float_0 %float_0
50%_ptr_Function_v2float = OpTypePointer Function %v2float
51%23 = OpTypeFunction %v4float %_ptr_Function_v2float
52%_ptr_Function_v4float = OpTypePointer Function %v4float
53%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
54%int = OpTypeInt 32 1
55%int_0 = OpConstant %int 0
56%float_6 = OpConstant %float 6
57%v4int = OpTypeVector %int 4
58%_ptr_Function_v4int = OpTypePointer Function %v4int
59%v4bool = OpTypeVector %bool 4
60%_ptr_Function_v4bool = OpTypePointer Function %v4bool
61%_ptr_Function_int = OpTypePointer Function %int
62%_ptr_Function_float = OpTypePointer Function %float
63%false = OpConstantFalse %bool
64%float_0_75 = OpConstant %float 0.75
65%int_3 = OpConstant %int 3
66%_ptr_Function_bool = OpTypePointer Function %bool
67%v2int = OpTypeVector %int 2
68%_ptr_Function_v2int = OpTypePointer Function %v2int
69%int_1 = OpConstant %int 1
70%v3float = OpTypeVector %float 3
71%v3int = OpTypeVector %int 3
72%_ptr_Function_v3int = OpTypePointer Function %v3int
73%int_2 = OpConstant %int 2
74%_entrypoint_v = OpFunction %void None %15
75%16 = OpLabel
76%20 = OpVariable %_ptr_Function_v2float Function
77OpStore %20 %19
78%22 = OpFunctionCall %v4float %main %20
79OpStore %sk_FragColor %22
80OpReturn
81OpFunctionEnd
82%main = OpFunction %v4float None %23
83%24 = OpFunctionParameter %_ptr_Function_v2float
84%25 = OpLabel
85%value = OpVariable %_ptr_Function_v4float Function
86%exp = OpVariable %_ptr_Function_v4int Function
87%result = OpVariable %_ptr_Function_v4float Function
88%ok = OpVariable %_ptr_Function_v4bool Function
89%48 = OpVariable %_ptr_Function_int Function
90%69 = OpVariable %_ptr_Function_v2int Function
91%92 = OpVariable %_ptr_Function_v3int Function
92%113 = OpVariable %_ptr_Function_v4int Function
93%127 = OpVariable %_ptr_Function_v4float Function
94%28 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
95%32 = OpLoad %v4float %28
96%33 = OpVectorShuffle %v4float %32 %32 1 1 1 1
97%35 = OpVectorTimesScalar %v4float %33 %float_6
98OpStore %value %35
99%44 = OpLoad %v4float %value
100%45 = OpCompositeExtract %float %44 0
101%46 = OpAccessChain %_ptr_Function_int %exp %int_0
102%43 = OpExtInst %float %1 Frexp %45 %48
103%49 = OpLoad %int %48
104OpStore %46 %49
105%50 = OpAccessChain %_ptr_Function_float %result %int_0
106OpStore %50 %43
107%53 = OpLoad %v4float %result
108%54 = OpCompositeExtract %float %53 0
109%56 = OpFOrdEqual %bool %54 %float_0_75
110OpSelectionMerge %58 None
111OpBranchConditional %56 %57 %58
112%57 = OpLabel
113%59 = OpLoad %v4int %exp
114%60 = OpCompositeExtract %int %59 0
115%62 = OpIEqual %bool %60 %int_3
116OpBranch %58
117%58 = OpLabel
118%63 = OpPhi %bool %false %25 %62 %57
119%64 = OpAccessChain %_ptr_Function_bool %ok %int_0
120OpStore %64 %63
121%67 = OpLoad %v4float %value
122%68 = OpVectorShuffle %v2float %67 %67 0 1
123%66 = OpExtInst %v2float %1 Frexp %68 %69
124%72 = OpLoad %v2int %69
125%73 = OpLoad %v4int %exp
126%74 = OpVectorShuffle %v4int %73 %72 4 5 2 3
127OpStore %exp %74
128%75 = OpLoad %v4float %result
129%76 = OpVectorShuffle %v4float %75 %66 4 5 2 3
130OpStore %result %76
131%77 = OpLoad %v4float %result
132%78 = OpCompositeExtract %float %77 1
133%79 = OpFOrdEqual %bool %78 %float_0_75
134OpSelectionMerge %81 None
135OpBranchConditional %79 %80 %81
136%80 = OpLabel
137%82 = OpLoad %v4int %exp
138%83 = OpCompositeExtract %int %82 1
139%84 = OpIEqual %bool %83 %int_3
140OpBranch %81
141%81 = OpLabel
142%85 = OpPhi %bool %false %58 %84 %80
143%86 = OpAccessChain %_ptr_Function_bool %ok %int_1
144OpStore %86 %85
145%89 = OpLoad %v4float %value
146%90 = OpVectorShuffle %v3float %89 %89 0 1 2
147%88 = OpExtInst %v3float %1 Frexp %90 %92
148%95 = OpLoad %v3int %92
149%96 = OpLoad %v4int %exp
150%97 = OpVectorShuffle %v4int %96 %95 4 5 6 3
151OpStore %exp %97
152%98 = OpLoad %v4float %result
153%99 = OpVectorShuffle %v4float %98 %88 4 5 6 3
154OpStore %result %99
155%100 = OpLoad %v4float %result
156%101 = OpCompositeExtract %float %100 2
157%102 = OpFOrdEqual %bool %101 %float_0_75
158OpSelectionMerge %104 None
159OpBranchConditional %102 %103 %104
160%103 = OpLabel
161%105 = OpLoad %v4int %exp
162%106 = OpCompositeExtract %int %105 2
163%107 = OpIEqual %bool %106 %int_3
164OpBranch %104
165%104 = OpLabel
166%108 = OpPhi %bool %false %81 %107 %103
167%109 = OpAccessChain %_ptr_Function_bool %ok %int_2
168OpStore %109 %108
169%112 = OpLoad %v4float %value
170%111 = OpExtInst %v4float %1 Frexp %112 %113
171%114 = OpLoad %v4int %113
172OpStore %exp %114
173OpStore %result %111
174%115 = OpLoad %v4float %result
175%116 = OpCompositeExtract %float %115 3
176%117 = OpFOrdEqual %bool %116 %float_0_75
177OpSelectionMerge %119 None
178OpBranchConditional %117 %118 %119
179%118 = OpLabel
180%120 = OpLoad %v4int %exp
181%121 = OpCompositeExtract %int %120 3
182%122 = OpIEqual %bool %121 %int_3
183OpBranch %119
184%119 = OpLabel
185%123 = OpPhi %bool %false %104 %122 %118
186%124 = OpAccessChain %_ptr_Function_bool %ok %int_3
187OpStore %124 %123
188%126 = OpLoad %v4bool %ok
189%125 = OpAll %bool %126
190OpSelectionMerge %130 None
191OpBranchConditional %125 %128 %129
192%128 = OpLabel
193%131 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
194%132 = OpLoad %v4float %131
195OpStore %127 %132
196OpBranch %130
197%129 = OpLabel
198%133 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
199%134 = OpLoad %v4float %133
200OpStore %127 %134
201OpBranch %130
202%130 = OpLabel
203%135 = OpLoad %v4float %127
204OpReturnValue %135
205OpFunctionEnd
206