xref: /aosp_15_r20/external/skia/tests/sksl/intrinsics/Floor.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 %_UniformBuffer "_UniformBuffer"
8               OpMemberName %_UniformBuffer 0 "testInputs"
9               OpMemberName %_UniformBuffer 1 "colorGreen"
10               OpMemberName %_UniformBuffer 2 "colorRed"
11               OpName %_entrypoint_v "_entrypoint_v"
12               OpName %main "main"
13               OpName %expected "expected"
14               OpDecorate %sk_FragColor RelaxedPrecision
15               OpDecorate %sk_FragColor Location 0
16               OpDecorate %sk_FragColor Index 0
17               OpMemberDecorate %_UniformBuffer 0 Offset 0
18               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
19               OpMemberDecorate %_UniformBuffer 1 Offset 16
20               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
21               OpMemberDecorate %_UniformBuffer 2 Offset 32
22               OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
23               OpDecorate %_UniformBuffer Block
24               OpDecorate %7 Binding 0
25               OpDecorate %7 DescriptorSet 0
26               OpDecorate %expected RelaxedPrecision
27               OpDecorate %30 RelaxedPrecision
28               OpDecorate %35 RelaxedPrecision
29               OpDecorate %36 RelaxedPrecision
30               OpDecorate %40 RelaxedPrecision
31               OpDecorate %42 RelaxedPrecision
32               OpDecorate %43 RelaxedPrecision
33               OpDecorate %44 RelaxedPrecision
34               OpDecorate %51 RelaxedPrecision
35               OpDecorate %53 RelaxedPrecision
36               OpDecorate %54 RelaxedPrecision
37               OpDecorate %56 RelaxedPrecision
38               OpDecorate %63 RelaxedPrecision
39               OpDecorate %65 RelaxedPrecision
40               OpDecorate %77 RelaxedPrecision
41               OpDecorate %84 RelaxedPrecision
42               OpDecorate %97 RelaxedPrecision
43               OpDecorate %100 RelaxedPrecision
44               OpDecorate %101 RelaxedPrecision
45      %float = OpTypeFloat 32
46    %v4float = OpTypeVector %float 4
47%_ptr_Output_v4float = OpTypePointer Output %v4float
48%sk_FragColor = OpVariable %_ptr_Output_v4float Output
49%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float
50%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
51          %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
52       %void = OpTypeVoid
53         %12 = OpTypeFunction %void
54    %float_0 = OpConstant %float 0
55    %v2float = OpTypeVector %float 2
56         %16 = OpConstantComposite %v2float %float_0 %float_0
57%_ptr_Function_v2float = OpTypePointer Function %v2float
58         %20 = OpTypeFunction %v4float %_ptr_Function_v2float
59%_ptr_Function_v4float = OpTypePointer Function %v4float
60   %float_n2 = OpConstant %float -2
61    %float_2 = OpConstant %float 2
62         %27 = OpConstantComposite %v4float %float_n2 %float_0 %float_0 %float_2
63       %bool = OpTypeBool
64      %false = OpConstantFalse %bool
65%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
66        %int = OpTypeInt 32 1
67      %int_0 = OpConstant %int 0
68     %v2bool = OpTypeVector %bool 2
69    %v3float = OpTypeVector %float 3
70     %v3bool = OpTypeVector %bool 3
71     %v4bool = OpTypeVector %bool 4
72       %true = OpConstantTrue %bool
73         %76 = OpConstantComposite %v2float %float_n2 %float_0
74         %83 = OpConstantComposite %v3float %float_n2 %float_0 %float_0
75      %int_1 = OpConstant %int 1
76      %int_2 = OpConstant %int 2
77%_entrypoint_v = OpFunction %void None %12
78         %13 = OpLabel
79         %17 = OpVariable %_ptr_Function_v2float Function
80               OpStore %17 %16
81         %19 = OpFunctionCall %v4float %main %17
82               OpStore %sk_FragColor %19
83               OpReturn
84               OpFunctionEnd
85       %main = OpFunction %v4float None %20
86         %21 = OpFunctionParameter %_ptr_Function_v2float
87         %22 = OpLabel
88   %expected = OpVariable %_ptr_Function_v4float Function
89         %91 = OpVariable %_ptr_Function_v4float Function
90               OpStore %expected %27
91         %31 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
92         %35 = OpLoad %v4float %31
93         %36 = OpCompositeExtract %float %35 0
94         %30 = OpExtInst %float %1 Floor %36
95         %37 = OpFOrdEqual %bool %30 %float_n2
96               OpSelectionMerge %39 None
97               OpBranchConditional %37 %38 %39
98         %38 = OpLabel
99         %41 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
100         %42 = OpLoad %v4float %41
101         %43 = OpVectorShuffle %v2float %42 %42 0 1
102         %40 = OpExtInst %v2float %1 Floor %43
103         %44 = OpVectorShuffle %v2float %27 %27 0 1
104         %45 = OpFOrdEqual %v2bool %40 %44
105         %47 = OpAll %bool %45
106               OpBranch %39
107         %39 = OpLabel
108         %48 = OpPhi %bool %false %22 %47 %38
109               OpSelectionMerge %50 None
110               OpBranchConditional %48 %49 %50
111         %49 = OpLabel
112         %52 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
113         %53 = OpLoad %v4float %52
114         %54 = OpVectorShuffle %v3float %53 %53 0 1 2
115         %51 = OpExtInst %v3float %1 Floor %54
116         %56 = OpVectorShuffle %v3float %27 %27 0 1 2
117         %57 = OpFOrdEqual %v3bool %51 %56
118         %59 = OpAll %bool %57
119               OpBranch %50
120         %50 = OpLabel
121         %60 = OpPhi %bool %false %39 %59 %49
122               OpSelectionMerge %62 None
123               OpBranchConditional %60 %61 %62
124         %61 = OpLabel
125         %64 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
126         %65 = OpLoad %v4float %64
127         %63 = OpExtInst %v4float %1 Floor %65
128         %66 = OpFOrdEqual %v4bool %63 %27
129         %68 = OpAll %bool %66
130               OpBranch %62
131         %62 = OpLabel
132         %69 = OpPhi %bool %false %50 %68 %61
133               OpSelectionMerge %71 None
134               OpBranchConditional %69 %70 %71
135         %70 = OpLabel
136               OpBranch %71
137         %71 = OpLabel
138         %73 = OpPhi %bool %false %62 %true %70
139               OpSelectionMerge %75 None
140               OpBranchConditional %73 %74 %75
141         %74 = OpLabel
142         %77 = OpVectorShuffle %v2float %27 %27 0 1
143         %78 = OpFOrdEqual %v2bool %76 %77
144         %79 = OpAll %bool %78
145               OpBranch %75
146         %75 = OpLabel
147         %80 = OpPhi %bool %false %71 %79 %74
148               OpSelectionMerge %82 None
149               OpBranchConditional %80 %81 %82
150         %81 = OpLabel
151         %84 = OpVectorShuffle %v3float %27 %27 0 1 2
152         %85 = OpFOrdEqual %v3bool %83 %84
153         %86 = OpAll %bool %85
154               OpBranch %82
155         %82 = OpLabel
156         %87 = OpPhi %bool %false %75 %86 %81
157               OpSelectionMerge %89 None
158               OpBranchConditional %87 %88 %89
159         %88 = OpLabel
160               OpBranch %89
161         %89 = OpLabel
162         %90 = OpPhi %bool %false %82 %true %88
163               OpSelectionMerge %94 None
164               OpBranchConditional %90 %92 %93
165         %92 = OpLabel
166         %95 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
167         %97 = OpLoad %v4float %95
168               OpStore %91 %97
169               OpBranch %94
170         %93 = OpLabel
171         %98 = OpAccessChain %_ptr_Uniform_v4float %7 %int_2
172        %100 = OpLoad %v4float %98
173               OpStore %91 %100
174               OpBranch %94
175         %94 = OpLabel
176        %101 = OpLoad %v4float %91
177               OpReturnValue %101
178               OpFunctionEnd
179