xref: /aosp_15_r20/external/skia/tests/sksl/shared/OutParamsAreDistinctFromGlobal.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 %x "x"
8               OpName %_UniformBuffer "_UniformBuffer"
9               OpMemberName %_UniformBuffer 0 "colorGreen"
10               OpMemberName %_UniformBuffer 1 "colorRed"
11               OpName %_entrypoint_v "_entrypoint_v"
12               OpName %out_params_are_distinct_from_global_bh "out_params_are_distinct_from_global_bh"
13               OpName %main "main"
14               OpDecorate %sk_FragColor RelaxedPrecision
15               OpDecorate %sk_FragColor Location 0
16               OpDecorate %sk_FragColor Index 0
17               OpDecorate %x RelaxedPrecision
18               OpMemberDecorate %_UniformBuffer 0 Offset 0
19               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
20               OpMemberDecorate %_UniformBuffer 1 Offset 16
21               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
22               OpDecorate %_UniformBuffer Block
23               OpDecorate %11 Binding 0
24               OpDecorate %11 DescriptorSet 0
25               OpDecorate %31 RelaxedPrecision
26               OpDecorate %40 RelaxedPrecision
27               OpDecorate %42 RelaxedPrecision
28               OpDecorate %52 RelaxedPrecision
29               OpDecorate %55 RelaxedPrecision
30               OpDecorate %56 RelaxedPrecision
31      %float = OpTypeFloat 32
32    %v4float = OpTypeVector %float 4
33%_ptr_Output_v4float = OpTypePointer Output %v4float
34%sk_FragColor = OpVariable %_ptr_Output_v4float Output
35%_ptr_Private_float = OpTypePointer Private %float
36          %x = OpVariable %_ptr_Private_float Private
37    %float_1 = OpConstant %float 1
38%_UniformBuffer = OpTypeStruct %v4float %v4float
39%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
40         %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
41       %void = OpTypeVoid
42         %16 = OpTypeFunction %void
43    %float_0 = OpConstant %float 0
44    %v2float = OpTypeVector %float 2
45         %20 = OpConstantComposite %v2float %float_0 %float_0
46%_ptr_Function_v2float = OpTypePointer Function %v2float
47       %bool = OpTypeBool
48%_ptr_Function_float = OpTypePointer Function %float
49         %26 = OpTypeFunction %bool %_ptr_Function_float
50    %float_2 = OpConstant %float 2
51      %false = OpConstantFalse %bool
52       %true = OpConstantTrue %bool
53         %37 = OpTypeFunction %v4float %_ptr_Function_v2float
54%_ptr_Function_v4float = OpTypePointer Function %v4float
55%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
56        %int = OpTypeInt 32 1
57      %int_0 = OpConstant %int 0
58      %int_1 = OpConstant %int 1
59%_entrypoint_v = OpFunction %void None %16
60         %17 = OpLabel
61         %21 = OpVariable %_ptr_Function_v2float Function
62               OpStore %21 %20
63         %23 = OpFunctionCall %v4float %main %21
64               OpStore %sk_FragColor %23
65               OpReturn
66               OpFunctionEnd
67%out_params_are_distinct_from_global_bh = OpFunction %bool None %26
68         %27 = OpFunctionParameter %_ptr_Function_float
69         %28 = OpLabel
70               OpStore %27 %float_2
71         %31 = OpLoad %float %x
72         %32 = OpFOrdEqual %bool %31 %float_1
73               OpSelectionMerge %34 None
74               OpBranchConditional %32 %33 %34
75         %33 = OpLabel
76               OpBranch %34
77         %34 = OpLabel
78         %36 = OpPhi %bool %false %28 %true %33
79               OpReturnValue %36
80               OpFunctionEnd
81       %main = OpFunction %v4float None %37
82         %38 = OpFunctionParameter %_ptr_Function_v2float
83         %39 = OpLabel
84         %40 = OpVariable %_ptr_Function_float Function
85         %43 = OpVariable %_ptr_Function_v4float Function
86               OpStore %x %float_1
87         %41 = OpFunctionCall %bool %out_params_are_distinct_from_global_bh %40
88         %42 = OpLoad %float %40
89               OpStore %x %42
90               OpSelectionMerge %47 None
91               OpBranchConditional %41 %45 %46
92         %45 = OpLabel
93         %48 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
94         %52 = OpLoad %v4float %48
95               OpStore %43 %52
96               OpBranch %47
97         %46 = OpLabel
98         %53 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
99         %55 = OpLoad %v4float %53
100               OpStore %43 %55
101               OpBranch %47
102         %47 = OpLabel
103         %56 = OpLoad %v4float %43
104               OpReturnValue %56
105               OpFunctionEnd
106