|
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