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