[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