[clang] [clang][CIR] Add lowering for Neon rounding builtins (PR #195021)

via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 4 04:18:12 PDT 2026


================
@@ -915,6 +918,27 @@ static mlir::Value emitCommonNeonBuiltinExpr(
                      std::string("unimplemented AArch64 builtin call: ") +
                          cgf.getContext().BuiltinInfo.getName(builtinID));
     break;
+  case NEON::BI__builtin_neon_vrnd32x_f32:
+  case NEON::BI__builtin_neon_vrnd32xq_f32:
+  case NEON::BI__builtin_neon_vrnd32x_f64:
+  case NEON::BI__builtin_neon_vrnd32xq_f64:
+  case NEON::BI__builtin_neon_vrnd32z_f32:
+  case NEON::BI__builtin_neon_vrnd32zq_f32:
+  case NEON::BI__builtin_neon_vrnd32z_f64:
+  case NEON::BI__builtin_neon_vrnd32zq_f64:
+  case NEON::BI__builtin_neon_vrnd64x_f32:
+  case NEON::BI__builtin_neon_vrnd64xq_f32:
+  case NEON::BI__builtin_neon_vrnd64x_f64:
+  case NEON::BI__builtin_neon_vrnd64xq_f64:
+  case NEON::BI__builtin_neon_vrnd64z_f32:
+  case NEON::BI__builtin_neon_vrnd64zq_f32:
+  case NEON::BI__builtin_neon_vrnd64z_f64:
+  case NEON::BI__builtin_neon_vrnd64zq_f64: {
----------------
AbdallahRashed wrote:

the original code is dead, without any changes  it will never hit the errorNYI, because The vrnd32x/64x builtins are NEONMAP1 entries in AArch64SIMDIntrinsicMap so in this check https://github.com/llvm/llvm-project/blob/f6e4e71fcdbff98cb060f87695c75f00b43bf918/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp?plain=1#L2252  it will be routed to emitCommonNeonBuiltinsExpr even before going to the switch case. 

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


More information about the cfe-commits mailing list