1
- // RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +sse4.1 -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.1 -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.1 -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.1 -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.1 -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.1 -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.1 -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.1 -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.1 -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.1 -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.1 -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.1 -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefixes=CHECK
5
9
6
10
7
11
#include <immintrin.h>
@@ -34,37 +38,37 @@ __m128i test_mm_blendv_epi8(__m128i V1, __m128i V2, __m128i V3) {
34
38
35
39
__m128d test_mm_blendv_pd (__m128d V1 , __m128d V2 , __m128d V3 ) {
36
40
// CHECK-LABEL: test_mm_blendv_pd
37
- // CHECK: call <2 x double> @llvm.x86.sse41.blendvpd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
41
+ // CHECK: call {{.*}} <2 x double> @llvm.x86.sse41.blendvpd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}})
38
42
return _mm_blendv_pd (V1 , V2 , V3 );
39
43
}
40
44
41
45
__m128 test_mm_blendv_ps (__m128 V1 , __m128 V2 , __m128 V3 ) {
42
46
// CHECK-LABEL: test_mm_blendv_ps
43
- // CHECK: call <4 x float> @llvm.x86.sse41.blendvps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
47
+ // CHECK: call {{.*}} <4 x float> @llvm.x86.sse41.blendvps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}})
44
48
return _mm_blendv_ps (V1 , V2 , V3 );
45
49
}
46
50
47
51
__m128d test_mm_ceil_pd (__m128d x ) {
48
52
// CHECK-LABEL: test_mm_ceil_pd
49
- // CHECK: call <2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 2)
53
+ // CHECK: call {{.*}} <2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 2)
50
54
return _mm_ceil_pd (x );
51
55
}
52
56
53
57
__m128 test_mm_ceil_ps (__m128 x ) {
54
58
// CHECK-LABEL: test_mm_ceil_ps
55
- // CHECK: call <4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 2)
59
+ // CHECK: call {{.*}} <4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 2)
56
60
return _mm_ceil_ps (x );
57
61
}
58
62
59
63
__m128d test_mm_ceil_sd (__m128d x , __m128d y ) {
60
64
// CHECK-LABEL: test_mm_ceil_sd
61
- // CHECK: call <2 x double> @llvm.x86.sse41.round.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i32 2)
65
+ // CHECK: call {{.*}} <2 x double> @llvm.x86.sse41.round.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i32 2)
62
66
return _mm_ceil_sd (x , y );
63
67
}
64
68
65
69
__m128 test_mm_ceil_ss (__m128 x , __m128 y ) {
66
70
// CHECK-LABEL: test_mm_ceil_ss
67
- // CHECK: call <4 x float> @llvm.x86.sse41.round.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i32 2)
71
+ // CHECK: call {{.*}} <4 x float> @llvm.x86.sse41.round.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i32 2)
68
72
return _mm_ceil_ss (x , y );
69
73
}
70
74
@@ -161,13 +165,13 @@ __m128i test_mm_cvtepu32_epi64(__m128i a) {
161
165
162
166
__m128d test_mm_dp_pd (__m128d x , __m128d y ) {
163
167
// CHECK-LABEL: test_mm_dp_pd
164
- // CHECK: call <2 x double> @llvm.x86.sse41.dppd(<2 x double> {{.*}}, <2 x double> {{.*}}, i8 7)
168
+ // CHECK: call {{.*}} <2 x double> @llvm.x86.sse41.dppd(<2 x double> {{.*}}, <2 x double> {{.*}}, i8 7)
165
169
return _mm_dp_pd (x , y , 7 );
166
170
}
167
171
168
172
__m128 test_mm_dp_ps (__m128 x , __m128 y ) {
169
173
// CHECK-LABEL: test_mm_dp_ps
170
- // CHECK: call <4 x float> @llvm.x86.sse41.dpps(<4 x float> {{.*}}, <4 x float> {{.*}}, i8 7)
174
+ // CHECK: call {{.*}} <4 x float> @llvm.x86.sse41.dpps(<4 x float> {{.*}}, <4 x float> {{.*}}, i8 7)
171
175
return _mm_dp_ps (x , y , 7 );
172
176
}
173
177
@@ -198,25 +202,25 @@ int test_mm_extract_ps(__m128 x) {
198
202
199
203
__m128d test_mm_floor_pd (__m128d x ) {
200
204
// CHECK-LABEL: test_mm_floor_pd
201
- // CHECK: call <2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 1)
205
+ // CHECK: call {{.*}} <2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 1)
202
206
return _mm_floor_pd (x );
203
207
}
204
208
205
209
__m128 test_mm_floor_ps (__m128 x ) {
206
210
// CHECK-LABEL: test_mm_floor_ps
207
- // CHECK: call <4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 1)
211
+ // CHECK: call {{.*}} <4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 1)
208
212
return _mm_floor_ps (x );
209
213
}
210
214
211
215
__m128d test_mm_floor_sd (__m128d x , __m128d y ) {
212
216
// CHECK-LABEL: test_mm_floor_sd
213
- // CHECK: call <2 x double> @llvm.x86.sse41.round.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i32 1)
217
+ // CHECK: call {{.*}} <2 x double> @llvm.x86.sse41.round.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i32 1)
214
218
return _mm_floor_sd (x , y );
215
219
}
216
220
217
221
__m128 test_mm_floor_ss (__m128 x , __m128 y ) {
218
222
// CHECK-LABEL: test_mm_floor_ss
219
- // CHECK: call <4 x float> @llvm.x86.sse41.round.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i32 1)
223
+ // CHECK: call {{.*}} <4 x float> @llvm.x86.sse41.round.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i32 1)
220
224
return _mm_floor_ss (x , y );
221
225
}
222
226
@@ -242,7 +246,7 @@ __m128i test_mm_insert_epi64(__m128i x, long long b) {
242
246
243
247
__m128 test_mm_insert_ps (__m128 x , __m128 y ) {
244
248
// CHECK-LABEL: test_mm_insert_ps
245
- // CHECK: call <4 x float> @llvm.x86.sse41.insertps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 4)
249
+ // CHECK: call {{.*}} <4 x float> @llvm.x86.sse41.insertps(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i8 4)
246
250
return _mm_insert_ps (x , y , 4 );
247
251
}
248
252
@@ -330,25 +334,25 @@ __m128i test_mm_packus_epi32(__m128i x, __m128i y) {
330
334
331
335
__m128d test_mm_round_pd (__m128d x ) {
332
336
// CHECK-LABEL: test_mm_round_pd
333
- // CHECK: call <2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 4)
337
+ // CHECK: call {{.*}} <2 x double> @llvm.x86.sse41.round.pd(<2 x double> %{{.*}}, i32 4)
334
338
return _mm_round_pd (x , 4 );
335
339
}
336
340
337
341
__m128 test_mm_round_ps (__m128 x ) {
338
342
// CHECK-LABEL: test_mm_round_ps
339
- // CHECK: call <4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 4)
343
+ // CHECK: call {{.*}} <4 x float> @llvm.x86.sse41.round.ps(<4 x float> %{{.*}}, i32 4)
340
344
return _mm_round_ps (x , 4 );
341
345
}
342
346
343
347
__m128d test_mm_round_sd (__m128d x , __m128d y ) {
344
348
// CHECK-LABEL: test_mm_round_sd
345
- // CHECK: call <2 x double> @llvm.x86.sse41.round.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i32 4)
349
+ // CHECK: call {{.*}} <2 x double> @llvm.x86.sse41.round.sd(<2 x double> %{{.*}}, <2 x double> %{{.*}}, i32 4)
346
350
return _mm_round_sd (x , y , 4 );
347
351
}
348
352
349
353
__m128 test_mm_round_ss (__m128 x , __m128 y ) {
350
354
// CHECK-LABEL: test_mm_round_ss
351
- // CHECK: call <4 x float> @llvm.x86.sse41.round.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i32 4)
355
+ // CHECK: call {{.*}} <4 x float> @llvm.x86.sse41.round.ss(<4 x float> %{{.*}}, <4 x float> %{{.*}}, i32 4)
352
356
return _mm_round_ss (x , y , 4 );
353
357
}
354
358
@@ -366,37 +370,37 @@ __m128i test_mm_stream_load_si128_void(const void *a) {
366
370
367
371
int test_mm_test_all_ones (__m128i x ) {
368
372
// CHECK-LABEL: test_mm_test_all_ones
369
- // CHECK: call i32 @llvm.x86.sse41.ptestc(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
373
+ // CHECK: call {{.*}} i32 @llvm.x86.sse41.ptestc(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
370
374
return _mm_test_all_ones (x );
371
375
}
372
376
373
377
int test_mm_test_all_zeros (__m128i x , __m128i y ) {
374
378
// CHECK-LABEL: test_mm_test_all_zeros
375
- // CHECK: call i32 @llvm.x86.sse41.ptestz(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
379
+ // CHECK: call {{.*}} i32 @llvm.x86.sse41.ptestz(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
376
380
return _mm_test_all_zeros (x , y );
377
381
}
378
382
379
383
int test_mm_test_mix_ones_zeros (__m128i x , __m128i y ) {
380
384
// CHECK-LABEL: test_mm_test_mix_ones_zeros
381
- // CHECK: call i32 @llvm.x86.sse41.ptestnzc(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
385
+ // CHECK: call {{.*}} i32 @llvm.x86.sse41.ptestnzc(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
382
386
return _mm_test_mix_ones_zeros (x , y );
383
387
}
384
388
385
389
int test_mm_testc_si128 (__m128i x , __m128i y ) {
386
390
// CHECK-LABEL: test_mm_testc_si128
387
- // CHECK: call i32 @llvm.x86.sse41.ptestc(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
391
+ // CHECK: call {{.*}} i32 @llvm.x86.sse41.ptestc(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
388
392
return _mm_testc_si128 (x , y );
389
393
}
390
394
391
395
int test_mm_testnzc_si128 (__m128i x , __m128i y ) {
392
396
// CHECK-LABEL: test_mm_testnzc_si128
393
- // CHECK: call i32 @llvm.x86.sse41.ptestnzc(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
397
+ // CHECK: call {{.*}} i32 @llvm.x86.sse41.ptestnzc(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
394
398
return _mm_testnzc_si128 (x , y );
395
399
}
396
400
397
401
int test_mm_testz_si128 (__m128i x , __m128i y ) {
398
402
// CHECK-LABEL: test_mm_testz_si128
399
- // CHECK: call i32 @llvm.x86.sse41.ptestz(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
403
+ // CHECK: call {{.*}} i32 @llvm.x86.sse41.ptestz(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
400
404
return _mm_testz_si128 (x , y );
401
405
}
402
406
0 commit comments