On Mittwoch, 15. Mai 2024 04:20:51 MESZ Jiang, Haochen wrote: > I am little concerned about the file size, but let me give a try if you can > see the attachment.
Thank you. Since you only executed one test it's not that bad (it's hard to read without a few abbreviation substitutions). Anyway, it's a clear pattern: all __vector(2) T where T is a 32-bit integral type conversions to _SimdWrapper don't compile. x86 -m32 needs some special care for these, because GCC happily starts emitting MMX instructions without cleaning up with EMMS. So these vector types are poison and need never be uttered. That's why the conversion is actually not well-formed with -m32. But now that I established a theory of why this fails for you, I still need to figure out why I can't reproduce it. It's going to be hard to reliably fix this and to not repeat the issue if I can't get this to fail. I've tested x86_64 multilib with -m32 and even -mx32 locally and cannot find any issue. 😟 - Matthias -- ────────────────────────────────────────────────────────────────────────── Dr. Matthias Kretz https://mattkretz.github.io GSI Helmholtz Center for Heavy Ion Research https://gsi.de std::simd ──────────────────────────────────────────────────────────────────────────