summaryrefslogtreecommitdiff
path: root/include/llvm/IR/IntrinsicsAArch64.td
diff options
context:
space:
mode:
authorJiangning Liu <jiangning.liu@arm.com>2013-10-05 08:22:10 +0000
committerJiangning Liu <jiangning.liu@arm.com>2013-10-05 08:22:10 +0000
commitbeb6afa84397a27e48a9d72ac1d588bc6fcaf564 (patch)
treee4c47d31248bdeca916aa69eb24edf9cdcf6685a /include/llvm/IR/IntrinsicsAArch64.td
parent936910d9293f7118056498c75c7bca79a7fc579c (diff)
downloadllvm-beb6afa84397a27e48a9d72ac1d588bc6fcaf564.tar.gz
llvm-beb6afa84397a27e48a9d72ac1d588bc6fcaf564.tar.bz2
llvm-beb6afa84397a27e48a9d72ac1d588bc6fcaf564.tar.xz
Implement aarch64 neon instruction set AdvSIMD (Across).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192028 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/IR/IntrinsicsAArch64.td')
-rw-r--r--include/llvm/IR/IntrinsicsAArch64.td19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/llvm/IR/IntrinsicsAArch64.td b/include/llvm/IR/IntrinsicsAArch64.td
index 4f7252d920..526ebefbf8 100644
--- a/include/llvm/IR/IntrinsicsAArch64.td
+++ b/include/llvm/IR/IntrinsicsAArch64.td
@@ -65,6 +65,25 @@ def int_aarch64_neon_vuqshrn : Neon_N2V_Narrow_Intrinsic;
def int_aarch64_neon_vsqrshrn : Neon_N2V_Narrow_Intrinsic;
def int_aarch64_neon_vuqrshrn : Neon_N2V_Narrow_Intrinsic;
+// Vector across
+class Neon_Across_Intrinsic
+ : Intrinsic<[llvm_anyvector_ty], [llvm_anyvector_ty], [IntrNoMem]>;
+
+class Neon_2Arg_Across_Float_Intrinsic
+ : Intrinsic<[llvm_anyvector_ty], [llvm_v4f32_ty], [IntrNoMem]>;
+
+def int_aarch64_neon_saddlv : Neon_Across_Intrinsic;
+def int_aarch64_neon_uaddlv : Neon_Across_Intrinsic;
+def int_aarch64_neon_smaxv : Neon_Across_Intrinsic;
+def int_aarch64_neon_umaxv : Neon_Across_Intrinsic;
+def int_aarch64_neon_sminv : Neon_Across_Intrinsic;
+def int_aarch64_neon_uminv : Neon_Across_Intrinsic;
+def int_aarch64_neon_vaddv : Neon_Across_Intrinsic;
+def int_aarch64_neon_vmaxv : Neon_Across_Intrinsic;
+def int_aarch64_neon_vminv : Neon_Across_Intrinsic;
+def int_aarch64_neon_vmaxnmv : Neon_Across_Intrinsic;
+def int_aarch64_neon_vminnmv : Neon_Across_Intrinsic;
+
// Scalar Add
def int_aarch64_neon_vaddds :
Intrinsic<[llvm_v1i64_ty], [llvm_v1i64_ty, llvm_v1i64_ty], [IntrNoMem]>;