diff options
author | Chad Rosier <mcrosier@codeaurora.org> | 2013-10-16 16:09:16 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@codeaurora.org> | 2013-10-16 16:09:16 +0000 |
commit | 069b90463d933b7d5756402178d11de3f6223d1a (patch) | |
tree | edcd8415e349aceba01fabfef9d4625047f22559 /clang/lib/CodeGen | |
parent | 178b1cefc7e633433e6245818244bf7d30a198a4 (diff) | |
download | bcm5719-llvm-069b90463d933b7d5756402178d11de3f6223d1a.tar.gz bcm5719-llvm-069b90463d933b7d5756402178d11de3f6223d1a.zip |
[AArch64] Add support for NEON scalar signed saturating accumulated of unsigned
value and unsigned saturating accumulate of signed value instructions.
llvm-svn: 192801
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 361758c51b4..41ca24ed832 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -2088,6 +2088,20 @@ static Value *EmitAArch64ScalarBuiltinExpr(CodeGenFunction &CGF, case AArch64::BI__builtin_neon_vqnegd_s64: Int = Intrinsic::arm_neon_vqneg; s = "vqneg"; OverloadInt = true; break; + // Scalar Signed Saturating Accumulated of Unsigned Value + case AArch64::BI__builtin_neon_vuqaddb_s8: + case AArch64::BI__builtin_neon_vuqaddh_s16: + case AArch64::BI__builtin_neon_vuqadds_s32: + case AArch64::BI__builtin_neon_vuqaddd_s64: + Int = Intrinsic::aarch64_neon_vuqadd; + s = "vuqadd"; OverloadInt = true; break; + // Scalar Unsigned Saturating Accumulated of Unsigned Value + case AArch64::BI__builtin_neon_vsqaddb_u8: + case AArch64::BI__builtin_neon_vsqaddh_u16: + case AArch64::BI__builtin_neon_vsqadds_u32: + case AArch64::BI__builtin_neon_vsqaddd_u64: + Int = Intrinsic::aarch64_neon_vsqadd; + s = "vsqadd"; OverloadInt = true; break; } if (!Int) |