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.