diff options
| author | Chad Rosier <mcrosier@codeaurora.org> | 2013-10-08 22:09:29 +0000 |
|---|---|---|
| committer | Chad Rosier <mcrosier@codeaurora.org> | 2013-10-08 22:09:29 +0000 |
| commit | 0a903478c642c19b416aacdbef3e2e1859b11c18 (patch) | |
| tree | 1c498e2748c1cb32ede5e134961efee6f384dab4 /clang/lib/CodeGen/CGBuiltin.cpp | |
| parent | 9849cc6696c41e58c6cb56e681fbd94a7890d76e (diff) | |
| download | bcm5719-llvm-0a903478c642c19b416aacdbef3e2e1859b11c18.tar.gz bcm5719-llvm-0a903478c642c19b416aacdbef3e2e1859b11c18.zip | |
[AArch64] Add support for NEON scalar floating-point reciprocal estimate,
reciprocal exponent, and reciprocal square root estimate instructions.
llvm-svn: 192243
Diffstat (limited to 'clang/lib/CodeGen/CGBuiltin.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index a2b0bbc2829..8378d991714 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -1985,6 +1985,21 @@ static Value *EmitAArch64ScalarBuiltinExpr(CodeGenFunction &CGF, case AArch64::BI__builtin_neon_vcvtd_f64_u64: Int = Intrinsic::aarch64_neon_vcvtf64_u64, s = "vcvtf"; OverloadInt = false; break; + // Scalar Floating-point Reciprocal Estimate + case AArch64::BI__builtin_neon_vrecpes_f32: + case AArch64::BI__builtin_neon_vrecped_f64: + Int = Intrinsic::arm_neon_vrecpe; + s = "vrecpe"; OverloadInt = true; break; + // Scalar Floating-point Reciprocal Exponent + case AArch64::BI__builtin_neon_vrecpxs_f32: + case AArch64::BI__builtin_neon_vrecpxd_f64: + Int = Intrinsic::aarch64_neon_vrecpx; + s = "vrecpx"; OverloadInt = true; break; + // Scalar Floating-point Reciprocal Square Root Estimate + case AArch64::BI__builtin_neon_vrsqrtes_f32: + case AArch64::BI__builtin_neon_vrsqrted_f64: + Int = Intrinsic::arm_neon_vrsqrte; + s = "vrsqrte"; OverloadInt = true; break; } if (!Int) |

