forked from OSchip/llvm-project
Updated SSSE3 builtin tests to more closely match the llvm fast-isel equivalent tests
llvm-svn: 263115
This commit is contained in:
parent
cf3f4f25ca
commit
baed60dd0a
|
@ -5,21 +5,23 @@
|
|||
|
||||
#include <x86intrin.h>
|
||||
|
||||
// NOTE: This should match the tests in llvm/test/CodeGen/X86/ssse3-intrinsics-fast-isel.ll
|
||||
|
||||
__m128i test_mm_abs_epi8(__m128i a) {
|
||||
// CHECK-LABEL: test_mm_abs_epi8
|
||||
// CHECK: call <16 x i8> @llvm.x86.ssse3.pabs.b.128
|
||||
// CHECK: call <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8> %{{.*}})
|
||||
return _mm_abs_epi8(a);
|
||||
}
|
||||
|
||||
__m128i test_mm_abs_epi16(__m128i a) {
|
||||
// CHECK-LABEL: test_mm_abs_epi16
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.pabs.w.128
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.pabs.w.128(<8 x i16> %{{.*}})
|
||||
return _mm_abs_epi16(a);
|
||||
}
|
||||
|
||||
__m128i test_mm_abs_epi32(__m128i a) {
|
||||
// CHECK-LABEL: test_mm_abs_epi32
|
||||
// CHECK: call <4 x i32> @llvm.x86.ssse3.pabs.d.128
|
||||
// CHECK: call <4 x i32> @llvm.x86.ssse3.pabs.d.128(<4 x i32> %{{.*}})
|
||||
return _mm_abs_epi32(a);
|
||||
}
|
||||
|
||||
|
@ -37,72 +39,72 @@ __m128i test2_mm_alignr_epi8(__m128i a, __m128i b) {
|
|||
|
||||
__m128i test_mm_hadd_epi16(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_hadd_epi16
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.phadd.w.128
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.phadd.w.128(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
|
||||
return _mm_hadd_epi16(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_hadd_epi32(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_hadd_epi32
|
||||
// CHECK: call <4 x i32> @llvm.x86.ssse3.phadd.d.128
|
||||
// CHECK: call <4 x i32> @llvm.x86.ssse3.phadd.d.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
|
||||
return _mm_hadd_epi32(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_hadds_epi16(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_hadds_epi16
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.phadd.sw.128
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.phadd.sw.128(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
|
||||
return _mm_hadds_epi16(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_hsub_epi16(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_hsub_epi16
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.phsub.w.128
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.phsub.w.128(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
|
||||
return _mm_hsub_epi16(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_hsub_epi32(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_hsub_epi32
|
||||
// CHECK: call <4 x i32> @llvm.x86.ssse3.phsub.d.128
|
||||
// CHECK: call <4 x i32> @llvm.x86.ssse3.phsub.d.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
|
||||
return _mm_hsub_epi32(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_hsubs_epi16(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_hsubs_epi16
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.phsub.sw.128
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.phsub.sw.128(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
|
||||
return _mm_hsubs_epi16(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_maddubs_epi16(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_maddubs_epi16
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.pmadd.ub.sw.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
|
||||
return _mm_maddubs_epi16(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_mulhrs_epi16(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_mulhrs_epi16
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.pmul.hr.sw.128(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
|
||||
return _mm_mulhrs_epi16(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_shuffle_epi8(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_shuffle_epi8
|
||||
// CHECK: call <16 x i8> @llvm.x86.ssse3.pshuf.b.128
|
||||
// CHECK: call <16 x i8> @llvm.x86.ssse3.pshuf.b.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
|
||||
return _mm_shuffle_epi8(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_sign_epi8(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_sign_epi8
|
||||
// CHECK: call <16 x i8> @llvm.x86.ssse3.psign.b.128
|
||||
// CHECK: call <16 x i8> @llvm.x86.ssse3.psign.b.128(<16 x i8> %{{.*}}, <16 x i8> %{{.*}})
|
||||
return _mm_sign_epi8(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_sign_epi16(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_sign_epi16
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.psign.w.128
|
||||
// CHECK: call <8 x i16> @llvm.x86.ssse3.psign.w.128(<8 x i16> %{{.*}}, <8 x i16> %{{.*}})
|
||||
return _mm_sign_epi16(a, b);
|
||||
}
|
||||
|
||||
__m128i test_mm_sign_epi32(__m128i a, __m128i b) {
|
||||
// CHECK-LABEL: test_mm_sign_epi32
|
||||
// CHECK: call <4 x i32> @llvm.x86.ssse3.psign.d.128
|
||||
// CHECK: call <4 x i32> @llvm.x86.ssse3.psign.d.128(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
|
||||
return _mm_sign_epi32(a, b);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue