[clang] [llvm] [mlir] [CIR] Expand callee-side va_arg on x86_64 (PR #222420)

Adam Smith via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 15 09:53:45 PDT 2026


================
@@ -1059,6 +980,48 @@ void rewriteIndirectReturnCall(cir::CallOp call,
   call->erase();
 }
 
+/// Whether \p ty is an eightbyte that travels in a vector register.  An x87
+/// long double is floating-point but travels in neither register class, so it
+/// is excluded.  A caller reads a false result as the integer class.
+bool isSSERegisterClass(mlir::Type ty) {
+  if (mlir::isa<cir::VectorType>(ty))
----------------
adams381 wrote:

Agreed, and that is exactly the kind of assumption this no longer makes.  The demand comes from the classifier now, which already accounts for the AVX level, so the fetch never re-decides the class from the type.

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


More information about the cfe-commits mailing list