diff --git a/clang/include/clang/Basic/BuiltinsAArch64.def b/clang/include/clang/Basic/BuiltinsAArch64.def --- a/clang/include/clang/Basic/BuiltinsAArch64.def +++ b/clang/include/clang/Basic/BuiltinsAArch64.def @@ -107,14 +107,14 @@ BUILTIN(__builtin_arm_ttest, "WUi", "nc") // Armv8.5-A FP rounding intrinsics -BUILTIN(__builtin_arm_frint32zf, "ff", "") -BUILTIN(__builtin_arm_frint32z, "dd", "") -BUILTIN(__builtin_arm_frint64zf, "ff", "") -BUILTIN(__builtin_arm_frint64z, "dd", "") -BUILTIN(__builtin_arm_frint32xf, "ff", "") -BUILTIN(__builtin_arm_frint32x, "dd", "") -BUILTIN(__builtin_arm_frint64xf, "ff", "") -BUILTIN(__builtin_arm_frint64x, "dd", "") +BUILTIN(__builtin_arm_rint32zf, "ff", "") +BUILTIN(__builtin_arm_rint32z, "dd", "") +BUILTIN(__builtin_arm_rint64zf, "ff", "") +BUILTIN(__builtin_arm_rint64z, "dd", "") +BUILTIN(__builtin_arm_rint32xf, "ff", "") +BUILTIN(__builtin_arm_rint32x, "dd", "") +BUILTIN(__builtin_arm_rint64xf, "ff", "") +BUILTIN(__builtin_arm_rint64x, "dd", "") // Armv8.5-A Random number generation intrinsics BUILTIN(__builtin_arm_rndr, "iWUi*", "n") diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -9538,32 +9538,32 @@ "cls"); } - if (BuiltinID == clang::AArch64::BI__builtin_arm_frint32zf || - BuiltinID == clang::AArch64::BI__builtin_arm_frint32z) { + if (BuiltinID == clang::AArch64::BI__builtin_arm_rint32zf || + BuiltinID == clang::AArch64::BI__builtin_arm_rint32z) { llvm::Value *Arg = EmitScalarExpr(E->getArg(0)); llvm::Type *Ty = Arg->getType(); return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::aarch64_frint32z, Ty), Arg, "frint32z"); } - if (BuiltinID == clang::AArch64::BI__builtin_arm_frint64zf || - BuiltinID == clang::AArch64::BI__builtin_arm_frint64z) { + if (BuiltinID == clang::AArch64::BI__builtin_arm_rint64zf || + BuiltinID == clang::AArch64::BI__builtin_arm_rint64z) { llvm::Value *Arg = EmitScalarExpr(E->getArg(0)); llvm::Type *Ty = Arg->getType(); return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::aarch64_frint64z, Ty), Arg, "frint64z"); } - if (BuiltinID == clang::AArch64::BI__builtin_arm_frint32xf || - BuiltinID == clang::AArch64::BI__builtin_arm_frint32x) { + if (BuiltinID == clang::AArch64::BI__builtin_arm_rint32xf || + BuiltinID == clang::AArch64::BI__builtin_arm_rint32x) { llvm::Value *Arg = EmitScalarExpr(E->getArg(0)); llvm::Type *Ty = Arg->getType(); return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::aarch64_frint32x, Ty), Arg, "frint32x"); } - if (BuiltinID == clang::AArch64::BI__builtin_arm_frint64xf || - BuiltinID == clang::AArch64::BI__builtin_arm_frint64x) { + if (BuiltinID == clang::AArch64::BI__builtin_arm_rint64xf || + BuiltinID == clang::AArch64::BI__builtin_arm_rint64x) { llvm::Value *Arg = EmitScalarExpr(E->getArg(0)); llvm::Type *Ty = Arg->getType(); return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::aarch64_frint64x, Ty), diff --git a/clang/lib/Headers/arm_acle.h b/clang/lib/Headers/arm_acle.h --- a/clang/lib/Headers/arm_acle.h +++ b/clang/lib/Headers/arm_acle.h @@ -642,43 +642,43 @@ /* Armv8.5-A FP rounding intrinsics */ #if defined(__ARM_64BIT_STATE) && __ARM_64BIT_STATE && defined(__ARM_FEATURE_FRINT) static __inline__ float __attribute__((__always_inline__, __nodebug__)) -__frint32zf(float __a) { - return __builtin_arm_frint32zf(__a); +__rint32zf(float __a) { + return __builtin_arm_rint32zf(__a); } static __inline__ double __attribute__((__always_inline__, __nodebug__)) -__frint32z(double __a) { - return __builtin_arm_frint32z(__a); +__rint32z(double __a) { + return __builtin_arm_rint32z(__a); } static __inline__ float __attribute__((__always_inline__, __nodebug__)) -__frint64zf(float __a) { - return __builtin_arm_frint64zf(__a); +__rint64zf(float __a) { + return __builtin_arm_rint64zf(__a); } static __inline__ double __attribute__((__always_inline__, __nodebug__)) -__frint64z(double __a) { - return __builtin_arm_frint64z(__a); +__rint64z(double __a) { + return __builtin_arm_rint64z(__a); } static __inline__ float __attribute__((__always_inline__, __nodebug__)) -__frint32xf(float __a) { - return __builtin_arm_frint32xf(__a); +__rint32xf(float __a) { + return __builtin_arm_rint32xf(__a); } static __inline__ double __attribute__((__always_inline__, __nodebug__)) -__frint32x(double __a) { - return __builtin_arm_frint32x(__a); +__rint32x(double __a) { + return __builtin_arm_rint32x(__a); } static __inline__ float __attribute__((__always_inline__, __nodebug__)) -__frint64xf(float __a) { - return __builtin_arm_frint64xf(__a); +__rint64xf(float __a) { + return __builtin_arm_rint64xf(__a); } static __inline__ double __attribute__((__always_inline__, __nodebug__)) -__frint64x(double __a) { - return __builtin_arm_frint64x(__a); +__rint64x(double __a) { + return __builtin_arm_rint64x(__a); } #endif diff --git a/clang/test/CodeGen/aarch64-v8.5a-scalar-frint3264-intrinsic.c b/clang/test/CodeGen/aarch64-v8.5a-scalar-frint3264-intrinsic.c --- a/clang/test/CodeGen/aarch64-v8.5a-scalar-frint3264-intrinsic.c +++ b/clang/test/CodeGen/aarch64-v8.5a-scalar-frint3264-intrinsic.c @@ -7,58 +7,58 @@ #include -// CHECK-LABEL: test_frint32zf +// CHECK-LABEL: test_rint32zf // CHECK: [[RND:%.*]] = call float @llvm.aarch64.frint32z.f32(float %a) // CHECK: ret float [[RND]] -float test_frint32zf(float a) { - return __frint32zf(a); +float test_rint32zf(float a) { + return __rint32zf(a); } -// CHECK-LABEL: test_frint32z +// CHECK-LABEL: test_rint32z // CHECK: [[RND:%.*]] = call double @llvm.aarch64.frint32z.f64(double %a) // CHECK: ret double [[RND]] -double test_frint32z(double a) { - return __frint32z(a); +double test_rint32z(double a) { + return __rint32z(a); } -// CHECK-LABEL: test_frint64zf +// CHECK-LABEL: test_rint64zf // CHECK: [[RND:%.*]] = call float @llvm.aarch64.frint64z.f32(float %a) // CHECK: ret float [[RND]] -float test_frint64zf(float a) { - return __frint64zf(a); +float test_rint64zf(float a) { + return __rint64zf(a); } -// CHECK-LABEL: test_frint64z +// CHECK-LABEL: test_rint64z // CHECK: [[RND:%.*]] = call double @llvm.aarch64.frint64z.f64(double %a) // CHECK: ret double [[RND]] -double test_frint64z(double a) { - return __frint64z(a); +double test_rint64z(double a) { + return __rint64z(a); } -// CHECK-LABEL: test_frint32xf +// CHECK-LABEL: test_rint32xf // CHECK: [[RND:%.*]] = call float @llvm.aarch64.frint32x.f32(float %a) // CHECK: ret float [[RND]] -float test_frint32xf(float a) { - return __frint32xf(a); +float test_rint32xf(float a) { + return __rint32xf(a); } -// CHECK-LABEL: test_frint32x +// CHECK-LABEL: test_rint32x // CHECK: [[RND:%.*]] = call double @llvm.aarch64.frint32x.f64(double %a) // CHECK: ret double [[RND]] -double test_frint32x(double a) { - return __frint32x(a); +double test_rint32x(double a) { + return __rint32x(a); } -// CHECK-LABEL: test_frint64xf +// CHECK-LABEL: test_rint64xf // CHECK: [[RND:%.*]] = call float @llvm.aarch64.frint64x.f32(float %a) // CHECK: ret float [[RND]] -float test_frint64xf(float a) { - return __frint64xf(a); +float test_rint64xf(float a) { + return __rint64xf(a); } -// CHECK-LABEL: test_frint64x +// CHECK-LABEL: test_rint64x // CHECK: [[RND:%.*]] = call double @llvm.aarch64.frint64x.f64(double %a) // CHECK: ret double [[RND]] -double test_frint64x(double a) { - return __frint64x(a); +double test_rint64x(double a) { + return __rint64x(a); }