|
1 | | -// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +sse -emit-llvm -o - -Wall -Werror | FileCheck %s |
2 | | -// RUN: %clang_cc1 -flax-vector-conversions=none -fms-extensions -fms-compatibility -ffreestanding %s -triple=x86_64-windows-msvc -target-feature +sse -emit-llvm -o - -Wall -Werror | FileCheck %s |
| 1 | +// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +sse -emit-llvm -o - -Wall -Werror | FileCheck %s |
| 2 | +// RUN: %clang_cc1 -x c -flax-vector-conversions=none -fms-extensions -fms-compatibility -ffreestanding %s -triple=x86_64-windows-msvc -target-feature +sse -emit-llvm -o - -Wall -Werror | FileCheck %s |
| 3 | +// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +sse -emit-llvm -o - -Wall -Werror | FileCheck %s |
| 4 | +// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -fms-extensions -fms-compatibility -ffreestanding %s -triple=x86_64-windows-msvc -target-feature +sse -emit-llvm -o - -Wall -Werror | FileCheck %s |
3 | 5 |
|
4 | 6 |
|
5 | 7 | #include <immintrin.h> |
@@ -84,7 +86,7 @@ __m128 test_mm_cmp_ps_ord_q(__m128 a, __m128 b) { |
84 | 86 |
|
85 | 87 | __m128 test_mm_cmp_ss(__m128 A, __m128 B) { |
86 | 88 | // CHECK-LABEL: test_mm_cmp_ss |
87 | | - // CHECK: call <4 x float> @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 7) |
| 89 | + // CHECK: call {{.*}}<4 x float> @llvm.x86.sse.cmp.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 7) |
88 | 90 | return _mm_cmp_ss(A, B, _CMP_ORD_Q); |
89 | 91 | } |
90 | 92 |
|
@@ -274,43 +276,43 @@ __m128 test_mm_cmpunord_ss(__m128 __a, __m128 __b) { |
274 | 276 |
|
275 | 277 | int test_mm_comieq_ss(__m128 A, __m128 B) { |
276 | 278 | // CHECK-LABEL: test_mm_comieq_ss |
277 | | - // CHECK: call i32 @llvm.x86.sse.comieq.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 279 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.comieq.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
278 | 280 | return _mm_comieq_ss(A, B); |
279 | 281 | } |
280 | 282 |
|
281 | 283 | int test_mm_comige_ss(__m128 A, __m128 B) { |
282 | 284 | // CHECK-LABEL: test_mm_comige_ss |
283 | | - // CHECK: call i32 @llvm.x86.sse.comige.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 285 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.comige.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
284 | 286 | return _mm_comige_ss(A, B); |
285 | 287 | } |
286 | 288 |
|
287 | 289 | int test_mm_comigt_ss(__m128 A, __m128 B) { |
288 | 290 | // CHECK-LABEL: test_mm_comigt_ss |
289 | | - // CHECK: call i32 @llvm.x86.sse.comigt.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 291 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.comigt.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
290 | 292 | return _mm_comigt_ss(A, B); |
291 | 293 | } |
292 | 294 |
|
293 | 295 | int test_mm_comile_ss(__m128 A, __m128 B) { |
294 | 296 | // CHECK-LABEL: test_mm_comile_ss |
295 | | - // CHECK: call i32 @llvm.x86.sse.comile.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 297 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.comile.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
296 | 298 | return _mm_comile_ss(A, B); |
297 | 299 | } |
298 | 300 |
|
299 | 301 | int test_mm_comilt_ss(__m128 A, __m128 B) { |
300 | 302 | // CHECK-LABEL: test_mm_comilt_ss |
301 | | - // CHECK: call i32 @llvm.x86.sse.comilt.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 303 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.comilt.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
302 | 304 | return _mm_comilt_ss(A, B); |
303 | 305 | } |
304 | 306 |
|
305 | 307 | int test_mm_comineq_ss(__m128 A, __m128 B) { |
306 | 308 | // CHECK-LABEL: test_mm_comineq_ss |
307 | | - // CHECK: call i32 @llvm.x86.sse.comineq.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 309 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.comineq.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
308 | 310 | return _mm_comineq_ss(A, B); |
309 | 311 | } |
310 | 312 |
|
311 | 313 | int test_mm_cvt_ss2si(__m128 A) { |
312 | 314 | // CHECK-LABEL: test_mm_cvt_ss2si |
313 | | - // CHECK: call i32 @llvm.x86.sse.cvtss2si(<4 x float> %{{.*}}) |
| 315 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.cvtss2si(<4 x float> %{{.*}}) |
314 | 316 | return _mm_cvt_ss2si(A); |
315 | 317 | } |
316 | 318 |
|
@@ -338,34 +340,34 @@ float test_mm_cvtss_f32(__m128 A) { |
338 | 340 |
|
339 | 341 | int test_mm_cvtss_si32(__m128 A) { |
340 | 342 | // CHECK-LABEL: test_mm_cvtss_si32 |
341 | | - // CHECK: call i32 @llvm.x86.sse.cvtss2si(<4 x float> %{{.*}}) |
| 343 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.cvtss2si(<4 x float> %{{.*}}) |
342 | 344 | return _mm_cvtss_si32(A); |
343 | 345 | } |
344 | 346 |
|
345 | 347 | #ifdef __x86_64__ |
346 | 348 | long long test_mm_cvtss_si64(__m128 A) { |
347 | 349 | // CHECK-LABEL: test_mm_cvtss_si64 |
348 | | - // CHECK: call i64 @llvm.x86.sse.cvtss2si64(<4 x float> %{{.*}}) |
| 350 | + // CHECK: call {{.*}}i64 @llvm.x86.sse.cvtss2si64(<4 x float> %{{.*}}) |
349 | 351 | return _mm_cvtss_si64(A); |
350 | 352 | } |
351 | 353 | #endif |
352 | 354 |
|
353 | 355 | int test_mm_cvtt_ss2si(__m128 A) { |
354 | 356 | // CHECK-LABEL: test_mm_cvtt_ss2si |
355 | | - // CHECK: call i32 @llvm.x86.sse.cvttss2si(<4 x float> %{{.*}}) |
| 357 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.cvttss2si(<4 x float> %{{.*}}) |
356 | 358 | return _mm_cvtt_ss2si(A); |
357 | 359 | } |
358 | 360 |
|
359 | 361 | int test_mm_cvttss_si32(__m128 A) { |
360 | 362 | // CHECK-LABEL: test_mm_cvttss_si32 |
361 | | - // CHECK: call i32 @llvm.x86.sse.cvttss2si(<4 x float> %{{.*}}) |
| 363 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.cvttss2si(<4 x float> %{{.*}}) |
362 | 364 | return _mm_cvttss_si32(A); |
363 | 365 | } |
364 | 366 |
|
365 | 367 | #ifdef __x86_64__ |
366 | 368 | long long test_mm_cvttss_si64(__m128 A) { |
367 | 369 | // CHECK-LABEL: test_mm_cvttss_si64 |
368 | | - // CHECK: call i64 @llvm.x86.sse.cvttss2si64(<4 x float> %{{.*}}) |
| 370 | + // CHECK: call {{.*}}i64 @llvm.x86.sse.cvttss2si64(<4 x float> %{{.*}}) |
369 | 371 | return _mm_cvttss_si64(A); |
370 | 372 | } |
371 | 373 | #endif |
@@ -530,7 +532,7 @@ __m128 test_mm_movelh_ps(__m128 A, __m128 B) { |
530 | 532 |
|
531 | 533 | int test_mm_movemask_ps(__m128 A) { |
532 | 534 | // CHECK-LABEL: test_mm_movemask_ps |
533 | | - // CHECK: call i32 @llvm.x86.sse.movmsk.ps(<4 x float> %{{.*}}) |
| 535 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.movmsk.ps(<4 x float> %{{.*}}) |
534 | 536 | return _mm_movemask_ps(A); |
535 | 537 | } |
536 | 538 |
|
@@ -563,25 +565,25 @@ void test_mm_prefetch(char const* p) { |
563 | 565 |
|
564 | 566 | __m128 test_mm_rcp_ps(__m128 x) { |
565 | 567 | // CHECK-LABEL: test_mm_rcp_ps |
566 | | - // CHECK: call <4 x float> @llvm.x86.sse.rcp.ps(<4 x float> {{.*}}) |
| 568 | + // CHECK: call {{.*}}<4 x float> @llvm.x86.sse.rcp.ps(<4 x float> {{.*}}) |
567 | 569 | return _mm_rcp_ps(x); |
568 | 570 | } |
569 | 571 |
|
570 | 572 | __m128 test_mm_rcp_ss(__m128 x) { |
571 | 573 | // CHECK-LABEL: test_mm_rcp_ss |
572 | | - // CHECK: call <4 x float> @llvm.x86.sse.rcp.ss(<4 x float> {{.*}}) |
| 574 | + // CHECK: call {{.*}}<4 x float> @llvm.x86.sse.rcp.ss(<4 x float> {{.*}}) |
573 | 575 | return _mm_rcp_ss(x); |
574 | 576 | } |
575 | 577 |
|
576 | 578 | __m128 test_mm_rsqrt_ps(__m128 x) { |
577 | 579 | // CHECK-LABEL: test_mm_rsqrt_ps |
578 | | - // CHECK: call <4 x float> @llvm.x86.sse.rsqrt.ps(<4 x float> {{.*}}) |
| 580 | + // CHECK: call {{.*}}<4 x float> @llvm.x86.sse.rsqrt.ps(<4 x float> {{.*}}) |
579 | 581 | return _mm_rsqrt_ps(x); |
580 | 582 | } |
581 | 583 |
|
582 | 584 | __m128 test_mm_rsqrt_ss(__m128 x) { |
583 | 585 | // CHECK-LABEL: test_mm_rsqrt_ss |
584 | | - // CHECK: call <4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float> {{.*}}) |
| 586 | + // CHECK: call {{.*}}<4 x float> @llvm.x86.sse.rsqrt.ss(<4 x float> {{.*}}) |
585 | 587 | return _mm_rsqrt_ss(x); |
586 | 588 | } |
587 | 589 |
|
@@ -701,7 +703,7 @@ __m128 test_mm_shuffle_ps(__m128 A, __m128 B) { |
701 | 703 |
|
702 | 704 | __m128 test_mm_sqrt_ps(__m128 x) { |
703 | 705 | // CHECK-LABEL: test_mm_sqrt_ps |
704 | | - // CHECK: call <4 x float> @llvm.sqrt.v4f32(<4 x float> {{.*}}) |
| 706 | + // CHECK: call {{.*}}<4 x float> @llvm.sqrt.v4f32(<4 x float> {{.*}}) |
705 | 707 | return _mm_sqrt_ps(x); |
706 | 708 | } |
707 | 709 |
|
@@ -810,37 +812,37 @@ void test_MM_TRANSPOSE4_PS(__m128 *A, __m128 *B, __m128 *C, __m128 *D) { |
810 | 812 |
|
811 | 813 | int test_mm_ucomieq_ss(__m128 A, __m128 B) { |
812 | 814 | // CHECK-LABEL: test_mm_ucomieq_ss |
813 | | - // CHECK: call i32 @llvm.x86.sse.ucomieq.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 815 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.ucomieq.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
814 | 816 | return _mm_ucomieq_ss(A, B); |
815 | 817 | } |
816 | 818 |
|
817 | 819 | int test_mm_ucomige_ss(__m128 A, __m128 B) { |
818 | 820 | // CHECK-LABEL: test_mm_ucomige_ss |
819 | | - // CHECK: call i32 @llvm.x86.sse.ucomige.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 821 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.ucomige.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
820 | 822 | return _mm_ucomige_ss(A, B); |
821 | 823 | } |
822 | 824 |
|
823 | 825 | int test_mm_ucomigt_ss(__m128 A, __m128 B) { |
824 | 826 | // CHECK-LABEL: test_mm_ucomigt_ss |
825 | | - // CHECK: call i32 @llvm.x86.sse.ucomigt.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 827 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.ucomigt.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
826 | 828 | return _mm_ucomigt_ss(A, B); |
827 | 829 | } |
828 | 830 |
|
829 | 831 | int test_mm_ucomile_ss(__m128 A, __m128 B) { |
830 | 832 | // CHECK-LABEL: test_mm_ucomile_ss |
831 | | - // CHECK: call i32 @llvm.x86.sse.ucomile.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 833 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.ucomile.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
832 | 834 | return _mm_ucomile_ss(A, B); |
833 | 835 | } |
834 | 836 |
|
835 | 837 | int test_mm_ucomilt_ss(__m128 A, __m128 B) { |
836 | 838 | // CHECK-LABEL: test_mm_ucomilt_ss |
837 | | - // CHECK: call i32 @llvm.x86.sse.ucomilt.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 839 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.ucomilt.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
838 | 840 | return _mm_ucomilt_ss(A, B); |
839 | 841 | } |
840 | 842 |
|
841 | 843 | int test_mm_ucomineq_ss(__m128 A, __m128 B) { |
842 | 844 | // CHECK-LABEL: test_mm_ucomineq_ss |
843 | | - // CHECK: call i32 @llvm.x86.sse.ucomineq.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
| 845 | + // CHECK: call {{.*}}i32 @llvm.x86.sse.ucomineq.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}) |
844 | 846 | return _mm_ucomineq_ss(A, B); |
845 | 847 | } |
846 | 848 |
|
|
0 commit comments