xref: /aosp_15_r20/external/llvm/test/Transforms/InstCombine/x86-sse.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | FileCheck %s
3*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
4*9880d681SAndroid Build Coastguard Worker
5*9880d681SAndroid Build Coastguard Workerdefine float @test_rcp_ss_0(float %a) {
6*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_rcp_ss_0(
7*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = tail call <4 x float> @llvm.x86.sse.rcp.ss(<4 x float> [[TMP1]])
9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = extractelement <4 x float> [[TMP2]], i32 0
10*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[TMP3]]
11*9880d681SAndroid Build Coastguard Worker;
12*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
13*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
14*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
15*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
16*9880d681SAndroid Build Coastguard Worker  %5 = tail call <4 x float> @llvm.x86.sse.rcp.ss(<4 x float> %4)
17*9880d681SAndroid Build Coastguard Worker  %6 = extractelement <4 x float> %5, i32 0
18*9880d681SAndroid Build Coastguard Worker  ret float %6
19*9880d681SAndroid Build Coastguard Worker}
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Workerdefine float @test_rcp_ss_1(float %a) {
22*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_rcp_ss_1(
23*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 1.000000e+00
24*9880d681SAndroid Build Coastguard Worker;
25*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
26*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
27*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
28*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
29*9880d681SAndroid Build Coastguard Worker  %5 = tail call <4 x float> @llvm.x86.sse.rcp.ss(<4 x float> %4)
30*9880d681SAndroid Build Coastguard Worker  %6 = extractelement <4 x float> %5, i32 1
31*9880d681SAndroid Build Coastguard Worker  ret float %6
32*9880d681SAndroid Build Coastguard Worker}
33*9880d681SAndroid Build Coastguard Worker
34*9880d681SAndroid Build Coastguard Workerdefine float @test_sqrt_ss_0(float %a) {
35*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_sqrt_ss_0(
36*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
37*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = tail call <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float> [[TMP1]])
38*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = extractelement <4 x float> [[TMP2]], i32 0
39*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[TMP3]]
40*9880d681SAndroid Build Coastguard Worker;
41*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
42*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
43*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
44*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
45*9880d681SAndroid Build Coastguard Worker  %5 = tail call <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float> %4)
46*9880d681SAndroid Build Coastguard Worker  %6 = extractelement <4 x float> %5, i32 0
47*9880d681SAndroid Build Coastguard Worker  ret float %6
48*9880d681SAndroid Build Coastguard Worker}
49*9880d681SAndroid Build Coastguard Worker
50*9880d681SAndroid Build Coastguard Workerdefine float @test_sqrt_ss_2(float %a) {
51*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_sqrt_ss_2(
52*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 2.000000e+00
53*9880d681SAndroid Build Coastguard Worker;
54*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
55*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
56*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
57*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
58*9880d681SAndroid Build Coastguard Worker  %5 = tail call <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float> %4)
59*9880d681SAndroid Build Coastguard Worker  %6 = extractelement <4 x float> %5, i32 2
60*9880d681SAndroid Build Coastguard Worker  ret float %6
61*9880d681SAndroid Build Coastguard Worker}
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Workerdefine float @test_rsqrt_ss_0(float %a) {
64*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_rsqrt_ss_0(
65*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
66*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = tail call <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float> [[TMP1]])
67*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = extractelement <4 x float> [[TMP2]], i32 0
68*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[TMP3]]
69*9880d681SAndroid Build Coastguard Worker;
70*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
71*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
72*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
73*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
74*9880d681SAndroid Build Coastguard Worker  %5 = tail call <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float> %4)
75*9880d681SAndroid Build Coastguard Worker  %6 = extractelement <4 x float> %5, i32 0
76*9880d681SAndroid Build Coastguard Worker  ret float %6
77*9880d681SAndroid Build Coastguard Worker}
78*9880d681SAndroid Build Coastguard Worker
79*9880d681SAndroid Build Coastguard Workerdefine float @test_rsqrt_ss_3(float %a) {
80*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_rsqrt_ss_3(
81*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 3.000000e+00
82*9880d681SAndroid Build Coastguard Worker;
83*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
84*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
85*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
86*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
87*9880d681SAndroid Build Coastguard Worker  %5 = tail call <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float> %4)
88*9880d681SAndroid Build Coastguard Worker  %6 = extractelement <4 x float> %5, i32 3
89*9880d681SAndroid Build Coastguard Worker  ret float %6
90*9880d681SAndroid Build Coastguard Worker}
91*9880d681SAndroid Build Coastguard Worker
92*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_add_ss(<4 x float> %a, <4 x float> %b) {
93*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_add_ss(
94*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = tail call <4 x float> @llvm.x86.sse.add.ss(<4 x float> %a, <4 x float> %b)
95*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret <4 x float> [[TMP1]]
96*9880d681SAndroid Build Coastguard Worker;
97*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> %b, float 1.000000e+00, i32 1
98*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 2.000000e+00, i32 2
99*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 3.000000e+00, i32 3
100*9880d681SAndroid Build Coastguard Worker  %4 = tail call <4 x float> @llvm.x86.sse.add.ss(<4 x float> %a, <4 x float> %3)
101*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %4
102*9880d681SAndroid Build Coastguard Worker}
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Workerdefine float @test_add_ss_0(float %a, float %b) {
105*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_add_ss_0(
106*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = fadd float %a, %b
107*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[TMP1]]
108*9880d681SAndroid Build Coastguard Worker;
109*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
110*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
111*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
112*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
113*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
114*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
115*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
116*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
117*9880d681SAndroid Build Coastguard Worker  %9 = tail call <4 x float> @llvm.x86.sse.add.ss(<4 x float> %4, <4 x float> %8)
118*9880d681SAndroid Build Coastguard Worker  %r = extractelement <4 x float> %9, i32 0
119*9880d681SAndroid Build Coastguard Worker  ret float %r
120*9880d681SAndroid Build Coastguard Worker}
121*9880d681SAndroid Build Coastguard Worker
122*9880d681SAndroid Build Coastguard Workerdefine float @test_add_ss_1(float %a, float %b) {
123*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_add_ss_1(
124*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 1.000000e+00
125*9880d681SAndroid Build Coastguard Worker;
126*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
127*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
128*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
129*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
130*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
131*9880d681SAndroid Build Coastguard Worker  %6 = tail call <4 x float> @llvm.x86.sse.add.ss(<4 x float> %4, <4 x float> %5)
132*9880d681SAndroid Build Coastguard Worker  %7 = extractelement <4 x float> %6, i32 1
133*9880d681SAndroid Build Coastguard Worker  ret float %7
134*9880d681SAndroid Build Coastguard Worker}
135*9880d681SAndroid Build Coastguard Worker
136*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_sub_ss(<4 x float> %a, <4 x float> %b) {
137*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_sub_ss(
138*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = tail call <4 x float> @llvm.x86.sse.sub.ss(<4 x float> %a, <4 x float> %b)
139*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret <4 x float> [[TMP1]]
140*9880d681SAndroid Build Coastguard Worker;
141*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> %b, float 1.000000e+00, i32 1
142*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 2.000000e+00, i32 2
143*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 3.000000e+00, i32 3
144*9880d681SAndroid Build Coastguard Worker  %4 = tail call <4 x float> @llvm.x86.sse.sub.ss(<4 x float> %a, <4 x float> %3)
145*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %4
146*9880d681SAndroid Build Coastguard Worker}
147*9880d681SAndroid Build Coastguard Worker
148*9880d681SAndroid Build Coastguard Workerdefine float @test_sub_ss_0(float %a, float %b) {
149*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_sub_ss_0(
150*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = fsub float %a, %b
151*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[TMP1]]
152*9880d681SAndroid Build Coastguard Worker;
153*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
154*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
155*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
156*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
157*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
158*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
159*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
160*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
161*9880d681SAndroid Build Coastguard Worker  %9 = tail call <4 x float> @llvm.x86.sse.sub.ss(<4 x float> %4, <4 x float> %8)
162*9880d681SAndroid Build Coastguard Worker  %r = extractelement <4 x float> %9, i32 0
163*9880d681SAndroid Build Coastguard Worker  ret float %r
164*9880d681SAndroid Build Coastguard Worker}
165*9880d681SAndroid Build Coastguard Worker
166*9880d681SAndroid Build Coastguard Workerdefine float @test_sub_ss_2(float %a, float %b) {
167*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_sub_ss_2(
168*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 2.000000e+00
169*9880d681SAndroid Build Coastguard Worker;
170*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
171*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
172*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
173*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
174*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
175*9880d681SAndroid Build Coastguard Worker  %6 = tail call <4 x float> @llvm.x86.sse.sub.ss(<4 x float> %4, <4 x float> %5)
176*9880d681SAndroid Build Coastguard Worker  %7 = extractelement <4 x float> %6, i32 2
177*9880d681SAndroid Build Coastguard Worker  ret float %7
178*9880d681SAndroid Build Coastguard Worker}
179*9880d681SAndroid Build Coastguard Worker
180*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_mul_ss(<4 x float> %a, <4 x float> %b) {
181*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_mul_ss(
182*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = tail call <4 x float> @llvm.x86.sse.mul.ss(<4 x float> %a, <4 x float> %b)
183*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret <4 x float> [[TMP1]]
184*9880d681SAndroid Build Coastguard Worker;
185*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> %b, float 1.000000e+00, i32 1
186*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 2.000000e+00, i32 2
187*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 3.000000e+00, i32 3
188*9880d681SAndroid Build Coastguard Worker  %4 = tail call <4 x float> @llvm.x86.sse.mul.ss(<4 x float> %a, <4 x float> %3)
189*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %4
190*9880d681SAndroid Build Coastguard Worker}
191*9880d681SAndroid Build Coastguard Worker
192*9880d681SAndroid Build Coastguard Workerdefine float @test_mul_ss_0(float %a, float %b) {
193*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_mul_ss_0(
194*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = fmul float %a, %b
195*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[TMP1]]
196*9880d681SAndroid Build Coastguard Worker;
197*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
198*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
199*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
200*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
201*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
202*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
203*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
204*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
205*9880d681SAndroid Build Coastguard Worker  %9 = tail call <4 x float> @llvm.x86.sse.mul.ss(<4 x float> %4, <4 x float> %8)
206*9880d681SAndroid Build Coastguard Worker  %r = extractelement <4 x float> %9, i32 0
207*9880d681SAndroid Build Coastguard Worker  ret float %r
208*9880d681SAndroid Build Coastguard Worker}
209*9880d681SAndroid Build Coastguard Worker
210*9880d681SAndroid Build Coastguard Workerdefine float @test_mul_ss_3(float %a, float %b) {
211*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_mul_ss_3(
212*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 3.000000e+00
213*9880d681SAndroid Build Coastguard Worker;
214*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
215*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
216*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
217*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
218*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
219*9880d681SAndroid Build Coastguard Worker  %6 = tail call <4 x float> @llvm.x86.sse.mul.ss(<4 x float> %4, <4 x float> %5)
220*9880d681SAndroid Build Coastguard Worker  %7 = extractelement <4 x float> %6, i32 3
221*9880d681SAndroid Build Coastguard Worker  ret float %7
222*9880d681SAndroid Build Coastguard Worker}
223*9880d681SAndroid Build Coastguard Worker
224*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_div_ss(<4 x float> %a, <4 x float> %b) {
225*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_div_ss(
226*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = tail call <4 x float> @llvm.x86.sse.div.ss(<4 x float> %a, <4 x float> %b)
227*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret <4 x float> [[TMP1]]
228*9880d681SAndroid Build Coastguard Worker;
229*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> %b, float 1.000000e+00, i32 1
230*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 2.000000e+00, i32 2
231*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 3.000000e+00, i32 3
232*9880d681SAndroid Build Coastguard Worker  %4 = tail call <4 x float> @llvm.x86.sse.div.ss(<4 x float> %a, <4 x float> %3)
233*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %4
234*9880d681SAndroid Build Coastguard Worker}
235*9880d681SAndroid Build Coastguard Worker
236*9880d681SAndroid Build Coastguard Workerdefine float @test_div_ss_0(float %a, float %b) {
237*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_div_ss_0(
238*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = fdiv float %a, %b
239*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[TMP1]]
240*9880d681SAndroid Build Coastguard Worker;
241*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
242*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
243*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
244*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
245*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
246*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
247*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
248*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
249*9880d681SAndroid Build Coastguard Worker  %9 = tail call <4 x float> @llvm.x86.sse.div.ss(<4 x float> %4, <4 x float> %8)
250*9880d681SAndroid Build Coastguard Worker  %r = extractelement <4 x float> %9, i32 0
251*9880d681SAndroid Build Coastguard Worker  ret float %r
252*9880d681SAndroid Build Coastguard Worker}
253*9880d681SAndroid Build Coastguard Worker
254*9880d681SAndroid Build Coastguard Workerdefine float @test_div_ss_1(float %a, float %b) {
255*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_div_ss_1(
256*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 1.000000e+00
257*9880d681SAndroid Build Coastguard Worker;
258*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
259*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
260*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
261*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
262*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
263*9880d681SAndroid Build Coastguard Worker  %6 = tail call <4 x float> @llvm.x86.sse.div.ss(<4 x float> %4, <4 x float> %5)
264*9880d681SAndroid Build Coastguard Worker  %7 = extractelement <4 x float> %6, i32 1
265*9880d681SAndroid Build Coastguard Worker  ret float %7
266*9880d681SAndroid Build Coastguard Worker}
267*9880d681SAndroid Build Coastguard Worker
268*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_min_ss(<4 x float> %a, <4 x float> %b) {
269*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_min_ss(
270*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = tail call <4 x float> @llvm.x86.sse.min.ss(<4 x float> %a, <4 x float> %b)
271*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret <4 x float> [[TMP1]]
272*9880d681SAndroid Build Coastguard Worker;
273*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> %b, float 1.000000e+00, i32 1
274*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 2.000000e+00, i32 2
275*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 3.000000e+00, i32 3
276*9880d681SAndroid Build Coastguard Worker  %4 = tail call <4 x float> @llvm.x86.sse.min.ss(<4 x float> %a, <4 x float> %3)
277*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %4
278*9880d681SAndroid Build Coastguard Worker}
279*9880d681SAndroid Build Coastguard Worker
280*9880d681SAndroid Build Coastguard Workerdefine float @test_min_ss_0(float %a, float %b) {
281*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_min_ss_0(
282*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
283*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
284*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call <4 x float> @llvm.x86.sse.min.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
285*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP4:%.*]] = extractelement <4 x float> [[TMP3]], i32 0
286*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[TMP4]]
287*9880d681SAndroid Build Coastguard Worker;
288*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
289*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
290*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
291*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
292*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
293*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
294*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
295*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
296*9880d681SAndroid Build Coastguard Worker  %9 = tail call <4 x float> @llvm.x86.sse.min.ss(<4 x float> %4, <4 x float> %8)
297*9880d681SAndroid Build Coastguard Worker  %10 = extractelement <4 x float> %9, i32 0
298*9880d681SAndroid Build Coastguard Worker  ret float %10
299*9880d681SAndroid Build Coastguard Worker}
300*9880d681SAndroid Build Coastguard Worker
301*9880d681SAndroid Build Coastguard Workerdefine float @test_min_ss_2(float %a, float %b) {
302*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_min_ss_2(
303*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 2.000000e+00
304*9880d681SAndroid Build Coastguard Worker;
305*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
306*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
307*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
308*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
309*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
310*9880d681SAndroid Build Coastguard Worker  %6 = tail call <4 x float> @llvm.x86.sse.min.ss(<4 x float> %4, <4 x float> %5)
311*9880d681SAndroid Build Coastguard Worker  %7 = extractelement <4 x float> %6, i32 2
312*9880d681SAndroid Build Coastguard Worker  ret float %7
313*9880d681SAndroid Build Coastguard Worker}
314*9880d681SAndroid Build Coastguard Worker
315*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_max_ss(<4 x float> %a, <4 x float> %b) {
316*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_max_ss(
317*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = tail call <4 x float> @llvm.x86.sse.max.ss(<4 x float> %a, <4 x float> %b)
318*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret <4 x float> [[TMP1]]
319*9880d681SAndroid Build Coastguard Worker;
320*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> %b, float 1.000000e+00, i32 1
321*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 2.000000e+00, i32 2
322*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 3.000000e+00, i32 3
323*9880d681SAndroid Build Coastguard Worker  %4 = tail call <4 x float> @llvm.x86.sse.max.ss(<4 x float> %a, <4 x float> %3)
324*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %4
325*9880d681SAndroid Build Coastguard Worker}
326*9880d681SAndroid Build Coastguard Worker
327*9880d681SAndroid Build Coastguard Workerdefine float @test_max_ss_0(float %a, float %b) {
328*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_max_ss_0(
329*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
330*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
331*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call <4 x float> @llvm.x86.sse.max.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
332*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP4:%.*]] = extractelement <4 x float> [[TMP3]], i32 0
333*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[TMP4]]
334*9880d681SAndroid Build Coastguard Worker;
335*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
336*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
337*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
338*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
339*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
340*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
341*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
342*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
343*9880d681SAndroid Build Coastguard Worker  %9 = tail call <4 x float> @llvm.x86.sse.max.ss(<4 x float> %4, <4 x float> %8)
344*9880d681SAndroid Build Coastguard Worker  %10 = extractelement <4 x float> %9, i32 0
345*9880d681SAndroid Build Coastguard Worker  ret float %10
346*9880d681SAndroid Build Coastguard Worker}
347*9880d681SAndroid Build Coastguard Worker
348*9880d681SAndroid Build Coastguard Workerdefine float @test_max_ss_3(float %a, float %b) {
349*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_max_ss_3(
350*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 3.000000e+00
351*9880d681SAndroid Build Coastguard Worker;
352*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
353*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
354*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
355*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
356*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
357*9880d681SAndroid Build Coastguard Worker  %6 = tail call <4 x float> @llvm.x86.sse.max.ss(<4 x float> %4, <4 x float> %5)
358*9880d681SAndroid Build Coastguard Worker  %7 = extractelement <4 x float> %6, i32 3
359*9880d681SAndroid Build Coastguard Worker  ret float %7
360*9880d681SAndroid Build Coastguard Worker}
361*9880d681SAndroid Build Coastguard Worker
362*9880d681SAndroid Build Coastguard Workerdefine <4 x float> @test_cmp_ss(<4 x float> %a, <4 x float> %b) {
363*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_cmp_ss(
364*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = tail call <4 x float> @llvm.x86.sse.cmp.ss(<4 x float> %a, <4 x float> %b, i8 0)
365*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret <4 x float> [[TMP1]]
366*9880d681SAndroid Build Coastguard Worker;
367*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> %b, float 1.000000e+00, i32 1
368*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 2.000000e+00, i32 2
369*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 3.000000e+00, i32 3
370*9880d681SAndroid Build Coastguard Worker  %4 = tail call <4 x float> @llvm.x86.sse.cmp.ss(<4 x float> %a, <4 x float> %3, i8 0)
371*9880d681SAndroid Build Coastguard Worker  ret <4 x float> %4
372*9880d681SAndroid Build Coastguard Worker}
373*9880d681SAndroid Build Coastguard Worker
374*9880d681SAndroid Build Coastguard Workerdefine float @test_cmp_ss_0(float %a, float %b) {
375*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_cmp_ss_0(
376*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
377*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
378*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call <4 x float> @llvm.x86.sse.cmp.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]], i8 0)
379*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[R:%.*]] = extractelement <4 x float> [[TMP3]], i32 0
380*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float [[R]]
381*9880d681SAndroid Build Coastguard Worker;
382*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
383*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
384*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
385*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
386*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
387*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
388*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
389*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
390*9880d681SAndroid Build Coastguard Worker  %9 = tail call <4 x float> @llvm.x86.sse.cmp.ss(<4 x float> %4, <4 x float> %8, i8 0)
391*9880d681SAndroid Build Coastguard Worker  %r = extractelement <4 x float> %9, i32 0
392*9880d681SAndroid Build Coastguard Worker  ret float %r
393*9880d681SAndroid Build Coastguard Worker}
394*9880d681SAndroid Build Coastguard Worker
395*9880d681SAndroid Build Coastguard Workerdefine float @test_cmp_ss_1(float %a, float %b) {
396*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_cmp_ss_1(
397*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret float 1.000000e+00
398*9880d681SAndroid Build Coastguard Worker;
399*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
400*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
401*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
402*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
403*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
404*9880d681SAndroid Build Coastguard Worker  %6 = tail call <4 x float> @llvm.x86.sse.cmp.ss(<4 x float> %4, <4 x float> %5, i8 0)
405*9880d681SAndroid Build Coastguard Worker  %7 = extractelement <4 x float> %6, i32 1
406*9880d681SAndroid Build Coastguard Worker  ret float %7
407*9880d681SAndroid Build Coastguard Worker}
408*9880d681SAndroid Build Coastguard Worker
409*9880d681SAndroid Build Coastguard Workerdefine i32 @test_comieq_ss_0(float %a, float %b) {
410*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_comieq_ss_0(
411*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
412*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
413*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.comieq.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
414*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
415*9880d681SAndroid Build Coastguard Worker;
416*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
417*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
418*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
419*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
420*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
421*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
422*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
423*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
424*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.comieq.ss(<4 x float> %4, <4 x float> %8)
425*9880d681SAndroid Build Coastguard Worker  ret i32 %9
426*9880d681SAndroid Build Coastguard Worker}
427*9880d681SAndroid Build Coastguard Worker
428*9880d681SAndroid Build Coastguard Workerdefine i32 @test_comige_ss_0(float %a, float %b) {
429*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_comige_ss_0(
430*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
431*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
432*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.comige.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
433*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
434*9880d681SAndroid Build Coastguard Worker;
435*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
436*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
437*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
438*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
439*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
440*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
441*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
442*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
443*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.comige.ss(<4 x float> %4, <4 x float> %8)
444*9880d681SAndroid Build Coastguard Worker  ret i32 %9
445*9880d681SAndroid Build Coastguard Worker}
446*9880d681SAndroid Build Coastguard Worker
447*9880d681SAndroid Build Coastguard Workerdefine i32 @test_comigt_ss_0(float %a, float %b) {
448*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_comigt_ss_0(
449*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
450*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
451*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.comigt.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
452*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
453*9880d681SAndroid Build Coastguard Worker;
454*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
455*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
456*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
457*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
458*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
459*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
460*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
461*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
462*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.comigt.ss(<4 x float> %4, <4 x float> %8)
463*9880d681SAndroid Build Coastguard Worker  ret i32 %9
464*9880d681SAndroid Build Coastguard Worker}
465*9880d681SAndroid Build Coastguard Worker
466*9880d681SAndroid Build Coastguard Workerdefine i32 @test_comile_ss_0(float %a, float %b) {
467*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_comile_ss_0(
468*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
469*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
470*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.comile.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
471*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
472*9880d681SAndroid Build Coastguard Worker;
473*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
474*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
475*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
476*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
477*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
478*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
479*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
480*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
481*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.comile.ss(<4 x float> %4, <4 x float> %8)
482*9880d681SAndroid Build Coastguard Worker  ret i32 %9
483*9880d681SAndroid Build Coastguard Worker}
484*9880d681SAndroid Build Coastguard Worker
485*9880d681SAndroid Build Coastguard Workerdefine i32 @test_comilt_ss_0(float %a, float %b) {
486*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_comilt_ss_0(
487*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
488*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
489*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.comilt.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
490*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
491*9880d681SAndroid Build Coastguard Worker;
492*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
493*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
494*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
495*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
496*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
497*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
498*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
499*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
500*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.comilt.ss(<4 x float> %4, <4 x float> %8)
501*9880d681SAndroid Build Coastguard Worker  ret i32 %9
502*9880d681SAndroid Build Coastguard Worker}
503*9880d681SAndroid Build Coastguard Worker
504*9880d681SAndroid Build Coastguard Workerdefine i32 @test_comineq_ss_0(float %a, float %b) {
505*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_comineq_ss_0(
506*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
507*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
508*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.comineq.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
509*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
510*9880d681SAndroid Build Coastguard Worker;
511*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
512*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
513*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
514*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
515*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
516*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
517*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
518*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
519*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.comineq.ss(<4 x float> %4, <4 x float> %8)
520*9880d681SAndroid Build Coastguard Worker  ret i32 %9
521*9880d681SAndroid Build Coastguard Worker}
522*9880d681SAndroid Build Coastguard Worker
523*9880d681SAndroid Build Coastguard Workerdefine i32 @test_ucomieq_ss_0(float %a, float %b) {
524*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_ucomieq_ss_0(
525*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
526*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
527*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.ucomieq.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
528*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
529*9880d681SAndroid Build Coastguard Worker;
530*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
531*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
532*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
533*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
534*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
535*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
536*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
537*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
538*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.ucomieq.ss(<4 x float> %4, <4 x float> %8)
539*9880d681SAndroid Build Coastguard Worker  ret i32 %9
540*9880d681SAndroid Build Coastguard Worker}
541*9880d681SAndroid Build Coastguard Worker
542*9880d681SAndroid Build Coastguard Workerdefine i32 @test_ucomige_ss_0(float %a, float %b) {
543*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_ucomige_ss_0(
544*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
545*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
546*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.ucomige.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
547*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
548*9880d681SAndroid Build Coastguard Worker;
549*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
550*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
551*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
552*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
553*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
554*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
555*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
556*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
557*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.ucomige.ss(<4 x float> %4, <4 x float> %8)
558*9880d681SAndroid Build Coastguard Worker  ret i32 %9
559*9880d681SAndroid Build Coastguard Worker}
560*9880d681SAndroid Build Coastguard Worker
561*9880d681SAndroid Build Coastguard Workerdefine i32 @test_ucomigt_ss_0(float %a, float %b) {
562*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_ucomigt_ss_0(
563*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
564*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
565*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.ucomigt.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
566*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
567*9880d681SAndroid Build Coastguard Worker;
568*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
569*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
570*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
571*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
572*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
573*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
574*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
575*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
576*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.ucomigt.ss(<4 x float> %4, <4 x float> %8)
577*9880d681SAndroid Build Coastguard Worker  ret i32 %9
578*9880d681SAndroid Build Coastguard Worker}
579*9880d681SAndroid Build Coastguard Worker
580*9880d681SAndroid Build Coastguard Workerdefine i32 @test_ucomile_ss_0(float %a, float %b) {
581*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_ucomile_ss_0(
582*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
583*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
584*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.ucomile.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
585*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
586*9880d681SAndroid Build Coastguard Worker;
587*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
588*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
589*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
590*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
591*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
592*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
593*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
594*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
595*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.ucomile.ss(<4 x float> %4, <4 x float> %8)
596*9880d681SAndroid Build Coastguard Worker  ret i32 %9
597*9880d681SAndroid Build Coastguard Worker}
598*9880d681SAndroid Build Coastguard Worker
599*9880d681SAndroid Build Coastguard Workerdefine i32 @test_ucomilt_ss_0(float %a, float %b) {
600*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_ucomilt_ss_0(
601*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
602*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
603*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.ucomilt.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
604*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
605*9880d681SAndroid Build Coastguard Worker;
606*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
607*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
608*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
609*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
610*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
611*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
612*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
613*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
614*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.ucomilt.ss(<4 x float> %4, <4 x float> %8)
615*9880d681SAndroid Build Coastguard Worker  ret i32 %9
616*9880d681SAndroid Build Coastguard Worker}
617*9880d681SAndroid Build Coastguard Worker
618*9880d681SAndroid Build Coastguard Workerdefine i32 @test_ucomineq_ss_0(float %a, float %b) {
619*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test_ucomineq_ss_0(
620*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> undef, float %a, i32 0
621*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> undef, float %b, i32 0
622*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    [[TMP3:%.*]] = tail call i32 @llvm.x86.sse.ucomineq.ss(<4 x float> [[TMP1]], <4 x float> [[TMP2]])
623*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT:    ret i32 [[TMP3]]
624*9880d681SAndroid Build Coastguard Worker;
625*9880d681SAndroid Build Coastguard Worker  %1 = insertelement <4 x float> undef, float %a, i32 0
626*9880d681SAndroid Build Coastguard Worker  %2 = insertelement <4 x float> %1, float 1.000000e+00, i32 1
627*9880d681SAndroid Build Coastguard Worker  %3 = insertelement <4 x float> %2, float 2.000000e+00, i32 2
628*9880d681SAndroid Build Coastguard Worker  %4 = insertelement <4 x float> %3, float 3.000000e+00, i32 3
629*9880d681SAndroid Build Coastguard Worker  %5 = insertelement <4 x float> undef, float %b, i32 0
630*9880d681SAndroid Build Coastguard Worker  %6 = insertelement <4 x float> %5, float 4.000000e+00, i32 1
631*9880d681SAndroid Build Coastguard Worker  %7 = insertelement <4 x float> %6, float 5.000000e+00, i32 2
632*9880d681SAndroid Build Coastguard Worker  %8 = insertelement <4 x float> %7, float 6.000000e+00, i32 3
633*9880d681SAndroid Build Coastguard Worker  %9 = tail call i32 @llvm.x86.sse.ucomineq.ss(<4 x float> %4, <4 x float> %8)
634*9880d681SAndroid Build Coastguard Worker  ret i32 %9
635*9880d681SAndroid Build Coastguard Worker}
636*9880d681SAndroid Build Coastguard Worker
637*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.rcp.ss(<4 x float>)
638*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float>)
639*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float>)
640*9880d681SAndroid Build Coastguard Worker
641*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.add.ss(<4 x float>, <4 x float>)
642*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.sub.ss(<4 x float>, <4 x float>)
643*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.mul.ss(<4 x float>, <4 x float>)
644*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.div.ss(<4 x float>, <4 x float>)
645*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.min.ss(<4 x float>, <4 x float>)
646*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.max.ss(<4 x float>, <4 x float>)
647*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.x86.sse.cmp.ss(<4 x float>, <4 x float>, i8)
648*9880d681SAndroid Build Coastguard Worker
649*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.comieq.ss(<4 x float>, <4 x float>)
650*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.comige.ss(<4 x float>, <4 x float>)
651*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.comigt.ss(<4 x float>, <4 x float>)
652*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.comile.ss(<4 x float>, <4 x float>)
653*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.comilt.ss(<4 x float>, <4 x float>)
654*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.comineq.ss(<4 x float>, <4 x float>)
655*9880d681SAndroid Build Coastguard Worker
656*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.ucomieq.ss(<4 x float>, <4 x float>)
657*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.ucomige.ss(<4 x float>, <4 x float>)
658*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.ucomigt.ss(<4 x float>, <4 x float>)
659*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.ucomile.ss(<4 x float>, <4 x float>)
660*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.ucomilt.ss(<4 x float>, <4 x float>)
661*9880d681SAndroid Build Coastguard Workerdeclare i32 @llvm.x86.sse.ucomineq.ss(<4 x float>, <4 x float>)
662