xref: /aosp_15_r20/external/skia/tests/sksl/shared/NumberCasts.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 %_entrypoint_v "_entrypoint_v"
8               OpName %main "main"
9               OpName %B "B"
10               OpName %F "F"
11               OpName %I "I"
12               OpDecorate %sk_FragColor RelaxedPrecision
13               OpDecorate %sk_FragColor Location 0
14               OpDecorate %sk_FragColor Index 0
15               OpDecorate %58 RelaxedPrecision
16               OpDecorate %62 RelaxedPrecision
17               OpDecorate %67 RelaxedPrecision
18               OpDecorate %70 RelaxedPrecision
19               OpDecorate %79 RelaxedPrecision
20               OpDecorate %80 RelaxedPrecision
21      %float = OpTypeFloat 32
22    %v4float = OpTypeVector %float 4
23%_ptr_Output_v4float = OpTypePointer Output %v4float
24%sk_FragColor = OpVariable %_ptr_Output_v4float Output
25       %void = OpTypeVoid
26          %9 = OpTypeFunction %void
27    %float_0 = OpConstant %float 0
28    %v2float = OpTypeVector %float 2
29         %13 = OpConstantComposite %v2float %float_0 %float_0
30%_ptr_Function_v2float = OpTypePointer Function %v2float
31         %17 = OpTypeFunction %v4float %_ptr_Function_v2float
32       %bool = OpTypeBool
33     %v3bool = OpTypeVector %bool 3
34%_ptr_Function_v3bool = OpTypePointer Function %v3bool
35       %true = OpConstantTrue %bool
36%_ptr_Function_bool = OpTypePointer Function %bool
37        %int = OpTypeInt 32 1
38      %int_0 = OpConstant %int 0
39      %int_1 = OpConstant %int 1
40      %int_2 = OpConstant %int 2
41    %v3float = OpTypeVector %float 3
42%_ptr_Function_v3float = OpTypePointer Function %v3float
43%float_1_23000002 = OpConstant %float 1.23000002
44%_ptr_Function_float = OpTypePointer Function %float
45    %float_1 = OpConstant %float 1
46      %v3int = OpTypeVector %int 3
47%_ptr_Function_v3int = OpTypePointer Function %v3int
48%_ptr_Function_int = OpTypePointer Function %int
49      %false = OpConstantFalse %bool
50%_entrypoint_v = OpFunction %void None %9
51         %10 = OpLabel
52         %14 = OpVariable %_ptr_Function_v2float Function
53               OpStore %14 %13
54         %16 = OpFunctionCall %v4float %main %14
55               OpStore %sk_FragColor %16
56               OpReturn
57               OpFunctionEnd
58       %main = OpFunction %v4float None %17
59         %18 = OpFunctionParameter %_ptr_Function_v2float
60         %19 = OpLabel
61          %B = OpVariable %_ptr_Function_v3bool Function
62          %F = OpVariable %_ptr_Function_v3float Function
63          %I = OpVariable %_ptr_Function_v3int Function
64         %25 = OpAccessChain %_ptr_Function_bool %B %int_0
65               OpStore %25 %true
66         %29 = OpAccessChain %_ptr_Function_bool %B %int_1
67               OpStore %29 %true
68         %31 = OpAccessChain %_ptr_Function_bool %B %int_2
69               OpStore %31 %true
70         %37 = OpAccessChain %_ptr_Function_float %F %int_0
71               OpStore %37 %float_1_23000002
72         %39 = OpAccessChain %_ptr_Function_float %F %int_1
73               OpStore %39 %float_0
74         %41 = OpAccessChain %_ptr_Function_float %F %int_2
75               OpStore %41 %float_1
76         %45 = OpAccessChain %_ptr_Function_int %I %int_0
77               OpStore %45 %int_1
78         %47 = OpAccessChain %_ptr_Function_int %I %int_1
79               OpStore %47 %int_1
80         %48 = OpAccessChain %_ptr_Function_int %I %int_2
81               OpStore %48 %int_1
82         %49 = OpLoad %v3float %F
83         %50 = OpCompositeExtract %float %49 0
84         %51 = OpLoad %v3float %F
85         %52 = OpCompositeExtract %float %51 1
86         %53 = OpFMul %float %50 %52
87         %54 = OpLoad %v3float %F
88         %55 = OpCompositeExtract %float %54 2
89         %56 = OpFMul %float %53 %55
90         %58 = OpLoad %v3bool %B
91         %59 = OpCompositeExtract %bool %58 0
92               OpSelectionMerge %61 None
93               OpBranchConditional %59 %60 %61
94         %60 = OpLabel
95         %62 = OpLoad %v3bool %B
96         %63 = OpCompositeExtract %bool %62 1
97               OpBranch %61
98         %61 = OpLabel
99         %64 = OpPhi %bool %false %19 %63 %60
100               OpSelectionMerge %66 None
101               OpBranchConditional %64 %65 %66
102         %65 = OpLabel
103         %67 = OpLoad %v3bool %B
104         %68 = OpCompositeExtract %bool %67 2
105               OpBranch %66
106         %66 = OpLabel
107         %69 = OpPhi %bool %false %61 %68 %65
108         %70 = OpSelect %float %69 %float_1 %float_0
109         %71 = OpLoad %v3int %I
110         %72 = OpCompositeExtract %int %71 0
111         %73 = OpLoad %v3int %I
112         %74 = OpCompositeExtract %int %73 1
113         %75 = OpIMul %int %72 %74
114         %76 = OpLoad %v3int %I
115         %77 = OpCompositeExtract %int %76 2
116         %78 = OpIMul %int %75 %77
117         %79 = OpConvertSToF %float %78
118         %80 = OpCompositeConstruct %v4float %56 %70 %float_0 %79
119               OpReturnValue %80
120               OpFunctionEnd
121