https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128625

Uroš Bizjak <ubizjak at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2026-11-11
   Target Milestone|---                         |14.5
             Status|UNCONFIRMED                 |ASSIGNED
             Target|                            |x86_64
     Ever confirmed|0                           |1

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Zhiyang Chen from comment #0)

> Suspected cause: i386 classify_argument / construct_container: an aggregate
> with a V1TImode member gets one SSE eightbyte, with no SSEUP class for the
> second eightbyte.
Spot on. Patch in testing:

diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
index ad34cfeda02..8943da8b068 100644
--- a/gcc/config/i386/i386.cc
+++ b/gcc/config/i386/i386.cc
@@ -2701,10 +2701,10 @@ classify_argument (machine_mode mode, const_tree type,
     case E_V8BFmode:
     case E_V2DFmode:
     case E_V2DImode:
+    case E_V1TImode:
       classes[0] = X86_64_SSE_CLASS;
       classes[1] = X86_64_SSEUP_CLASS;
       return 2;
-    case E_V1TImode:
     case E_V1DImode:
     case E_V2SFmode:
     case E_V2SImode:


> 
> Known to fail: 7.5.0, 8.5.0, 10.5.0, 11.4.0, 12.5.0, 13.4.0, 14.3.0, 15.2.0,
> 16.2.0, 17.0.
> 
> -O0 -fsanitize=undefined,address is clean.
> 
> gcc version 17.0.0 20261111 (experimental) (a2a11abfad3), x86_64-pc-linux-gnu
> Configured with: --enable-languages=c,c++ --disable-multilib
> --disable-bootstrap --enable-checking=release

Reply via email to