diff options
| author | Chad Rosier <mcrosier@codeaurora.org> | 2013-10-15 21:19:02 +0000 |
|---|---|---|
| committer | Chad Rosier <mcrosier@codeaurora.org> | 2013-10-15 21:19:02 +0000 |
| commit | a70fb7b71664e6c1e712c635b9001dfd18581955 (patch) | |
| tree | 7e79c943a810f789c544792ffbffac558bfcda8a /clang/lib/CodeGen/CGBuiltin.cpp | |
| parent | 9d51708677e7113f2e57a3bf6c17f6989f28a1d1 (diff) | |
| download | bcm5719-llvm-a70fb7b71664e6c1e712c635b9001dfd18581955.tar.gz bcm5719-llvm-a70fb7b71664e6c1e712c635b9001dfd18581955.zip | |
[AArch64] Add support for NEON scalar signed saturating absolute value and
scalar signed saturating negate instructions.
llvm-svn: 192734
Diffstat (limited to 'clang/lib/CodeGen/CGBuiltin.cpp')
| -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 e5361eeebe2..361758c51b4 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -2074,6 +2074,20 @@ static Value *EmitAArch64ScalarBuiltinExpr(CodeGenFunction &CGF, case AArch64::BI__builtin_neon_vtstd_u64: Int = Intrinsic::aarch64_neon_vtstd; s = "vtst"; OverloadInt = false; break; + // Scalar Signed Saturating Absolute Value + case AArch64::BI__builtin_neon_vqabsb_s8: + case AArch64::BI__builtin_neon_vqabsh_s16: + case AArch64::BI__builtin_neon_vqabss_s32: + case AArch64::BI__builtin_neon_vqabsd_s64: + Int = Intrinsic::arm_neon_vqabs; + s = "vqabs"; OverloadInt = true; break; + // Scalar Signed Saturating Negate + case AArch64::BI__builtin_neon_vqnegb_s8: + case AArch64::BI__builtin_neon_vqnegh_s16: + case AArch64::BI__builtin_neon_vqnegs_s32: + case AArch64::BI__builtin_neon_vqnegd_s64: + Int = Intrinsic::arm_neon_vqneg; + s = "vqneg"; OverloadInt = true; break; } if (!Int) |

