Skip to content

Commit 1ba19d6

Browse files
committed
[clang][x86] Update SSE4A intrinsic tests for both C/C++
Requires some better checking of labels and some call instructions to handle additional markers
1 parent 200dd6f commit 1ba19d6

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

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

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

46

57
#include <x86intrin.h>
@@ -8,25 +10,25 @@
810

911
__m128i test_mm_extracti_si64(__m128i x) {
1012
// CHECK-LABEL: test_mm_extracti_si64
11-
// CHECK: call <2 x i64> @llvm.x86.sse4a.extrqi(<2 x i64> %{{[^,]+}}, i8 3, i8 2)
13+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.sse4a.extrqi(<2 x i64> %{{[^,]+}}, i8 3, i8 2)
1214
return _mm_extracti_si64(x, 3, 2);
1315
}
1416

1517
__m128i test_mm_extract_si64(__m128i x, __m128i y) {
1618
// CHECK-LABEL: test_mm_extract_si64
17-
// CHECK: call <2 x i64> @llvm.x86.sse4a.extrq(<2 x i64> %{{[^,]+}}, <16 x i8> %{{[^,]+}})
19+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.sse4a.extrq(<2 x i64> %{{[^,]+}}, <16 x i8> %{{[^,]+}})
1820
return _mm_extract_si64(x, y);
1921
}
2022

2123
__m128i test_mm_inserti_si64(__m128i x, __m128i y) {
2224
// CHECK-LABEL: test_mm_inserti_si64
23-
// CHECK: call <2 x i64> @llvm.x86.sse4a.insertqi(<2 x i64> %{{[^,]+}}, <2 x i64> %{{[^,]+}}, i8 5, i8 6)
25+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.sse4a.insertqi(<2 x i64> %{{[^,]+}}, <2 x i64> %{{[^,]+}}, i8 5, i8 6)
2426
return _mm_inserti_si64(x, y, 5, 6);
2527
}
2628

2729
__m128i test_mm_insert_si64(__m128i x, __m128i y) {
2830
// CHECK-LABEL: test_mm_insert_si64
29-
// CHECK: call <2 x i64> @llvm.x86.sse4a.insertq(<2 x i64> %{{[^,]+}}, <2 x i64> %{{[^,]+}})
31+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.sse4a.insertq(<2 x i64> %{{[^,]+}}, <2 x i64> %{{[^,]+}})
3032
return _mm_insert_si64(x, y);
3133
}
3234

0 commit comments

Comments
 (0)