https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101423
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- OK, so the issue is that there's no scalar trapping operation but gimple_could_trap_p returns true for the internal function calls used by SLP pattern recog, in this case .VEC_ADDSUB. gimple_could_trap_p_1 just has case GIMPLE_CALL: t = gimple_call_fndecl (s); /* Assume that calls to weak functions may trap. */ if (!t || !DECL_P (t) || DECL_WEAK (t)) return true; return false; but internal functions do not have a decl. I suppose this wants to test for indirect calls in addition to calls to weak functions which means it's off for internal functions.