diff options
author | Bob Wilson <bob.wilson@apple.com> | 2010-08-29 05:57:34 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2010-08-29 05:57:34 +0000 |
commit | 04d6c289ab28114af5471c4dc38cbf7b7127d3c3 (patch) | |
tree | 60f08d20f5b2177290252000aa305b07a43930d8 /test/Bitcode/neon-intrinsics.ll | |
parent | 63a75c13b110b89435ee5e30f1ce9ed57019ac5a (diff) | |
download | external_llvm-04d6c289ab28114af5471c4dc38cbf7b7127d3c3.zip external_llvm-04d6c289ab28114af5471c4dc38cbf7b7127d3c3.tar.gz external_llvm-04d6c289ab28114af5471c4dc38cbf7b7127d3c3.tar.bz2 |
Remove NEON vaddl, vaddw, vsubl, and vsubw intrinsics. Instead, use llvm
IR add/sub operations with one or both operands sign- or zero-extended.
Auto-upgrade the old intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112416 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Bitcode/neon-intrinsics.ll')
-rw-r--r-- | test/Bitcode/neon-intrinsics.ll | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/Bitcode/neon-intrinsics.ll b/test/Bitcode/neon-intrinsics.ll index fe76514..d6d03d0 100644 --- a/test/Bitcode/neon-intrinsics.ll +++ b/test/Bitcode/neon-intrinsics.ll @@ -28,6 +28,54 @@ ; CHECK-NOT: arm.neon.vmovlu.v2i64 ; CHECK: zext <2 x i32> +; vaddl/vaddw should be auto-upgraded to add with sext/zext + +; CHECK: vaddls16 +; CHECK-NOT: arm.neon.vaddls.v4i32 +; CHECK: sext <4 x i16> +; CHECK-NEXT: sext <4 x i16> +; CHECK-NEXT: add <4 x i32> + +; CHECK: vaddlu32 +; CHECK-NOT: arm.neon.vaddlu.v2i64 +; CHECK: zext <2 x i32> +; CHECK-NEXT: zext <2 x i32> +; CHECK-NEXT: add <2 x i64> + +; CHECK: vaddws8 +; CHECK-NOT: arm.neon.vaddws.v8i16 +; CHECK: sext <8 x i8> +; CHECK-NEXT: add <8 x i16> + +; CHECK: vaddwu16 +; CHECK-NOT: arm.neon.vaddwu.v4i32 +; CHECK: zext <4 x i16> +; CHECK-NEXT: add <4 x i32> + +; vsubl/vsubw should be auto-upgraded to sub with sext/zext + +; CHECK: vsubls16 +; CHECK-NOT: arm.neon.vsubls.v4i32 +; CHECK: sext <4 x i16> +; CHECK-NEXT: sext <4 x i16> +; CHECK-NEXT: sub <4 x i32> + +; CHECK: vsublu32 +; CHECK-NOT: arm.neon.vsublu.v2i64 +; CHECK: zext <2 x i32> +; CHECK-NEXT: zext <2 x i32> +; CHECK-NEXT: sub <2 x i64> + +; CHECK: vsubws8 +; CHECK-NOT: arm.neon.vsubws.v8i16 +; CHECK: sext <8 x i8> +; CHECK-NEXT: sub <8 x i16> + +; CHECK: vsubwu16 +; CHECK-NOT: arm.neon.vsubwu.v4i32 +; CHECK: zext <4 x i16> +; CHECK-NEXT: sub <4 x i32> + ; vld* and vst* intrinsic calls need an alignment argument (defaulted to 1) ; CHECK: vld1i8 |