xref: /aosp_15_r20/external/skia/tests/sksl/intrinsics/Equal.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 %_UniformBuffer "_UniformBuffer"
8               OpMemberName %_UniformBuffer 0 "a"
9               OpMemberName %_UniformBuffer 1 "b"
10               OpMemberName %_UniformBuffer 2 "c"
11               OpMemberName %_UniformBuffer 3 "d"
12               OpMemberName %_UniformBuffer 4 "e"
13               OpMemberName %_UniformBuffer 5 "f"
14               OpName %main "main"
15               OpName %expectTTFF "expectTTFF"
16               OpName %expectFFTT "expectFFTT"
17               OpName %expectTTTT "expectTTTT"
18               OpDecorate %sk_FragColor RelaxedPrecision
19               OpDecorate %sk_FragColor Location 0
20               OpDecorate %sk_FragColor Index 0
21               OpMemberDecorate %_UniformBuffer 0 Offset 0
22               OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
23               OpMemberDecorate %_UniformBuffer 1 Offset 16
24               OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
25               OpMemberDecorate %_UniformBuffer 2 Offset 32
26               OpMemberDecorate %_UniformBuffer 3 Offset 40
27               OpMemberDecorate %_UniformBuffer 4 Offset 48
28               OpMemberDecorate %_UniformBuffer 5 Offset 64
29               OpDecorate %_UniformBuffer Block
30               OpDecorate %7 Binding 0
31               OpDecorate %7 DescriptorSet 0
32               OpDecorate %32 RelaxedPrecision
33               OpDecorate %35 RelaxedPrecision
34               OpDecorate %37 RelaxedPrecision
35               OpDecorate %52 RelaxedPrecision
36               OpDecorate %64 RelaxedPrecision
37               OpDecorate %67 RelaxedPrecision
38               OpDecorate %71 RelaxedPrecision
39               OpDecorate %76 RelaxedPrecision
40               OpDecorate %78 RelaxedPrecision
41      %float = OpTypeFloat 32
42    %v4float = OpTypeVector %float 4
43%_ptr_Output_v4float = OpTypePointer Output %v4float
44%sk_FragColor = OpVariable %_ptr_Output_v4float Output
45       %uint = OpTypeInt 32 0
46     %v2uint = OpTypeVector %uint 2
47        %int = OpTypeInt 32 1
48      %v3int = OpTypeVector %int 3
49%_UniformBuffer = OpTypeStruct %v4float %v4float %v2uint %v2uint %v3int %v3int
50%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
51          %7 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
52       %void = OpTypeVoid
53         %15 = OpTypeFunction %void
54       %bool = OpTypeBool
55     %v4bool = OpTypeVector %bool 4
56%_ptr_Function_v4bool = OpTypePointer Function %v4bool
57       %true = OpConstantTrue %bool
58      %false = OpConstantFalse %bool
59         %23 = OpConstantComposite %v4bool %true %true %false %false
60         %25 = OpConstantComposite %v4bool %false %false %true %true
61         %27 = OpConstantComposite %v4bool %true %true %true %true
62%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
63      %int_0 = OpConstant %int 0
64      %int_1 = OpConstant %int 1
65    %float_1 = OpConstant %float 1
66    %float_0 = OpConstant %float 0
67%_ptr_Output_float = OpTypePointer Output %float
68%_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint
69      %int_2 = OpConstant %int 2
70      %int_3 = OpConstant %int 3
71     %v2bool = OpTypeVector %bool 2
72%_ptr_Uniform_v3int = OpTypePointer Uniform %v3int
73      %int_4 = OpConstant %int 4
74      %int_5 = OpConstant %int 5
75     %v3bool = OpTypeVector %bool 3
76       %main = OpFunction %void None %15
77         %16 = OpLabel
78 %expectTTFF = OpVariable %_ptr_Function_v4bool Function
79 %expectFFTT = OpVariable %_ptr_Function_v4bool Function
80 %expectTTTT = OpVariable %_ptr_Function_v4bool Function
81               OpStore %expectTTFF %23
82               OpStore %expectFFTT %25
83               OpStore %expectTTTT %27
84         %29 = OpAccessChain %_ptr_Uniform_v4float %7 %int_0
85         %32 = OpLoad %v4float %29
86         %33 = OpAccessChain %_ptr_Uniform_v4float %7 %int_1
87         %35 = OpLoad %v4float %33
88         %28 = OpFOrdEqual %v4bool %32 %35
89         %36 = OpCompositeExtract %bool %28 0
90         %37 = OpSelect %float %36 %float_1 %float_0
91         %40 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_0
92               OpStore %40 %37
93         %43 = OpAccessChain %_ptr_Uniform_v2uint %7 %int_2
94         %46 = OpLoad %v2uint %43
95         %47 = OpAccessChain %_ptr_Uniform_v2uint %7 %int_3
96         %49 = OpLoad %v2uint %47
97         %42 = OpIEqual %v2bool %46 %49
98         %51 = OpCompositeExtract %bool %42 1
99         %52 = OpSelect %float %51 %float_1 %float_0
100         %53 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_1
101               OpStore %53 %52
102         %55 = OpAccessChain %_ptr_Uniform_v3int %7 %int_4
103         %58 = OpLoad %v3int %55
104         %59 = OpAccessChain %_ptr_Uniform_v3int %7 %int_5
105         %61 = OpLoad %v3int %59
106         %54 = OpIEqual %v3bool %58 %61
107         %63 = OpCompositeExtract %bool %54 2
108         %64 = OpSelect %float %63 %float_1 %float_0
109         %65 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_2
110               OpStore %65 %64
111         %67 = OpLoad %v4bool %expectTTFF
112         %66 = OpAny %bool %67
113               OpSelectionMerge %69 None
114               OpBranchConditional %66 %69 %68
115         %68 = OpLabel
116         %71 = OpLoad %v4bool %expectFFTT
117         %70 = OpAny %bool %71
118               OpBranch %69
119         %69 = OpLabel
120         %72 = OpPhi %bool %true %16 %70 %68
121               OpSelectionMerge %74 None
122               OpBranchConditional %72 %74 %73
123         %73 = OpLabel
124         %76 = OpLoad %v4bool %expectTTTT
125         %75 = OpAny %bool %76
126               OpBranch %74
127         %74 = OpLabel
128         %77 = OpPhi %bool %true %69 %75 %73
129         %78 = OpSelect %float %77 %float_1 %float_0
130         %79 = OpAccessChain %_ptr_Output_float %sk_FragColor %int_3
131               OpStore %79 %78
132               OpReturn
133               OpFunctionEnd
134