Skip to content

Commit

Permalink
[clang][x86] Update SSE4A intrinsic tests for both C/C++
Browse files Browse the repository at this point in the history
Requires some better checking of labels and some call instructions to handle additional markers
  • Loading branch information
RKSimon committed Oct 3, 2024
1 parent 200dd6f commit 1ba19d6
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions clang/test/CodeGen/X86/sse4a-builtins.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +sse4a -emit-llvm -o - -Wall -Werror | FileCheck %s
// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +sse4a -emit-llvm -o - -Wall -Werror | FileCheck %s
// 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
// 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
// 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
// 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


#include <x86intrin.h>
Expand All @@ -8,25 +10,25 @@

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

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

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

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

Expand Down

0 comments on commit 1ba19d6

Please sign in to comment.