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.

Reply via email to