xref: /aosp_15_r20/external/skia/tests/sksl/shared/ResizeMatrixNonsquare.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 "colorGreen"
9               OpMemberName %_UniformBuffer 1 "colorRed"
10               OpName %_entrypoint_v "_entrypoint_v"
11               OpName %main "main"
12               OpName %result "result"
13               OpName %g "g"
14               OpName %h "h"
15               OpName %i "i"
16               OpName %j "j"
17               OpName %k "k"
18               OpName %l "l"
19               OpDecorate %sk_FragColor RelaxedPrecision
20               OpDecorate %sk_FragColor Location 0
21               OpDecorate %sk_FragColor Index 0
22               OpMemberDecorate %_UniformBuffer 0 Offset 0
23               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
24               OpMemberDecorate %_UniformBuffer 1 Offset 16
25               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
26               OpDecorate %_UniformBuffer Block
27               OpDecorate %7 Binding 0
28               OpDecorate %7 DescriptorSet 0
29               OpDecorate %103 RelaxedPrecision
30               OpDecorate %106 RelaxedPrecision
31               OpDecorate %107 RelaxedPrecision
32      %float = OpTypeFloat 32
33    %v4float = OpTypeVector %float 4
34%_ptr_Output_v4float = OpTypePointer Output %v4float
35%sk_FragColor = OpVariable %_ptr_Output_v4float Output
36%_UniformBuffer = OpTypeStruct %v4float %v4float
37%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
38          %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
39       %void = OpTypeVoid
40         %12 = OpTypeFunction %void
41    %float_0 = OpConstant %float 0
42    %v2float = OpTypeVector %float 2
43         %16 = OpConstantComposite %v2float %float_0 %float_0
44%_ptr_Function_v2float = OpTypePointer Function %v2float
45         %20 = OpTypeFunction %v4float %_ptr_Function_v2float
46%_ptr_Function_float = OpTypePointer Function %float
47    %v3float = OpTypeVector %float 3
48%mat3v3float = OpTypeMatrix %v3float 3
49%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
50    %float_1 = OpConstant %float 1
51         %30 = OpConstantComposite %v3float %float_1 %float_0 %float_0
52         %31 = OpConstantComposite %v3float %float_0 %float_1 %float_0
53%mat2v3float = OpTypeMatrix %v3float 2
54         %33 = OpConstantComposite %mat2v3float %30 %31
55         %34 = OpConstantComposite %v3float %float_0 %float_0 %float_1
56         %35 = OpConstantComposite %mat3v3float %30 %31 %34
57        %int = OpTypeInt 32 1
58      %int_0 = OpConstant %int 0
59%_ptr_Function_v3float = OpTypePointer Function %v3float
60         %44 = OpConstantComposite %v2float %float_1 %float_0
61         %45 = OpConstantComposite %v2float %float_0 %float_1
62%mat3v2float = OpTypeMatrix %v2float 3
63         %47 = OpConstantComposite %mat3v2float %44 %45 %16
64%mat4v4float = OpTypeMatrix %v4float 4
65%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
66%mat4v2float = OpTypeMatrix %v2float 4
67         %56 = OpConstantComposite %mat4v2float %44 %45 %16 %16
68         %57 = OpConstantComposite %v3float %float_0 %float_0 %float_0
69%mat4v3float = OpTypeMatrix %v3float 4
70         %59 = OpConstantComposite %mat4v3float %30 %31 %34 %57
71         %60 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_0
72         %61 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_0
73         %62 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_0
74         %63 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
75         %64 = OpConstantComposite %mat4v4float %60 %61 %62 %63
76%_ptr_Function_v4float = OpTypePointer Function %v4float
77%mat2v4float = OpTypeMatrix %v4float 2
78         %72 = OpConstantComposite %mat2v4float %60 %61
79%mat3v4float = OpTypeMatrix %v4float 3
80         %74 = OpConstantComposite %mat3v4float %60 %61 %62
81%_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float
82%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float
83    %float_6 = OpConstant %float 6
84       %bool = OpTypeBool
85%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
86      %int_1 = OpConstant %int 1
87%_entrypoint_v = OpFunction %void None %12
88         %13 = OpLabel
89         %17 = OpVariable %_ptr_Function_v2float Function
90               OpStore %17 %16
91         %19 = OpFunctionCall %v4float %main %17
92               OpStore %sk_FragColor %19
93               OpReturn
94               OpFunctionEnd
95       %main = OpFunction %v4float None %20
96         %21 = OpFunctionParameter %_ptr_Function_v2float
97         %22 = OpLabel
98     %result = OpVariable %_ptr_Function_float Function
99          %g = OpVariable %_ptr_Function_mat3v3float Function
100          %h = OpVariable %_ptr_Function_mat3v3float Function
101          %i = OpVariable %_ptr_Function_mat4v4float Function
102          %j = OpVariable %_ptr_Function_mat4v4float Function
103          %k = OpVariable %_ptr_Function_mat2v4float Function
104          %l = OpVariable %_ptr_Function_mat4v2float Function
105         %97 = OpVariable %_ptr_Function_v4float Function
106               OpStore %result %float_0
107               OpStore %g %35
108         %38 = OpAccessChain %_ptr_Function_v3float %g %int_0
109         %40 = OpLoad %v3float %38
110         %41 = OpCompositeExtract %float %40 0
111         %42 = OpFAdd %float %float_0 %41
112               OpStore %result %42
113               OpStore %h %35
114         %48 = OpAccessChain %_ptr_Function_v3float %h %int_0
115         %49 = OpLoad %v3float %48
116         %50 = OpCompositeExtract %float %49 0
117         %51 = OpFAdd %float %42 %50
118               OpStore %result %51
119               OpStore %i %64
120         %65 = OpAccessChain %_ptr_Function_v4float %i %int_0
121         %67 = OpLoad %v4float %65
122         %68 = OpCompositeExtract %float %67 0
123         %69 = OpFAdd %float %51 %68
124               OpStore %result %69
125               OpStore %j %64
126         %75 = OpAccessChain %_ptr_Function_v4float %j %int_0
127         %76 = OpLoad %v4float %75
128         %77 = OpCompositeExtract %float %76 0
129         %78 = OpFAdd %float %69 %77
130               OpStore %result %78
131               OpStore %k %72
132         %81 = OpAccessChain %_ptr_Function_v4float %k %int_0
133         %82 = OpLoad %v4float %81
134         %83 = OpCompositeExtract %float %82 0
135         %84 = OpFAdd %float %78 %83
136               OpStore %result %84
137         %87 = OpVectorShuffle %v2float %60 %60 0 1
138         %88 = OpVectorShuffle %v2float %61 %61 0 1
139         %89 = OpCompositeConstruct %mat4v2float %87 %88 %16 %16
140               OpStore %l %89
141         %90 = OpAccessChain %_ptr_Function_v2float %l %int_0
142         %91 = OpLoad %v2float %90
143         %92 = OpCompositeExtract %float %91 0
144         %93 = OpFAdd %float %84 %92
145               OpStore %result %93
146         %95 = OpFOrdEqual %bool %93 %float_6
147               OpSelectionMerge %100 None
148               OpBranchConditional %95 %98 %99
149         %98 = OpLabel
150        %101 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
151        %103 = OpLoad %v4float %101
152               OpStore %97 %103
153               OpBranch %100
154         %99 = OpLabel
155        %104 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
156        %106 = OpLoad %v4float %104
157               OpStore %97 %106
158               OpBranch %100
159        %100 = OpLabel
160        %107 = OpLoad %v4float %97
161               OpReturnValue %107
162               OpFunctionEnd
163