diff options
author | Uriel Korach <uriel.korach@intel.com> | 2017-09-13 09:02:02 +0000 |
---|---|---|
committer | Uriel Korach <uriel.korach@intel.com> | 2017-09-13 09:02:02 +0000 |
commit | 3fba3c3b0c14be30ae4d7b7159a0617e07ad890e (patch) | |
tree | c034360ca47da3c48a1ab36401f47f38534b6814 /clang/test/CodeGen/ssse3-builtins.c | |
parent | e9aebf26af9c3a63da95218cf1ef2ba1d947ca78 (diff) | |
download | bcm5719-llvm-3fba3c3b0c14be30ae4d7b7159a0617e07ad890e.tar.gz bcm5719-llvm-3fba3c3b0c14be30ae4d7b7159a0617e07ad890e.zip |
[X86] [PATCH] [intrinsics] Lowering X86 ABS intrinsics to IR. (clang)
This patch, together with a matching llvm patch (https://reviews.llvm.org/D37693), implements the lowering of X86 ABS intrinsics to IR.
Differential Revision: https://reviews.llvm.org/D37694
llvm-svn: 313133
Diffstat (limited to 'clang/test/CodeGen/ssse3-builtins.c')
-rw-r--r-- | clang/test/CodeGen/ssse3-builtins.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/clang/test/CodeGen/ssse3-builtins.c b/clang/test/CodeGen/ssse3-builtins.c index b2279e277cd..4fd22aa79b4 100644 --- a/clang/test/CodeGen/ssse3-builtins.c +++ b/clang/test/CodeGen/ssse3-builtins.c @@ -7,19 +7,25 @@ __m128i test_mm_abs_epi8(__m128i a) { // CHECK-LABEL: test_mm_abs_epi8 - // CHECK: call <16 x i8> @llvm.x86.ssse3.pabs.b.128(<16 x i8> %{{.*}}) + // CHECK: [[SUB:%.+]] = sub <16 x i8> zeroinitializer, [[A:%.+]] + // CHECK: [[CMP:%.+]] = icmp sgt <16 x i8> [[A]], zeroinitializer + // CHECK: %{{.*}} = select <16 x i1> [[CMP]], <16 x i8> [[A]], <16 x i8> [[SUB]] 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(<8 x i16> %{{.*}}) + // CHECK: [[SUB:%.+]] = sub <8 x i16> zeroinitializer, [[A:%.+]] + // CHECK: [[CMP:%.+]] = icmp sgt <8 x i16> [[A]], zeroinitializer + // CHECK: %{{.*}} = select <8 x i1> [[CMP]], <8 x i16> [[A]], <8 x i16> [[SUB]] 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(<4 x i32> %{{.*}}) + // CHECK: [[SUB:%.+]] = sub <4 x i32> zeroinitializer, [[A:%.+]] + // CHECK: [[CMP:%.+]] = icmp sgt <4 x i32> [[A]], zeroinitializer + // CHECK: %{{.*}} = select <4 x i1> [[CMP]], <4 x i32> [[A]], <4 x i32> [[SUB]] return _mm_abs_epi32(a); } |