1 ; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=-avx,+sse | FileCheck %s
3 define <4 x float> @test_x86_sse_add_ss(<4 x float> %a0, <4 x float> %a1) {
5 %res = call <4 x float> @llvm.x86.sse.add.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
8 declare <4 x float> @llvm.x86.sse.add.ss(<4 x float>, <4 x float>) nounwind readnone
11 define <4 x float> @test_x86_sse_cmp_ps(<4 x float> %a0, <4 x float> %a1) {
13 %res = call <4 x float> @llvm.x86.sse.cmp.ps(<4 x float> %a0, <4 x float> %a1, i8 7) ; <<4 x float>> [#uses=1]
16 declare <4 x float> @llvm.x86.sse.cmp.ps(<4 x float>, <4 x float>, i8) nounwind readnone
19 define <4 x float> @test_x86_sse_cmp_ss(<4 x float> %a0, <4 x float> %a1) {
21 %res = call <4 x float> @llvm.x86.sse.cmp.ss(<4 x float> %a0, <4 x float> %a1, i8 7) ; <<4 x float>> [#uses=1]
24 declare <4 x float> @llvm.x86.sse.cmp.ss(<4 x float>, <4 x float>, i8) nounwind readnone
27 define i32 @test_x86_sse_comieq_ss(<4 x float> %a0, <4 x float> %a1) {
31 %res = call i32 @llvm.x86.sse.comieq.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
34 declare i32 @llvm.x86.sse.comieq.ss(<4 x float>, <4 x float>) nounwind readnone
37 define i32 @test_x86_sse_comige_ss(<4 x float> %a0, <4 x float> %a1) {
41 %res = call i32 @llvm.x86.sse.comige.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
44 declare i32 @llvm.x86.sse.comige.ss(<4 x float>, <4 x float>) nounwind readnone
47 define i32 @test_x86_sse_comigt_ss(<4 x float> %a0, <4 x float> %a1) {
51 %res = call i32 @llvm.x86.sse.comigt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
54 declare i32 @llvm.x86.sse.comigt.ss(<4 x float>, <4 x float>) nounwind readnone
57 define i32 @test_x86_sse_comile_ss(<4 x float> %a0, <4 x float> %a1) {
61 %res = call i32 @llvm.x86.sse.comile.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
64 declare i32 @llvm.x86.sse.comile.ss(<4 x float>, <4 x float>) nounwind readnone
67 define i32 @test_x86_sse_comilt_ss(<4 x float> %a0, <4 x float> %a1) {
70 %res = call i32 @llvm.x86.sse.comilt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
73 declare i32 @llvm.x86.sse.comilt.ss(<4 x float>, <4 x float>) nounwind readnone
76 define i32 @test_x86_sse_comineq_ss(<4 x float> %a0, <4 x float> %a1) {
80 %res = call i32 @llvm.x86.sse.comineq.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
83 declare i32 @llvm.x86.sse.comineq.ss(<4 x float>, <4 x float>) nounwind readnone
86 define <4 x float> @test_x86_sse_cvtsi2ss(<4 x float> %a0) {
89 %res = call <4 x float> @llvm.x86.sse.cvtsi2ss(<4 x float> %a0, i32 7) ; <<4 x float>> [#uses=1]
92 declare <4 x float> @llvm.x86.sse.cvtsi2ss(<4 x float>, i32) nounwind readnone
95 define i32 @test_x86_sse_cvtss2si(<4 x float> %a0) {
97 %res = call i32 @llvm.x86.sse.cvtss2si(<4 x float> %a0) ; <i32> [#uses=1]
100 declare i32 @llvm.x86.sse.cvtss2si(<4 x float>) nounwind readnone
103 define i32 @test_x86_sse_cvttss2si(<4 x float> %a0) {
105 %res = call i32 @llvm.x86.sse.cvttss2si(<4 x float> %a0) ; <i32> [#uses=1]
108 declare i32 @llvm.x86.sse.cvttss2si(<4 x float>) nounwind readnone
111 define <4 x float> @test_x86_sse_div_ss(<4 x float> %a0, <4 x float> %a1) {
113 %res = call <4 x float> @llvm.x86.sse.div.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
116 declare <4 x float> @llvm.x86.sse.div.ss(<4 x float>, <4 x float>) nounwind readnone
119 define void @test_x86_sse_ldmxcsr(i8* %a0) {
122 call void @llvm.x86.sse.ldmxcsr(i8* %a0)
125 declare void @llvm.x86.sse.ldmxcsr(i8*) nounwind
129 define <4 x float> @test_x86_sse_max_ps(<4 x float> %a0, <4 x float> %a1) {
131 %res = call <4 x float> @llvm.x86.sse.max.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
134 declare <4 x float> @llvm.x86.sse.max.ps(<4 x float>, <4 x float>) nounwind readnone
137 define <4 x float> @test_x86_sse_max_ss(<4 x float> %a0, <4 x float> %a1) {
139 %res = call <4 x float> @llvm.x86.sse.max.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
142 declare <4 x float> @llvm.x86.sse.max.ss(<4 x float>, <4 x float>) nounwind readnone
145 define <4 x float> @test_x86_sse_min_ps(<4 x float> %a0, <4 x float> %a1) {
147 %res = call <4 x float> @llvm.x86.sse.min.ps(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
150 declare <4 x float> @llvm.x86.sse.min.ps(<4 x float>, <4 x float>) nounwind readnone
153 define <4 x float> @test_x86_sse_min_ss(<4 x float> %a0, <4 x float> %a1) {
155 %res = call <4 x float> @llvm.x86.sse.min.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
158 declare <4 x float> @llvm.x86.sse.min.ss(<4 x float>, <4 x float>) nounwind readnone
161 define i32 @test_x86_sse_movmsk_ps(<4 x float> %a0) {
163 %res = call i32 @llvm.x86.sse.movmsk.ps(<4 x float> %a0) ; <i32> [#uses=1]
166 declare i32 @llvm.x86.sse.movmsk.ps(<4 x float>) nounwind readnone
170 define <4 x float> @test_x86_sse_mul_ss(<4 x float> %a0, <4 x float> %a1) {
172 %res = call <4 x float> @llvm.x86.sse.mul.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
175 declare <4 x float> @llvm.x86.sse.mul.ss(<4 x float>, <4 x float>) nounwind readnone
178 define <4 x float> @test_x86_sse_rcp_ps(<4 x float> %a0) {
180 %res = call <4 x float> @llvm.x86.sse.rcp.ps(<4 x float> %a0) ; <<4 x float>> [#uses=1]
183 declare <4 x float> @llvm.x86.sse.rcp.ps(<4 x float>) nounwind readnone
186 define <4 x float> @test_x86_sse_rcp_ss(<4 x float> %a0) {
188 %res = call <4 x float> @llvm.x86.sse.rcp.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
191 declare <4 x float> @llvm.x86.sse.rcp.ss(<4 x float>) nounwind readnone
194 define <4 x float> @test_x86_sse_rsqrt_ps(<4 x float> %a0) {
196 %res = call <4 x float> @llvm.x86.sse.rsqrt.ps(<4 x float> %a0) ; <<4 x float>> [#uses=1]
199 declare <4 x float> @llvm.x86.sse.rsqrt.ps(<4 x float>) nounwind readnone
202 define <4 x float> @test_x86_sse_rsqrt_ss(<4 x float> %a0) {
204 %res = call <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
207 declare <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float>) nounwind readnone
210 define <4 x float> @test_x86_sse_sqrt_ps(<4 x float> %a0) {
212 %res = call <4 x float> @llvm.x86.sse.sqrt.ps(<4 x float> %a0) ; <<4 x float>> [#uses=1]
215 declare <4 x float> @llvm.x86.sse.sqrt.ps(<4 x float>) nounwind readnone
218 define <4 x float> @test_x86_sse_sqrt_ss(<4 x float> %a0) {
220 %res = call <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float> %a0) ; <<4 x float>> [#uses=1]
223 declare <4 x float> @llvm.x86.sse.sqrt.ss(<4 x float>) nounwind readnone
226 define void @test_x86_sse_stmxcsr(i8* %a0) {
229 call void @llvm.x86.sse.stmxcsr(i8* %a0)
232 declare void @llvm.x86.sse.stmxcsr(i8*) nounwind
235 define void @test_x86_sse_storeu_ps(i8* %a0, <4 x float> %a1) {
238 call void @llvm.x86.sse.storeu.ps(i8* %a0, <4 x float> %a1)
241 declare void @llvm.x86.sse.storeu.ps(i8*, <4 x float>) nounwind
244 define <4 x float> @test_x86_sse_sub_ss(<4 x float> %a0, <4 x float> %a1) {
246 %res = call <4 x float> @llvm.x86.sse.sub.ss(<4 x float> %a0, <4 x float> %a1) ; <<4 x float>> [#uses=1]
249 declare <4 x float> @llvm.x86.sse.sub.ss(<4 x float>, <4 x float>) nounwind readnone
252 define i32 @test_x86_sse_ucomieq_ss(<4 x float> %a0, <4 x float> %a1) {
256 %res = call i32 @llvm.x86.sse.ucomieq.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
259 declare i32 @llvm.x86.sse.ucomieq.ss(<4 x float>, <4 x float>) nounwind readnone
262 define i32 @test_x86_sse_ucomige_ss(<4 x float> %a0, <4 x float> %a1) {
266 %res = call i32 @llvm.x86.sse.ucomige.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
269 declare i32 @llvm.x86.sse.ucomige.ss(<4 x float>, <4 x float>) nounwind readnone
272 define i32 @test_x86_sse_ucomigt_ss(<4 x float> %a0, <4 x float> %a1) {
276 %res = call i32 @llvm.x86.sse.ucomigt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
279 declare i32 @llvm.x86.sse.ucomigt.ss(<4 x float>, <4 x float>) nounwind readnone
282 define i32 @test_x86_sse_ucomile_ss(<4 x float> %a0, <4 x float> %a1) {
286 %res = call i32 @llvm.x86.sse.ucomile.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
289 declare i32 @llvm.x86.sse.ucomile.ss(<4 x float>, <4 x float>) nounwind readnone
292 define i32 @test_x86_sse_ucomilt_ss(<4 x float> %a0, <4 x float> %a1) {
295 %res = call i32 @llvm.x86.sse.ucomilt.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
298 declare i32 @llvm.x86.sse.ucomilt.ss(<4 x float>, <4 x float>) nounwind readnone
301 define i32 @test_x86_sse_ucomineq_ss(<4 x float> %a0, <4 x float> %a1) {
305 %res = call i32 @llvm.x86.sse.ucomineq.ss(<4 x float> %a0, <4 x float> %a1) ; <i32> [#uses=1]
308 declare i32 @llvm.x86.sse.ucomineq.ss(<4 x float>, <4 x float>) nounwind readnone