https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119067
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86_64 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2025-02-28 Component|lto |target --- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced testcase: file0.cc: ``` typedef char __v32qi __attribute__ ((__vector_size__ (32))); __v32qi g(__v32qi lo, __v32qi planar) { return __builtin_ia32_pshufb256(lo, planar); } ``` file1.c: ``` #pragma GCC push_options #pragma GCC target("avx2") typedef char __v32qi __attribute__ ((__vector_size__ (32))); __v32qi f(__v32qi lo, __v32qi planar) { return __builtin_ia32_pshufb256(lo, planar); } #pragma GCC pop_options ``` Compile with: ``` g++ -c -fPIC -O2 -mavx2 -flto file0.cc g++ -c -fPIC -O2 -flto file1.cc g++ file0.o file1.o ``` Confirmed. There has to be some target specific issues with the builtins here.