1
- // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx2 -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X64
2
- // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx2 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X64
3
- // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx2 -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X86
4
- // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx2 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X86
1
+ // RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx2 -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X64
2
+ // RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx2 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X64
3
+ // RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx2 -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X86
4
+ // RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx2 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X86
5
+ // RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx2 -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X64
6
+ // RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx2 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X64
7
+ // RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx2 -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X86
8
+ // RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx2 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK,X86
5
9
6
10
7
11
#include <immintrin.h>
@@ -457,28 +461,28 @@ __m256i test_mm256_mask_i32gather_epi32(__m256i a, int const *b, __m256i c, __m2
457
461
458
462
__m128i test_mm_i32gather_epi64 (long long const * b , __m128i c ) {
459
463
// CHECK-LABEL: test_mm_i32gather_epi64
460
- // CHECK: call <2 x i64> @llvm.x86.avx2.gather.d.q(<2 x i64> zeroinitializer, ptr %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}}, i8 2)
464
+ // CHECK: call {{.*}} <2 x i64> @llvm.x86.avx2.gather.d.q(<2 x i64> zeroinitializer, ptr %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}}, i8 2)
461
465
return _mm_i32gather_epi64 (b , c , 2 );
462
466
}
463
467
464
468
__m128i test_mm_mask_i32gather_epi64 (__m128i a , long long const * b , __m128i c , __m128i d ) {
465
469
// CHECK-LABEL: test_mm_mask_i32gather_epi64
466
- // CHECK: call <2 x i64> @llvm.x86.avx2.gather.d.q(<2 x i64> %{{.*}}, ptr %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}}, i8 2)
470
+ // CHECK: call {{.*}} <2 x i64> @llvm.x86.avx2.gather.d.q(<2 x i64> %{{.*}}, ptr %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}}, i8 2)
467
471
return _mm_mask_i32gather_epi64 (a , b , c , d , 2 );
468
472
}
469
473
470
474
__m256i test_mm256_i32gather_epi64 (long long const * b , __m128i c ) {
471
475
// X64-LABEL: test_mm256_i32gather_epi64
472
- // X64: call <4 x i64> @llvm.x86.avx2.gather.d.q.256(<4 x i64> zeroinitializer, ptr %{{.*}}, <4 x i32> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
476
+ // X64: call {{.*}} <4 x i64> @llvm.x86.avx2.gather.d.q.256(<4 x i64> zeroinitializer, ptr %{{.*}}, <4 x i32> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
473
477
//
474
478
// X86-LABEL: test_mm256_i32gather_epi64
475
- // X86: call <4 x i64> @llvm.x86.avx2.gather.d.q.256(<4 x i64> %{{.*}}, ptr %{{.*}}, <4 x i32> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
479
+ // X86: call {{.*}} <4 x i64> @llvm.x86.avx2.gather.d.q.256(<4 x i64> %{{.*}}, ptr %{{.*}}, <4 x i32> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
476
480
return _mm256_i32gather_epi64 (b , c , 2 );
477
481
}
478
482
479
483
__m256i test_mm256_mask_i32gather_epi64 (__m256i a , long long const * b , __m128i c , __m256i d ) {
480
484
// CHECK-LABEL: test_mm256_mask_i32gather_epi64
481
- // CHECK: call <4 x i64> @llvm.x86.avx2.gather.d.q.256(<4 x i64> %{{.*}}, ptr %{{.*}}, <4 x i32> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
485
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.gather.d.q.256(<4 x i64> %{{.*}}, ptr %{{.*}}, <4 x i32> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
482
486
return _mm256_mask_i32gather_epi64 (a , b , c , d , 2 );
483
487
}
484
488
@@ -592,28 +596,28 @@ __m128i test_mm256_mask_i64gather_epi32(__m128i a, int const *b, __m256i c, __m1
592
596
593
597
__m128i test_mm_i64gather_epi64 (long long const * b , __m128i c ) {
594
598
// CHECK-LABEL: test_mm_i64gather_epi64
595
- // CHECK: call <2 x i64> @llvm.x86.avx2.gather.q.q(<2 x i64> zeroinitializer, ptr %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, i8 2)
599
+ // CHECK: call {{.*}} <2 x i64> @llvm.x86.avx2.gather.q.q(<2 x i64> zeroinitializer, ptr %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, i8 2)
596
600
return _mm_i64gather_epi64 (b , c , 2 );
597
601
}
598
602
599
603
__m128i test_mm_mask_i64gather_epi64 (__m128i a , long long const * b , __m128i c , __m128i d ) {
600
604
// CHECK-LABEL: test_mm_mask_i64gather_epi64
601
- // CHECK: call <2 x i64> @llvm.x86.avx2.gather.q.q(<2 x i64> %{{.*}}, ptr %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, i8 2)
605
+ // CHECK: call {{.*}} <2 x i64> @llvm.x86.avx2.gather.q.q(<2 x i64> %{{.*}}, ptr %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, i8 2)
602
606
return _mm_mask_i64gather_epi64 (a , b , c , d , 2 );
603
607
}
604
608
605
609
__m256i test_mm256_i64gather_epi64 (long long const * b , __m256i c ) {
606
610
// X64-LABEL: test_mm256_i64gather_epi64
607
- // X64: call <4 x i64> @llvm.x86.avx2.gather.q.q.256(<4 x i64> zeroinitializer, ptr %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
611
+ // X64: call {{.*}} <4 x i64> @llvm.x86.avx2.gather.q.q.256(<4 x i64> zeroinitializer, ptr %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
608
612
//
609
613
// X86-LABEL: test_mm256_i64gather_epi64
610
- // X86: call <4 x i64> @llvm.x86.avx2.gather.q.q.256(<4 x i64> %{{.*}}, ptr %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
614
+ // X86: call {{.*}} <4 x i64> @llvm.x86.avx2.gather.q.q.256(<4 x i64> %{{.*}}, ptr %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
611
615
return _mm256_i64gather_epi64 (b , c , 2 );
612
616
}
613
617
614
618
__m256i test_mm256_mask_i64gather_epi64 (__m256i a , long long const * b , __m256i c , __m256i d ) {
615
619
// CHECK-LABEL: test_mm256_mask_i64gather_epi64
616
- // CHECK: call <4 x i64> @llvm.x86.avx2.gather.q.q.256(<4 x i64> %{{.*}}, ptr %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
620
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.gather.q.q.256(<4 x i64> %{{.*}}, ptr %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, i8 2)
617
621
return _mm256_mask_i64gather_epi64 (a , b , c , d , 2 );
618
622
}
619
623
@@ -745,13 +749,13 @@ __m256i test_mm256_maskload_epi32(int const *a, __m256i m) {
745
749
746
750
__m128i test_mm_maskload_epi64 (long long const * a , __m128i m ) {
747
751
// CHECK-LABEL: test_mm_maskload_epi64
748
- // CHECK: call <2 x i64> @llvm.x86.avx2.maskload.q(ptr %{{.*}}, <2 x i64> %{{.*}})
752
+ // CHECK: call {{.*}} <2 x i64> @llvm.x86.avx2.maskload.q(ptr %{{.*}}, <2 x i64> %{{.*}})
749
753
return _mm_maskload_epi64 (a , m );
750
754
}
751
755
752
756
__m256i test_mm256_maskload_epi64 (long long const * a , __m256i m ) {
753
757
// CHECK-LABEL: test_mm256_maskload_epi64
754
- // CHECK: call <4 x i64> @llvm.x86.avx2.maskload.q.256(ptr %{{.*}}, <4 x i64> %{{.*}})
758
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.maskload.q.256(ptr %{{.*}}, <4 x i64> %{{.*}})
755
759
return _mm256_maskload_epi64 (a , m );
756
760
}
757
761
@@ -853,7 +857,7 @@ __m256i test_mm256_min_epu32(__m256i a, __m256i b) {
853
857
854
858
int test_mm256_movemask_epi8 (__m256i a ) {
855
859
// CHECK-LABEL: test_mm256_movemask_epi8
856
- // CHECK: call i32 @llvm.x86.avx2.pmovmskb(<32 x i8> %{{.*}})
860
+ // CHECK: call {{.*}} i32 @llvm.x86.avx2.pmovmskb(<32 x i8> %{{.*}})
857
861
return _mm256_movemask_epi8 (a );
858
862
}
859
863
@@ -967,13 +971,13 @@ __m256i test_mm256_permutevar8x32_epi32(__m256i a, __m256i b) {
967
971
968
972
__m256 test_mm256_permutevar8x32_ps (__m256 a , __m256i b ) {
969
973
// CHECK-LABEL: test_mm256_permutevar8x32_ps
970
- // CHECK: call <8 x float> @llvm.x86.avx2.permps(<8 x float> %{{.*}}, <8 x i32> %{{.*}})
974
+ // CHECK: call {{.*}} <8 x float> @llvm.x86.avx2.permps(<8 x float> %{{.*}}, <8 x i32> %{{.*}})
971
975
return _mm256_permutevar8x32_ps (a , b );
972
976
}
973
977
974
978
__m256i test_mm256_sad_epu8 (__m256i x , __m256i y ) {
975
979
// CHECK-LABEL: test_mm256_sad_epu8
976
- // CHECK: call <4 x i64> @llvm.x86.avx2.psad.bw(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
980
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.psad.bw(<32 x i8> %{{.*}}, <32 x i8> %{{.*}})
977
981
return _mm256_sad_epu8 (x , y );
978
982
}
979
983
@@ -1045,13 +1049,13 @@ __m256i test_mm256_slli_epi32_2(__m256i a, int b) {
1045
1049
1046
1050
__m256i test_mm256_slli_epi64 (__m256i a ) {
1047
1051
// CHECK-LABEL: test_mm256_slli_epi64
1048
- // CHECK: call <4 x i64> @llvm.x86.avx2.pslli.q(<4 x i64> %{{.*}}, i32 %{{.*}})
1052
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.pslli.q(<4 x i64> %{{.*}}, i32 %{{.*}})
1049
1053
return _mm256_slli_epi64 (a , 3 );
1050
1054
}
1051
1055
1052
1056
__m256i test_mm256_slli_epi64_2 (__m256i a , int b ) {
1053
1057
// CHECK-LABEL: test_mm256_slli_epi64_2
1054
- // CHECK: call <4 x i64> @llvm.x86.avx2.pslli.q(<4 x i64> %{{.*}}, i32 %{{.*}})
1058
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.pslli.q(<4 x i64> %{{.*}}, i32 %{{.*}})
1055
1059
return _mm256_slli_epi64 (a , b );
1056
1060
}
1057
1061
@@ -1075,13 +1079,13 @@ __m256i test_mm256_sllv_epi32(__m256i a, __m256i b) {
1075
1079
1076
1080
__m128i test_mm_sllv_epi64 (__m128i a , __m128i b ) {
1077
1081
// CHECK-LABEL: test_mm_sllv_epi64
1078
- // CHECK: call <2 x i64> @llvm.x86.avx2.psllv.q(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
1082
+ // CHECK: call {{.*}} <2 x i64> @llvm.x86.avx2.psllv.q(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
1079
1083
return _mm_sllv_epi64 (a , b );
1080
1084
}
1081
1085
1082
1086
__m256i test_mm256_sllv_epi64 (__m256i a , __m256i b ) {
1083
1087
// CHECK-LABEL: test_mm256_sllv_epi64
1084
- // CHECK: call <4 x i64> @llvm.x86.avx2.psllv.q.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
1088
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.psllv.q.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
1085
1089
return _mm256_sllv_epi64 (a , b );
1086
1090
}
1087
1091
@@ -1147,7 +1151,7 @@ __m256i test_mm256_srl_epi32(__m256i a, __m128i b) {
1147
1151
1148
1152
__m256i test_mm256_srl_epi64 (__m256i a , __m128i b ) {
1149
1153
// CHECK-LABEL: test_mm256_srl_epi64
1150
- // CHECK: call <4 x i64> @llvm.x86.avx2.psrl.q(<4 x i64> %{{.*}}, <2 x i64> %{{.*}})
1154
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.psrl.q(<4 x i64> %{{.*}}, <2 x i64> %{{.*}})
1151
1155
return _mm256_srl_epi64 (a , b );
1152
1156
}
1153
1157
@@ -1177,13 +1181,13 @@ __m256i test_mm256_srli_epi32_2(__m256i a, int b) {
1177
1181
1178
1182
__m256i test_mm256_srli_epi64 (__m256i a ) {
1179
1183
// CHECK-LABEL: test_mm256_srli_epi64
1180
- // CHECK: call <4 x i64> @llvm.x86.avx2.psrli.q(<4 x i64> %{{.*}}, i32 %{{.*}})
1184
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.psrli.q(<4 x i64> %{{.*}}, i32 %{{.*}})
1181
1185
return _mm256_srli_epi64 (a , 3 );
1182
1186
}
1183
1187
1184
1188
__m256i test_mm256_srli_epi64_2 (__m256i a , int b ) {
1185
1189
// CHECK-LABEL: test_mm256_srli_epi64_2
1186
- // CHECK: call <4 x i64> @llvm.x86.avx2.psrli.q(<4 x i64> %{{.*}}, i32 %{{.*}})
1190
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.psrli.q(<4 x i64> %{{.*}}, i32 %{{.*}})
1187
1191
return _mm256_srli_epi64 (a , b );
1188
1192
}
1189
1193
@@ -1207,13 +1211,13 @@ __m256i test_mm256_srlv_epi32(__m256i a, __m256i b) {
1207
1211
1208
1212
__m128i test_mm_srlv_epi64 (__m128i a , __m128i b ) {
1209
1213
// CHECK-LABEL: test_mm_srlv_epi64
1210
- // CHECK: call <2 x i64> @llvm.x86.avx2.psrlv.q(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
1214
+ // CHECK: call {{.*}} <2 x i64> @llvm.x86.avx2.psrlv.q(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
1211
1215
return _mm_srlv_epi64 (a , b );
1212
1216
}
1213
1217
1214
1218
__m256i test_mm256_srlv_epi64 (__m256i a , __m256i b ) {
1215
1219
// CHECK-LABEL: test_mm256_srlv_epi64
1216
- // CHECK: call <4 x i64> @llvm.x86.avx2.psrlv.q.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
1220
+ // CHECK: call {{.*}} <4 x i64> @llvm.x86.avx2.psrlv.q.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}})
1217
1221
return _mm256_srlv_epi64 (a , b );
1218
1222
}
1219
1223
0 commit comments