xref: /aosp_15_r20/external/skia/tests/sksl/shared/ComplexDelete.asm.frag (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %sk_FragColor
5               OpExecutionMode %main OriginUpperLeft
6               OpName %sk_FragColor "sk_FragColor"
7               OpName %s "s"
8               OpName %_UniformBuffer "_UniformBuffer"
9               OpMemberName %_UniformBuffer 0 "colorXform"
10               OpName %main "main"
11               OpName %tmpColor "tmpColor"
12               OpDecorate %sk_FragColor RelaxedPrecision
13               OpDecorate %sk_FragColor Location 0
14               OpDecorate %sk_FragColor Index 0
15               OpDecorate %s RelaxedPrecision
16               OpDecorate %s Binding 0
17               OpDecorate %s DescriptorSet 0
18               OpMemberDecorate %_UniformBuffer 0 Offset 0
19               OpMemberDecorate %_UniformBuffer 0 ColMajor
20               OpMemberDecorate %_UniformBuffer 0 MatrixStride 16
21               OpDecorate %_UniformBuffer Block
22               OpDecorate %11 Binding 0
23               OpDecorate %11 DescriptorSet 0
24               OpDecorate %21 RelaxedPrecision
25      %float = OpTypeFloat 32
26    %v4float = OpTypeVector %float 4
27%_ptr_Output_v4float = OpTypePointer Output %v4float
28%sk_FragColor = OpVariable %_ptr_Output_v4float Output
29          %8 = OpTypeImage %float 2D 0 0 0 1 Unknown
30          %9 = OpTypeSampledImage %8
31%_ptr_UniformConstant_9 = OpTypePointer UniformConstant %9
32          %s = OpVariable %_ptr_UniformConstant_9 UniformConstant
33%mat4v4float = OpTypeMatrix %v4float 4
34%_UniformBuffer = OpTypeStruct %mat4v4float
35%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
36         %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
37       %void = OpTypeVoid
38         %16 = OpTypeFunction %void
39%_ptr_Function_v4float = OpTypePointer Function %v4float
40    %float_1 = OpConstant %float 1
41    %v2float = OpTypeVector %float 2
42         %24 = OpConstantComposite %v2float %float_1 %float_1
43%_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float
44        %int = OpTypeInt 32 1
45      %int_0 = OpConstant %int 0
46    %float_0 = OpConstant %float 0
47         %31 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_0
48         %32 = OpConstantComposite %v4float %float_0 %float_1 %float_0 %float_0
49         %33 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_0
50         %34 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
51         %35 = OpConstantComposite %mat4v4float %31 %32 %33 %34
52       %bool = OpTypeBool
53     %v4bool = OpTypeVector %bool 4
54    %v3float = OpTypeVector %float 3
55         %68 = OpConstantComposite %v3float %float_0 %float_0 %float_0
56       %main = OpFunction %void None %16
57         %17 = OpLabel
58   %tmpColor = OpVariable %_ptr_Function_v4float Function
59         %53 = OpVariable %_ptr_Function_v4float Function
60         %21 = OpLoad %9 %s
61         %20 = OpImageSampleImplicitLod %v4float %21 %24
62               OpStore %tmpColor %20
63         %25 = OpAccessChain %_ptr_Uniform_mat4v4float %11 %int_0
64         %29 = OpLoad %mat4v4float %25
65         %38 = OpCompositeExtract %v4float %29 0
66         %39 = OpFUnordNotEqual %v4bool %38 %31
67         %40 = OpAny %bool %39
68         %41 = OpCompositeExtract %v4float %29 1
69         %42 = OpFUnordNotEqual %v4bool %41 %32
70         %43 = OpAny %bool %42
71         %44 = OpLogicalOr %bool %40 %43
72         %45 = OpCompositeExtract %v4float %29 2
73         %46 = OpFUnordNotEqual %v4bool %45 %33
74         %47 = OpAny %bool %46
75         %48 = OpLogicalOr %bool %44 %47
76         %49 = OpCompositeExtract %v4float %29 3
77         %50 = OpFUnordNotEqual %v4bool %49 %34
78         %51 = OpAny %bool %50
79         %52 = OpLogicalOr %bool %48 %51
80               OpSelectionMerge %56 None
81               OpBranchConditional %52 %54 %55
82         %54 = OpLabel
83         %58 = OpAccessChain %_ptr_Uniform_mat4v4float %11 %int_0
84         %59 = OpLoad %mat4v4float %58
85         %60 = OpVectorShuffle %v3float %20 %20 0 1 2
86         %62 = OpCompositeExtract %float %60 0
87         %63 = OpCompositeExtract %float %60 1
88         %64 = OpCompositeExtract %float %60 2
89         %65 = OpCompositeConstruct %v4float %62 %63 %64 %float_1
90         %66 = OpMatrixTimesVector %v4float %59 %65
91         %67 = OpVectorShuffle %v3float %66 %66 0 1 2
92         %69 = OpCompositeExtract %float %20 3
93         %70 = OpCompositeConstruct %v3float %69 %69 %69
94         %57 = OpExtInst %v3float %1 FClamp %67 %68 %70
95         %71 = OpCompositeExtract %float %57 0
96         %72 = OpCompositeExtract %float %57 1
97         %73 = OpCompositeExtract %float %57 2
98         %74 = OpCompositeConstruct %v4float %71 %72 %73 %69
99               OpStore %53 %74
100               OpBranch %56
101         %55 = OpLabel
102               OpStore %53 %20
103               OpBranch %56
104         %56 = OpLabel
105         %75 = OpLoad %v4float %53
106               OpStore %sk_FragColor %75
107               OpReturn
108               OpFunctionEnd
109