[clang] [CIR][NEON] Add lowering for `vnegd_s64` and `vnegh_f16` (PR #180597)

Andrzej Warzyński via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 10 04:35:46 PST 2026


================
@@ -6299,6 +6299,10 @@ Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,
     Ops[0] = Builder.CreateICmp(P, Ops[0], Ops[1]);
     return Builder.CreateSExt(Ops[0], Int64Ty, "vceqd");
   }
+  case NEON::BI__builtin_neon_vnegd_s64:
----------------
banach-space wrote:

Note, there are two big switch statements for NEON builtins:
* One for [overloaded](https://github.com/llvm/llvm-project/blob/20d3aa944fb5cdbeb7e855fcd0800abd6d4a7842/clang/lib/CodeGen/TargetBuiltins/ARM.cpp?plain=1#L6713-L7913) builtins.
* One for [non-oveloaded](https://github.com/llvm/llvm-project/blob/20d3aa944fb5cdbeb7e855fcd0800abd6d4a7842/clang/lib/CodeGen/TargetBuiltins/ARM.cpp?plain=1#L5937-L6689) builtins.

Those two builtins (and many others) have been misplaced, hence the move.

I am happy to extract this change to a dedicated patch, though the motivation here is to keep ARM.cpp and CIRGenBuiltinAArch64.cpp‎ consistent, so it makes sense to update both at the same time.

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


More information about the cfe-commits mailing list