]> granicus.if.org Git - clang/commitdiff
[AArch64] Refactor the NEON scalar floating-point reciprocal step and
authorChad Rosier <mcrosier@codeaurora.org>
Wed, 11 Dec 2013 21:03:54 +0000 (21:03 +0000)
committerChad Rosier <mcrosier@codeaurora.org>
Wed, 11 Dec 2013 21:03:54 +0000 (21:03 +0000)
floating-point reciprocal square root step LLVM AArch64 intrinsics to
use f32/f64 types, rather than their vector equivalents.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197070 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGBuiltin.cpp

index 7cef28cb86d431c25d8f3a10c151c51cd4e3bc58..e64641fc6e11c4b6cfcb86122fed056b4b394e59 100644 (file)
@@ -2118,16 +2118,16 @@ static Value *EmitAArch64ScalarBuiltinExpr(CodeGenFunction &CGF,
   case AArch64::BI__builtin_neon_vqrdmulhs_s32:
     Int = Intrinsic::arm_neon_vqrdmulh;
     s = "vqrdmulh"; IntTypes = VectorRet; break;
-  // Scalar Floating-point Reciprocal Step and
+  // Scalar Floating-point Reciprocal Step
   case AArch64::BI__builtin_neon_vrecpss_f32:
   case AArch64::BI__builtin_neon_vrecpsd_f64:
-    Int = Intrinsic::arm_neon_vrecps;
-    s = "vrecps"; IntTypes = VectorRet; break;
+    Int = Intrinsic::aarch64_neon_vrecps;
+    s = "vrecps"; IntTypes = ScalarRet; break;
   // Scalar Floating-point Reciprocal Square Root Step
   case AArch64::BI__builtin_neon_vrsqrtss_f32:
   case AArch64::BI__builtin_neon_vrsqrtsd_f64:
-    Int = Intrinsic::arm_neon_vrsqrts;
-    s = "vrsqrts"; IntTypes = VectorRet; break;
+    Int = Intrinsic::aarch64_neon_vrsqrts;
+    s = "vrsqrts"; IntTypes = ScalarRet; break;
   // Scalar Signed Integer Convert To Floating-point
   case AArch64::BI__builtin_neon_vcvts_f32_s32:
   case AArch64::BI__builtin_neon_vcvtd_f64_s64: