xref: /aosp_15_r20/external/skia/tests/sksl/shared/ScopedSymbol.asm.frag (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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 %glob "glob"
8               OpName %_UniformBuffer "_UniformBuffer"
9               OpMemberName %_UniformBuffer 0 "colorGreen"
10               OpMemberName %_UniformBuffer 1 "colorRed"
11               OpName %_entrypoint_v "_entrypoint_v"
12               OpName %block_variable_hides_global_variable_b "block_variable_hides_global_variable_b"
13               OpName %local_variable_hides_struct_b "local_variable_hides_struct_b"
14               OpName %S "S"
15               OpName %local_struct_variable_hides_struct_type_b "local_struct_variable_hides_struct_type_b"
16               OpName %S_0 "S"
17               OpMemberName %S_0 0 "i"
18               OpName %S_1 "S"
19               OpName %local_variable_hides_global_variable_b "local_variable_hides_global_variable_b"
20               OpName %glob_0 "glob"
21               OpName %main "main"
22               OpDecorate %sk_FragColor RelaxedPrecision
23               OpDecorate %sk_FragColor Location 0
24               OpDecorate %sk_FragColor Index 0
25               OpMemberDecorate %_UniformBuffer 0 Offset 0
26               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
27               OpMemberDecorate %_UniformBuffer 1 Offset 16
28               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
29               OpDecorate %_UniformBuffer Block
30               OpDecorate %14 Binding 0
31               OpDecorate %14 DescriptorSet 0
32               OpMemberDecorate %S_0 0 Offset 0
33               OpDecorate %77 RelaxedPrecision
34               OpDecorate %79 RelaxedPrecision
35               OpDecorate %80 RelaxedPrecision
36      %float = OpTypeFloat 32
37    %v4float = OpTypeVector %float 4
38%_ptr_Output_v4float = OpTypePointer Output %v4float
39%sk_FragColor = OpVariable %_ptr_Output_v4float Output
40        %int = OpTypeInt 32 1
41%_ptr_Private_int = OpTypePointer Private %int
42       %glob = OpVariable %_ptr_Private_int Private
43%_UniformBuffer = OpTypeStruct %v4float %v4float
44%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
45         %14 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
46       %void = OpTypeVoid
47         %19 = OpTypeFunction %void
48    %float_0 = OpConstant %float 0
49    %v2float = OpTypeVector %float 2
50         %23 = OpConstantComposite %v2float %float_0 %float_0
51%_ptr_Function_v2float = OpTypePointer Function %v2float
52       %bool = OpTypeBool
53         %28 = OpTypeFunction %bool
54      %int_2 = OpConstant %int 2
55%_ptr_Function_bool = OpTypePointer Function %bool
56       %true = OpConstantTrue %bool
57        %S_0 = OpTypeStruct %int
58%_ptr_Function_S_0 = OpTypePointer Function %S_0
59      %int_1 = OpConstant %int 1
60      %int_0 = OpConstant %int 0
61%_ptr_Function_int = OpTypePointer Function %int
62         %50 = OpTypeFunction %v4float %_ptr_Function_v2float
63      %false = OpConstantFalse %bool
64%_ptr_Function_v4float = OpTypePointer Function %v4float
65%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
66%_entrypoint_v = OpFunction %void None %19
67         %20 = OpLabel
68         %24 = OpVariable %_ptr_Function_v2float Function
69               OpStore %24 %23
70         %26 = OpFunctionCall %v4float %main %24
71               OpStore %sk_FragColor %26
72               OpReturn
73               OpFunctionEnd
74%block_variable_hides_global_variable_b = OpFunction %bool None %28
75         %29 = OpLabel
76         %30 = OpLoad %int %glob
77         %32 = OpIEqual %bool %30 %int_2
78               OpReturnValue %32
79               OpFunctionEnd
80%local_variable_hides_struct_b = OpFunction %bool None %28
81         %33 = OpLabel
82          %S = OpVariable %_ptr_Function_bool Function
83               OpStore %S %true
84               OpReturnValue %true
85               OpFunctionEnd
86%local_struct_variable_hides_struct_type_b = OpFunction %bool None %28
87         %37 = OpLabel
88        %S_1 = OpVariable %_ptr_Function_S_0 Function
89         %42 = OpCompositeConstruct %S_0 %int_1
90               OpStore %S_1 %42
91         %44 = OpAccessChain %_ptr_Function_int %S_1 %int_0
92         %46 = OpLoad %int %44
93         %47 = OpIEqual %bool %46 %int_1
94               OpReturnValue %47
95               OpFunctionEnd
96%local_variable_hides_global_variable_b = OpFunction %bool None %28
97         %48 = OpLabel
98     %glob_0 = OpVariable %_ptr_Function_int Function
99               OpStore %glob_0 %int_1
100               OpReturnValue %true
101               OpFunctionEnd
102       %main = OpFunction %v4float None %50
103         %51 = OpFunctionParameter %_ptr_Function_v2float
104         %52 = OpLabel
105         %70 = OpVariable %_ptr_Function_v4float Function
106               OpStore %glob %int_2
107               OpSelectionMerge %55 None
108               OpBranchConditional %true %54 %55
109         %54 = OpLabel
110         %56 = OpFunctionCall %bool %block_variable_hides_global_variable_b
111               OpBranch %55
112         %55 = OpLabel
113         %57 = OpPhi %bool %false %52 %56 %54
114               OpSelectionMerge %59 None
115               OpBranchConditional %57 %58 %59
116         %58 = OpLabel
117         %60 = OpFunctionCall %bool %local_variable_hides_struct_b
118               OpBranch %59
119         %59 = OpLabel
120         %61 = OpPhi %bool %false %55 %60 %58
121               OpSelectionMerge %63 None
122               OpBranchConditional %61 %62 %63
123         %62 = OpLabel
124         %64 = OpFunctionCall %bool %local_struct_variable_hides_struct_type_b
125               OpBranch %63
126         %63 = OpLabel
127         %65 = OpPhi %bool %false %59 %64 %62
128               OpSelectionMerge %67 None
129               OpBranchConditional %65 %66 %67
130         %66 = OpLabel
131         %68 = OpFunctionCall %bool %local_variable_hides_global_variable_b
132               OpBranch %67
133         %67 = OpLabel
134         %69 = OpPhi %bool %false %63 %68 %66
135               OpSelectionMerge %74 None
136               OpBranchConditional %69 %72 %73
137         %72 = OpLabel
138         %75 = OpAccessChain %_ptr_Uniform_v4float %14 %int_0
139         %77 = OpLoad %v4float %75
140               OpStore %70 %77
141               OpBranch %74
142         %73 = OpLabel
143         %78 = OpAccessChain %_ptr_Uniform_v4float %14 %int_1
144         %79 = OpLoad %v4float %78
145               OpStore %70 %79
146               OpBranch %74
147         %74 = OpLabel
148         %80 = OpLoad %v4float %70
149               OpReturnValue %80
150               OpFunctionEnd
151