https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106755
--- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> --- So the tests (I've removed all static inline usage and always use -fno-inline) pass with -O1 and fail with -O2 and -O3. Looking at all of the optimizations enabled by -O2 that are not in -O1 and using -fno-* for them, the only option that allows the tests to pass with -O2 is -fno-strict-aliasing. That said, -Wall and -Wstrict-aliasing do not flag any warnings with the code. I suppose they could miss some issues in the test case code??? In addition, if I move the vec_muludq() function to its own source file, then the tests pass with -O2 and -O3.