[clang] [Clang][AArch64] Lower NEON fcvtz{u/s} intrinsics into fpto{u/s}i.sat (PR #191365)

Eli Friedman via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 10 10:01:09 PDT 2026


================
@@ -1384,6 +1384,12 @@ Value *CodeGenFunction::EmitCommonNeonBuiltinExpr(
   case NEON::BI__builtin_neon_vcvtq_s16_f16:
   case NEON::BI__builtin_neon_vcvtq_u16_f16: {
     Ops[0] = Builder.CreateBitCast(Ops[0], GetFloatNeonType(this, Type));
+    // AArch64 uses saturating FP-to-int intrinsics; ARM uses plain
+    // fptoui/fptosi.
----------------
efriedma-quic wrote:

Plain fptosi is extremely dubious... we should probably be using the intrinsic for 32-bit as well.

https://github.com/llvm/llvm-project/pull/191365


More information about the cfe-commits mailing list