1
- // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +sse4.2 -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 +sse4.2 -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 +sse4.2 -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK
4
- // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +sse4.2 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK
1
+ // RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +sse4.2 -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 +sse4.2 -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 +sse4.2 -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK
4
+ // RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +sse4.2 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK
5
+ // RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +sse4.2 -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 +sse4.2 -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 +sse4.2 -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK
8
+ // RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +sse4.2 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK
5
9
6
10
7
11
#include <immintrin.h>
10
14
11
15
int test_mm_cmpestra (__m128i A , int LA , __m128i B , int LB ) {
12
16
// CHECK-LABEL: test_mm_cmpestra
13
- // CHECK: call i32 @llvm.x86.sse42.pcmpestria128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
17
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpestria128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
14
18
return _mm_cmpestra (A , LA , B , LB , 7 );
15
19
}
16
20
17
21
int test_mm_cmpestrc (__m128i A , int LA , __m128i B , int LB ) {
18
22
// CHECK-LABEL: test_mm_cmpestrc
19
- // CHECK: call i32 @llvm.x86.sse42.pcmpestric128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
23
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpestric128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
20
24
return _mm_cmpestrc (A , LA , B , LB , 7 );
21
25
}
22
26
23
27
int test_mm_cmpestri (__m128i A , int LA , __m128i B , int LB ) {
24
28
// CHECK-LABEL: test_mm_cmpestri
25
- // CHECK: call i32 @llvm.x86.sse42.pcmpestri128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
29
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpestri128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
26
30
return _mm_cmpestri (A , LA , B , LB , 7 );
27
31
}
28
32
@@ -34,19 +38,19 @@ __m128i test_mm_cmpestrm(__m128i A, int LA, __m128i B, int LB) {
34
38
35
39
int test_mm_cmpestro (__m128i A , int LA , __m128i B , int LB ) {
36
40
// CHECK-LABEL: test_mm_cmpestro
37
- // CHECK: call i32 @llvm.x86.sse42.pcmpestrio128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
41
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpestrio128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
38
42
return _mm_cmpestro (A , LA , B , LB , 7 );
39
43
}
40
44
41
45
int test_mm_cmpestrs (__m128i A , int LA , __m128i B , int LB ) {
42
46
// CHECK-LABEL: test_mm_cmpestrs
43
- // CHECK: call i32 @llvm.x86.sse42.pcmpestris128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
47
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpestris128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
44
48
return _mm_cmpestrs (A , LA , B , LB , 7 );
45
49
}
46
50
47
51
int test_mm_cmpestrz (__m128i A , int LA , __m128i B , int LB ) {
48
52
// CHECK-LABEL: test_mm_cmpestrz
49
- // CHECK: call i32 @llvm.x86.sse42.pcmpestriz128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
53
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpestriz128(<16 x i8> %{{.*}}, i32 %{{.*}}, <16 x i8> %{{.*}}, i32 %{{.*}}, i8 7)
50
54
return _mm_cmpestrz (A , LA , B , LB , 7 );
51
55
}
52
56
@@ -58,19 +62,19 @@ __m128i test_mm_cmpgt_epi64(__m128i A, __m128i B) {
58
62
59
63
int test_mm_cmpistra (__m128i A , __m128i B ) {
60
64
// CHECK-LABEL: test_mm_cmpistra
61
- // CHECK: call i32 @llvm.x86.sse42.pcmpistria128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
65
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpistria128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
62
66
return _mm_cmpistra (A , B , 7 );
63
67
}
64
68
65
69
int test_mm_cmpistrc (__m128i A , __m128i B ) {
66
70
// CHECK-LABEL: test_mm_cmpistrc
67
- // CHECK: call i32 @llvm.x86.sse42.pcmpistric128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
71
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpistric128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
68
72
return _mm_cmpistrc (A , B , 7 );
69
73
}
70
74
71
75
int test_mm_cmpistri (__m128i A , __m128i B ) {
72
76
// CHECK-LABEL: test_mm_cmpistri
73
- // CHECK: call i32 @llvm.x86.sse42.pcmpistri128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
77
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpistri128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
74
78
return _mm_cmpistri (A , B , 7 );
75
79
}
76
80
@@ -82,44 +86,44 @@ __m128i test_mm_cmpistrm(__m128i A, __m128i B) {
82
86
83
87
int test_mm_cmpistro (__m128i A , __m128i B ) {
84
88
// CHECK-LABEL: test_mm_cmpistro
85
- // CHECK: call i32 @llvm.x86.sse42.pcmpistrio128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
89
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpistrio128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
86
90
return _mm_cmpistro (A , B , 7 );
87
91
}
88
92
89
93
int test_mm_cmpistrs (__m128i A , __m128i B ) {
90
94
// CHECK-LABEL: test_mm_cmpistrs
91
- // CHECK: call i32 @llvm.x86.sse42.pcmpistris128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
95
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpistris128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
92
96
return _mm_cmpistrs (A , B , 7 );
93
97
}
94
98
95
99
int test_mm_cmpistrz (__m128i A , __m128i B ) {
96
100
// CHECK-LABEL: test_mm_cmpistrz
97
- // CHECK: call i32 @llvm.x86.sse42.pcmpistriz128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
101
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.pcmpistriz128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i8 7)
98
102
return _mm_cmpistrz (A , B , 7 );
99
103
}
100
104
101
105
unsigned int test_mm_crc32_u8 (unsigned int CRC , unsigned char V ) {
102
106
// CHECK-LABEL: test_mm_crc32_u8
103
- // CHECK: call i32 @llvm.x86.sse42.crc32.32.8(i32 %{{.*}}, i8 %{{.*}})
107
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.crc32.32.8(i32 %{{.*}}, i8 %{{.*}})
104
108
return _mm_crc32_u8 (CRC , V );
105
109
}
106
110
107
111
unsigned int test_mm_crc32_u16 (unsigned int CRC , unsigned short V ) {
108
112
// CHECK-LABEL: test_mm_crc32_u16
109
- // CHECK: call i32 @llvm.x86.sse42.crc32.32.16(i32 %{{.*}}, i16 %{{.*}})
113
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.crc32.32.16(i32 %{{.*}}, i16 %{{.*}})
110
114
return _mm_crc32_u16 (CRC , V );
111
115
}
112
116
113
117
unsigned int test_mm_crc32_u32 (unsigned int CRC , unsigned int V ) {
114
118
// CHECK-LABEL: test_mm_crc32_u32
115
- // CHECK: call i32 @llvm.x86.sse42.crc32.32.32(i32 %{{.*}}, i32 %{{.*}})
119
+ // CHECK: call {{.*}} i32 @llvm.x86.sse42.crc32.32.32(i32 %{{.*}}, i32 %{{.*}})
116
120
return _mm_crc32_u32 (CRC , V );
117
121
}
118
122
119
123
#ifdef __x86_64__
120
124
unsigned long long test_mm_crc32_u64 (unsigned long long CRC , unsigned long long V ) {
121
125
// X64-LABEL: test_mm_crc32_u64
122
- // X64: call i64 @llvm.x86.sse42.crc32.64.64(i64 %{{.*}}, i64 %{{.*}})
126
+ // X64: call {{.*}} i64 @llvm.x86.sse42.crc32.64.64(i64 %{{.*}}, i64 %{{.*}})
123
127
return _mm_crc32_u64 (CRC , V );
124
128
}
125
129
#endif
0 commit comments