summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@codeaurora.org>2013-11-11 18:04:22 +0000
committerChad Rosier <mcrosier@codeaurora.org>2013-11-11 18:04:22 +0000
commit249c714bb4cd00f859d5ca7e3c0d48a0d845965c (patch)
treeb7d4974f9e84a211f61b234663c7a26bc7be45dd /clang/lib/CodeGen
parent35575e737ceb439838cab79791727c8586295cb5 (diff)
downloadbcm5719-llvm-249c714bb4cd00f859d5ca7e3c0d48a0d845965c.tar.gz
bcm5719-llvm-249c714bb4cd00f859d5ca7e3c0d48a0d845965c.zip
[AArch64] Add support for NEON scalar floating-point convert to fixed-point instructions.
llvm-svn: 194395
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/CGBuiltin.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index f892d12372e..5ced54360fa 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -2384,6 +2384,20 @@ static Value *EmitAArch64ScalarBuiltinExpr(CodeGenFunction &CGF,
case AArch64::BI__builtin_neon_vcvtd_n_f64_u64:
Int = Intrinsic::aarch64_neon_vcvtf64_n_u64;
s = "vcvtf"; OverloadInt = false; break;
+ // Scalar Floating-point Convert To Signed Fixed-point (Immediate)
+ case AArch64::BI__builtin_neon_vcvts_n_s32_f32:
+ Int = Intrinsic::aarch64_neon_vcvts_n_s32_f32;
+ s = "fcvtzs"; OverloadInt = false; break;
+ case AArch64::BI__builtin_neon_vcvtd_n_s64_f64:
+ Int = Intrinsic::aarch64_neon_vcvtd_n_s64_f64;
+ s = "fcvtzs"; OverloadInt = false; break;
+ // Scalar Floating-point Convert To Unsigned Fixed-point (Immediate)
+ case AArch64::BI__builtin_neon_vcvts_n_u32_f32:
+ Int = Intrinsic::aarch64_neon_vcvts_n_u32_f32;
+ s = "fcvtzu"; OverloadInt = false; break;
+ case AArch64::BI__builtin_neon_vcvtd_n_u64_f64:
+ Int = Intrinsic::aarch64_neon_vcvtd_n_u64_f64;
+ s = "fcvtzu"; OverloadInt = false; break;
}
if (!Int)
OpenPOWER on IntegriCloud