[AArch64] Add missing NEON scalar floating-point to integer convert ACLEs.

llvm-svn: 196152
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
index 00e6bd1..3031dcb 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -2112,6 +2112,7 @@
   case AArch64::BI__builtin_neon_vcvts_f32_s32:
     Int = Intrinsic::aarch64_neon_vcvtf32_s32,
     s = "vcvtf"; OverloadInt = false; break;
+  case AArch64::BI__builtin_neon_vcvt_f64_s64:
   case AArch64::BI__builtin_neon_vcvtd_f64_s64:
     Int = Intrinsic::aarch64_neon_vcvtf64_s64,
     s = "vcvtf"; OverloadInt = false; break;
@@ -2119,6 +2120,7 @@
   case AArch64::BI__builtin_neon_vcvts_f32_u32:
     Int = Intrinsic::aarch64_neon_vcvtf32_u32,
     s = "vcvtf"; OverloadInt = false; break;
+  case AArch64::BI__builtin_neon_vcvt_f64_u64:
   case AArch64::BI__builtin_neon_vcvtd_f64_u64:
     Int = Intrinsic::aarch64_neon_vcvtf64_u64,
     s = "vcvtf"; OverloadInt = false; break;
@@ -2128,42 +2130,52 @@
     s = "vcvtxn"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvtas_s32_f32:
   case AArch64::BI__builtin_neon_vcvtad_s64_f64:
+  case AArch64::BI__builtin_neon_vcvta_s64_f64:
     Int = Intrinsic::aarch64_neon_fcvtas;
     s = "vcvtas"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvtas_u32_f32:
   case AArch64::BI__builtin_neon_vcvtad_u64_f64:
+  case AArch64::BI__builtin_neon_vcvta_u64_f64:
     Int = Intrinsic::aarch64_neon_fcvtau;
     s = "vcvtau"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvtms_s32_f32:
   case AArch64::BI__builtin_neon_vcvtmd_s64_f64:
+  case AArch64::BI__builtin_neon_vcvtm_s64_f64:
     Int = Intrinsic::aarch64_neon_fcvtms;
     s = "vcvtms"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvtms_u32_f32:
   case AArch64::BI__builtin_neon_vcvtmd_u64_f64:
+  case AArch64::BI__builtin_neon_vcvtm_u64_f64:
     Int = Intrinsic::aarch64_neon_fcvtmu;
     s = "vcvtmu"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvtns_s32_f32:
   case AArch64::BI__builtin_neon_vcvtnd_s64_f64:
+  case AArch64::BI__builtin_neon_vcvtn_s64_f64:
     Int = Intrinsic::aarch64_neon_fcvtns;
     s = "vcvtns"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvtns_u32_f32:
   case AArch64::BI__builtin_neon_vcvtnd_u64_f64:
+  case AArch64::BI__builtin_neon_vcvtn_u64_f64:
     Int = Intrinsic::aarch64_neon_fcvtnu;
     s = "vcvtnu"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvtps_s32_f32:
   case AArch64::BI__builtin_neon_vcvtpd_s64_f64:
+  case AArch64::BI__builtin_neon_vcvtp_s64_f64:
     Int = Intrinsic::aarch64_neon_fcvtps;
     s = "vcvtps"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvtps_u32_f32:
   case AArch64::BI__builtin_neon_vcvtpd_u64_f64:
+  case AArch64::BI__builtin_neon_vcvtp_u64_f64:
     Int = Intrinsic::aarch64_neon_fcvtpu;
     s = "vcvtpu"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvts_s32_f32:
   case AArch64::BI__builtin_neon_vcvtd_s64_f64:
+  case AArch64::BI__builtin_neon_vcvt_s64_f64:
     Int = Intrinsic::aarch64_neon_fcvtzs;
     s = "vcvtzs"; OverloadCvtInt = true; break;
   case AArch64::BI__builtin_neon_vcvts_u32_f32:
   case AArch64::BI__builtin_neon_vcvtd_u64_f64:
+  case AArch64::BI__builtin_neon_vcvt_u64_f64:
     Int = Intrinsic::aarch64_neon_fcvtzu;
     s = "vcvtzu"; OverloadCvtInt = true; break;
   // Scalar Floating-point Reciprocal Estimate
@@ -2336,6 +2348,7 @@
     s = "vabs"; OverloadInt = false; break;
   // Scalar Absolute Difference
   case AArch64::BI__builtin_neon_vabds_f32:
+  case AArch64::BI__builtin_neon_vabd_f64:
   case AArch64::BI__builtin_neon_vabdd_f64:
     Int = Intrinsic::aarch64_neon_vabd;
     s = "vabd"; OverloadInt = true; break;