Skip to content

Commit 72b53cd

Browse files
committed
[X86] xop-builtins.c - add C/C++ test coverage
1 parent 9442b4e commit 72b53cd

File tree

1 file changed

+29
-25
lines changed

1 file changed

+29
-25
lines changed

clang/test/CodeGen/X86/xop-builtins.c

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +xop -emit-llvm -o - -Wall -Werror | FileCheck %s
2-
// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +xop -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s
3-
// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +xop -emit-llvm -o - -Wall -Werror | FileCheck %s
4-
// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +xop -fno-signed-char -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 +xop -emit-llvm -o - -Wall -Werror | FileCheck %s
2+
// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +xop -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s
3+
// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +xop -emit-llvm -o - -Wall -Werror | FileCheck %s
4+
// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +xop -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s
5+
// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +xop -emit-llvm -o - -Wall -Werror | FileCheck %s
6+
// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +xop -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s
7+
// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +xop -emit-llvm -o - -Wall -Werror | FileCheck %s
8+
// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +xop -fno-signed-char -emit-llvm -o - -Wall -Werror | FileCheck %s
59

610

711
#include <x86intrin.h>
@@ -46,25 +50,25 @@ __m128i test_mm_macc_epi32(__m128i a, __m128i b, __m128i c) {
4650

4751
__m128i test_mm_maccslo_epi32(__m128i a, __m128i b, __m128i c) {
4852
// CHECK-LABEL: test_mm_maccslo_epi32
49-
// CHECK: call <2 x i64> @llvm.x86.xop.vpmacssdql(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}})
53+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vpmacssdql(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}})
5054
return _mm_maccslo_epi32(a, b, c);
5155
}
5256

5357
__m128i test_mm_macclo_epi32(__m128i a, __m128i b, __m128i c) {
5458
// CHECK-LABEL: test_mm_macclo_epi32
55-
// CHECK: call <2 x i64> @llvm.x86.xop.vpmacsdql(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}})
59+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vpmacsdql(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}})
5660
return _mm_macclo_epi32(a, b, c);
5761
}
5862

5963
__m128i test_mm_maccshi_epi32(__m128i a, __m128i b, __m128i c) {
6064
// CHECK-LABEL: test_mm_maccshi_epi32
61-
// CHECK: call <2 x i64> @llvm.x86.xop.vpmacssdqh(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}})
65+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vpmacssdqh(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}})
6266
return _mm_maccshi_epi32(a, b, c);
6367
}
6468

6569
__m128i test_mm_macchi_epi32(__m128i a, __m128i b, __m128i c) {
6670
// CHECK-LABEL: test_mm_macchi_epi32
67-
// CHECK: call <2 x i64> @llvm.x86.xop.vpmacsdqh(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}})
71+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vpmacsdqh(<4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <2 x i64> %{{.*}})
6872
return _mm_macchi_epi32(a, b, c);
6973
}
7074

@@ -94,7 +98,7 @@ __m128i test_mm_haddd_epi8(__m128i a) {
9498

9599
__m128i test_mm_haddq_epi8(__m128i a) {
96100
// CHECK-LABEL: test_mm_haddq_epi8
97-
// CHECK: call <2 x i64> @llvm.x86.xop.vphaddbq(<16 x i8> %{{.*}})
101+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vphaddbq(<16 x i8> %{{.*}})
98102
return _mm_haddq_epi8(a);
99103
}
100104

@@ -106,13 +110,13 @@ __m128i test_mm_haddd_epi16(__m128i a) {
106110

107111
__m128i test_mm_haddq_epi16(__m128i a) {
108112
// CHECK-LABEL: test_mm_haddq_epi16
109-
// CHECK: call <2 x i64> @llvm.x86.xop.vphaddwq(<8 x i16> %{{.*}})
113+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vphaddwq(<8 x i16> %{{.*}})
110114
return _mm_haddq_epi16(a);
111115
}
112116

113117
__m128i test_mm_haddq_epi32(__m128i a) {
114118
// CHECK-LABEL: test_mm_haddq_epi32
115-
// CHECK: call <2 x i64> @llvm.x86.xop.vphadddq(<4 x i32> %{{.*}})
119+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vphadddq(<4 x i32> %{{.*}})
116120
return _mm_haddq_epi32(a);
117121
}
118122

@@ -130,7 +134,7 @@ __m128i test_mm_haddd_epu8(__m128i a) {
130134

131135
__m128i test_mm_haddq_epu8(__m128i a) {
132136
// CHECK-LABEL: test_mm_haddq_epu8
133-
// CHECK: call <2 x i64> @llvm.x86.xop.vphaddubq(<16 x i8> %{{.*}})
137+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vphaddubq(<16 x i8> %{{.*}})
134138
return _mm_haddq_epu8(a);
135139
}
136140

@@ -142,13 +146,13 @@ __m128i test_mm_haddd_epu16(__m128i a) {
142146

143147
__m128i test_mm_haddq_epu16(__m128i a) {
144148
// CHECK-LABEL: test_mm_haddq_epu16
145-
// CHECK: call <2 x i64> @llvm.x86.xop.vphadduwq(<8 x i16> %{{.*}})
149+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vphadduwq(<8 x i16> %{{.*}})
146150
return _mm_haddq_epu16(a);
147151
}
148152

149153
__m128i test_mm_haddq_epu32(__m128i a) {
150154
// CHECK-LABEL: test_mm_haddq_epu32
151-
// CHECK: call <2 x i64> @llvm.x86.xop.vphaddudq(<4 x i32> %{{.*}})
155+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vphaddudq(<4 x i32> %{{.*}})
152156
return _mm_haddq_epu32(a);
153157
}
154158

@@ -166,7 +170,7 @@ __m128i test_mm_hsubd_epi16(__m128i a) {
166170

167171
__m128i test_mm_hsubq_epi32(__m128i a) {
168172
// CHECK-LABEL: test_mm_hsubq_epi32
169-
// CHECK: call <2 x i64> @llvm.x86.xop.vphsubdq(<4 x i32> %{{.*}})
173+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vphsubdq(<4 x i32> %{{.*}})
170174
return _mm_hsubq_epi32(a);
171175
}
172176

@@ -214,7 +218,7 @@ __m128i test_mm_rot_epi32(__m128i a, __m128i b) {
214218

215219
__m128i test_mm_rot_epi64(__m128i a, __m128i b) {
216220
// CHECK-LABEL: test_mm_rot_epi64
217-
// CHECK: call <2 x i64> @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
221+
// CHECK: call {{.*}}<2 x i64> @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
218222
return _mm_rot_epi64(a, b);
219223
}
220224

@@ -238,7 +242,7 @@ __m128i test_mm_roti_epi32(__m128i a) {
238242

239243
__m128i test_mm_roti_epi64(__m128i a) {
240244
// CHECK-LABEL: test_mm_roti_epi64
241-
// CHECK: call <2 x i64> @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> splat (i64 100))
245+
// CHECK: call {{.*}}<2 x i64> @llvm.fshl.v2i64(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> splat (i64 100))
242246
return _mm_roti_epi64(a, 100);
243247
}
244248

@@ -262,7 +266,7 @@ __m128i test_mm_shl_epi32(__m128i a, __m128i b) {
262266

263267
__m128i test_mm_shl_epi64(__m128i a, __m128i b) {
264268
// CHECK-LABEL: test_mm_shl_epi64
265-
// CHECK: call <2 x i64> @llvm.x86.xop.vpshlq(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
269+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vpshlq(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
266270
return _mm_shl_epi64(a, b);
267271
}
268272

@@ -286,7 +290,7 @@ __m128i test_mm_sha_epi32(__m128i a, __m128i b) {
286290

287291
__m128i test_mm_sha_epi64(__m128i a, __m128i b) {
288292
// CHECK-LABEL: test_mm_sha_epi64
289-
// CHECK: call <2 x i64> @llvm.x86.xop.vpshaq(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
293+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.xop.vpshaq(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
290294
return _mm_sha_epi64(a, b);
291295
}
292296

@@ -372,36 +376,36 @@ __m256 test_mm256_permute2_ps(__m256 a, __m256 b, __m256i c) {
372376

373377
__m128 test_mm_frcz_ss(__m128 a) {
374378
// CHECK-LABEL: test_mm_frcz_ss
375-
// CHECK: call <4 x float> @llvm.x86.xop.vfrcz.ss(<4 x float> %{{.*}})
379+
// CHECK: call {{.*}}<4 x float> @llvm.x86.xop.vfrcz.ss(<4 x float> %{{.*}})
376380
return _mm_frcz_ss(a);
377381
}
378382

379383
__m128d test_mm_frcz_sd(__m128d a) {
380384
// CHECK-LABEL: test_mm_frcz_sd
381-
// CHECK: call <2 x double> @llvm.x86.xop.vfrcz.sd(<2 x double> %{{.*}})
385+
// CHECK: call {{.*}}<2 x double> @llvm.x86.xop.vfrcz.sd(<2 x double> %{{.*}})
382386
return _mm_frcz_sd(a);
383387
}
384388

385389
__m128 test_mm_frcz_ps(__m128 a) {
386390
// CHECK-LABEL: test_mm_frcz_ps
387-
// CHECK: call <4 x float> @llvm.x86.xop.vfrcz.ps(<4 x float> %{{.*}})
391+
// CHECK: call {{.*}}<4 x float> @llvm.x86.xop.vfrcz.ps(<4 x float> %{{.*}})
388392
return _mm_frcz_ps(a);
389393
}
390394

391395
__m128d test_mm_frcz_pd(__m128d a) {
392396
// CHECK-LABEL: test_mm_frcz_pd
393-
// CHECK: call <2 x double> @llvm.x86.xop.vfrcz.pd(<2 x double> %{{.*}})
397+
// CHECK: call {{.*}}<2 x double> @llvm.x86.xop.vfrcz.pd(<2 x double> %{{.*}})
394398
return _mm_frcz_pd(a);
395399
}
396400

397401
__m256 test_mm256_frcz_ps(__m256 a) {
398402
// CHECK-LABEL: test_mm256_frcz_ps
399-
// CHECK: call <8 x float> @llvm.x86.xop.vfrcz.ps.256(<8 x float> %{{.*}})
403+
// CHECK: call {{.*}}<8 x float> @llvm.x86.xop.vfrcz.ps.256(<8 x float> %{{.*}})
400404
return _mm256_frcz_ps(a);
401405
}
402406

403407
__m256d test_mm256_frcz_pd(__m256d a) {
404408
// CHECK-LABEL: test_mm256_frcz_pd
405-
// CHECK: call <4 x double> @llvm.x86.xop.vfrcz.pd.256(<4 x double> %{{.*}})
409+
// CHECK: call {{.*}}<4 x double> @llvm.x86.xop.vfrcz.pd.256(<4 x double> %{{.*}})
406410
return _mm256_frcz_pd(a);
407411
}

0 commit comments

Comments
 (0)