• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor
5               OpExecutionMode %_entrypoint_v OriginUpperLeft
6               OpName %sk_FragColor "sk_FragColor"
7               OpName %_UniformBuffer "_UniformBuffer"
8               OpMemberName %_UniformBuffer 0 "colorGreen"
9               OpMemberName %_UniformBuffer 1 "colorRed"
10               OpMemberName %_UniformBuffer 2 "unknownInput"
11               OpName %_entrypoint_v "_entrypoint_v"
12               OpName %return_on_both_sides_b "return_on_both_sides_b"
13               OpName %for_inside_body_b "for_inside_body_b"
14               OpName %x "x"
15               OpName %after_for_body_b "after_for_body_b"
16               OpName %x_0 "x"
17               OpName %for_with_double_sided_conditional_return_b "for_with_double_sided_conditional_return_b"
18               OpName %x_1 "x"
19               OpName %if_else_chain_b "if_else_chain_b"
20               OpName %main "main"
21               OpDecorate %sk_FragColor RelaxedPrecision
22               OpDecorate %sk_FragColor Location 0
23               OpDecorate %sk_FragColor Index 0
24               OpMemberDecorate %_UniformBuffer 0 Offset 0
25               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
26               OpMemberDecorate %_UniformBuffer 1 Offset 16
27               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
28               OpMemberDecorate %_UniformBuffer 2 Offset 32
29               OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
30               OpDecorate %_UniformBuffer Block
31               OpDecorate %12 Binding 0
32               OpDecorate %12 DescriptorSet 0
33               OpDecorate %32 RelaxedPrecision
34               OpDecorate %75 RelaxedPrecision
35               OpDecorate %84 RelaxedPrecision
36               OpDecorate %90 RelaxedPrecision
37               OpDecorate %98 RelaxedPrecision
38               OpDecorate %105 RelaxedPrecision
39               OpDecorate %141 RelaxedPrecision
40               OpDecorate %143 RelaxedPrecision
41               OpDecorate %144 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
46%_UniformBuffer = OpTypeStruct %v4float %v4float %float
47%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
48         %12 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
49       %void = OpTypeVoid
50         %17 = OpTypeFunction %void
51    %float_0 = OpConstant %float 0
52    %v2float = OpTypeVector %float 2
53         %21 = OpConstantComposite %v2float %float_0 %float_0
54%_ptr_Function_v2float = OpTypePointer Function %v2float
55       %bool = OpTypeBool
56         %26 = OpTypeFunction %bool
57%_ptr_Uniform_float = OpTypePointer Uniform %float
58        %int = OpTypeInt 32 1
59      %int_2 = OpConstant %int 2
60    %float_1 = OpConstant %float 1
61       %true = OpConstantTrue %bool
62%_ptr_Function_int = OpTypePointer Function %int
63      %int_0 = OpConstant %int 0
64     %int_10 = OpConstant %int 10
65      %int_1 = OpConstant %int 1
66    %float_2 = OpConstant %float 2
67      %false = OpConstantFalse %bool
68    %float_3 = OpConstant %float 3
69    %float_4 = OpConstant %float 4
70        %111 = OpTypeFunction %v4float %_ptr_Function_v2float
71%_ptr_Function_v4float = OpTypePointer Function %v4float
72%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
73%_entrypoint_v = OpFunction %void None %17
74         %18 = OpLabel
75         %22 = OpVariable %_ptr_Function_v2float Function
76               OpStore %22 %21
77         %24 = OpFunctionCall %v4float %main %22
78               OpStore %sk_FragColor %24
79               OpReturn
80               OpFunctionEnd
81%return_on_both_sides_b = OpFunction %bool None %26
82         %27 = OpLabel
83         %28 = OpAccessChain %_ptr_Uniform_float %12 %int_2
84         %32 = OpLoad %float %28
85         %34 = OpFOrdEqual %bool %32 %float_1
86               OpSelectionMerge %37 None
87               OpBranchConditional %34 %35 %36
88         %35 = OpLabel
89               OpReturnValue %true
90         %36 = OpLabel
91               OpReturnValue %true
92         %37 = OpLabel
93               OpUnreachable
94               OpFunctionEnd
95%for_inside_body_b = OpFunction %bool None %26
96         %39 = OpLabel
97          %x = OpVariable %_ptr_Function_int Function
98               OpStore %x %int_0
99               OpBranch %43
100         %43 = OpLabel
101               OpLoopMerge %47 %46 None
102               OpBranch %44
103         %44 = OpLabel
104         %48 = OpLoad %int %x
105         %50 = OpSLessThanEqual %bool %48 %int_10
106               OpBranchConditional %50 %45 %47
107         %45 = OpLabel
108               OpReturnValue %true
109         %46 = OpLabel
110         %52 = OpLoad %int %x
111         %53 = OpIAdd %int %52 %int_1
112               OpStore %x %53
113               OpBranch %43
114         %47 = OpLabel
115               OpUnreachable
116               OpFunctionEnd
117%after_for_body_b = OpFunction %bool None %26
118         %54 = OpLabel
119        %x_0 = OpVariable %_ptr_Function_int Function
120               OpStore %x_0 %int_0
121               OpBranch %56
122         %56 = OpLabel
123               OpLoopMerge %60 %59 None
124               OpBranch %57
125         %57 = OpLabel
126         %61 = OpLoad %int %x_0
127         %62 = OpSLessThanEqual %bool %61 %int_10
128               OpBranchConditional %62 %58 %60
129         %58 = OpLabel
130               OpBranch %59
131         %59 = OpLabel
132         %63 = OpLoad %int %x_0
133         %64 = OpIAdd %int %63 %int_1
134               OpStore %x_0 %64
135               OpBranch %56
136         %60 = OpLabel
137               OpReturnValue %true
138               OpFunctionEnd
139%for_with_double_sided_conditional_return_b = OpFunction %bool None %26
140         %65 = OpLabel
141        %x_1 = OpVariable %_ptr_Function_int Function
142               OpStore %x_1 %int_0
143               OpBranch %67
144         %67 = OpLabel
145               OpLoopMerge %71 %70 None
146               OpBranch %68
147         %68 = OpLabel
148         %72 = OpLoad %int %x_1
149         %73 = OpSLessThanEqual %bool %72 %int_10
150               OpBranchConditional %73 %69 %71
151         %69 = OpLabel
152         %74 = OpAccessChain %_ptr_Uniform_float %12 %int_2
153         %75 = OpLoad %float %74
154         %76 = OpFOrdEqual %bool %75 %float_1
155               OpSelectionMerge %79 None
156               OpBranchConditional %76 %77 %78
157         %77 = OpLabel
158               OpReturnValue %true
159         %78 = OpLabel
160               OpReturnValue %true
161         %79 = OpLabel
162               OpBranch %70
163         %70 = OpLabel
164         %80 = OpLoad %int %x_1
165         %81 = OpIAdd %int %80 %int_1
166               OpStore %x_1 %81
167               OpBranch %67
168         %71 = OpLabel
169               OpUnreachable
170               OpFunctionEnd
171%if_else_chain_b = OpFunction %bool None %26
172         %82 = OpLabel
173         %83 = OpAccessChain %_ptr_Uniform_float %12 %int_2
174         %84 = OpLoad %float %83
175         %85 = OpFOrdEqual %bool %84 %float_1
176               OpSelectionMerge %88 None
177               OpBranchConditional %85 %86 %87
178         %86 = OpLabel
179               OpReturnValue %true
180         %87 = OpLabel
181         %89 = OpAccessChain %_ptr_Uniform_float %12 %int_2
182         %90 = OpLoad %float %89
183         %92 = OpFOrdEqual %bool %90 %float_2
184               OpSelectionMerge %95 None
185               OpBranchConditional %92 %93 %94
186         %93 = OpLabel
187               OpReturnValue %false
188         %94 = OpLabel
189         %97 = OpAccessChain %_ptr_Uniform_float %12 %int_2
190         %98 = OpLoad %float %97
191        %100 = OpFOrdEqual %bool %98 %float_3
192               OpSelectionMerge %103 None
193               OpBranchConditional %100 %101 %102
194        %101 = OpLabel
195               OpReturnValue %true
196        %102 = OpLabel
197        %104 = OpAccessChain %_ptr_Uniform_float %12 %int_2
198        %105 = OpLoad %float %104
199        %107 = OpFOrdEqual %bool %105 %float_4
200               OpSelectionMerge %110 None
201               OpBranchConditional %107 %108 %109
202        %108 = OpLabel
203               OpReturnValue %false
204        %109 = OpLabel
205               OpReturnValue %true
206        %110 = OpLabel
207               OpBranch %103
208        %103 = OpLabel
209               OpBranch %95
210         %95 = OpLabel
211               OpBranch %88
212         %88 = OpLabel
213               OpUnreachable
214               OpFunctionEnd
215       %main = OpFunction %v4float None %111
216        %112 = OpFunctionParameter %_ptr_Function_v2float
217        %113 = OpLabel
218        %134 = OpVariable %_ptr_Function_v4float Function
219               OpSelectionMerge %115 None
220               OpBranchConditional %true %114 %115
221        %114 = OpLabel
222        %116 = OpFunctionCall %bool %return_on_both_sides_b
223               OpBranch %115
224        %115 = OpLabel
225        %117 = OpPhi %bool %false %113 %116 %114
226               OpSelectionMerge %119 None
227               OpBranchConditional %117 %118 %119
228        %118 = OpLabel
229        %120 = OpFunctionCall %bool %for_inside_body_b
230               OpBranch %119
231        %119 = OpLabel
232        %121 = OpPhi %bool %false %115 %120 %118
233               OpSelectionMerge %123 None
234               OpBranchConditional %121 %122 %123
235        %122 = OpLabel
236        %124 = OpFunctionCall %bool %after_for_body_b
237               OpBranch %123
238        %123 = OpLabel
239        %125 = OpPhi %bool %false %119 %124 %122
240               OpSelectionMerge %127 None
241               OpBranchConditional %125 %126 %127
242        %126 = OpLabel
243        %128 = OpFunctionCall %bool %for_with_double_sided_conditional_return_b
244               OpBranch %127
245        %127 = OpLabel
246        %129 = OpPhi %bool %false %123 %128 %126
247               OpSelectionMerge %131 None
248               OpBranchConditional %129 %130 %131
249        %130 = OpLabel
250        %132 = OpFunctionCall %bool %if_else_chain_b
251               OpBranch %131
252        %131 = OpLabel
253        %133 = OpPhi %bool %false %127 %132 %130
254               OpSelectionMerge %138 None
255               OpBranchConditional %133 %136 %137
256        %136 = OpLabel
257        %139 = OpAccessChain %_ptr_Uniform_v4float %12 %int_0
258        %141 = OpLoad %v4float %139
259               OpStore %134 %141
260               OpBranch %138
261        %137 = OpLabel
262        %142 = OpAccessChain %_ptr_Uniform_v4float %12 %int_1
263        %143 = OpLoad %v4float %142
264               OpStore %134 %143
265               OpBranch %138
266        %138 = OpLabel
267        %144 = OpLoad %v4float %134
268               OpReturnValue %144
269               OpFunctionEnd
270