https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79341

--- Comment #37 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The overflow-vec-1.c and vec-2.c on -m64 fail also on ppc64{,le}.
Minimum failing testcase is:
#define SCHAR_MAX __SCHAR_MAX__
#define SCHAR_MIN (-__SCHAR_MAX__ - 1)
typedef signed char VC __attribute__((vector_size (16)));
void __attribute__((noinline,noclone))
checkvc (VC i, VC j)
{
  if (__builtin_memcmp (&i, &j, sizeof (VC)))
    __builtin_abort ();
}
int
main (void)
{
  /* Check that for a vector operation, only the first element with UB is
reported.  */
  volatile VC a = (VC) { 0, SCHAR_MAX - 2, SCHAR_MAX - 2, 3, 2, 3, 4, 5,  0, 7,
 1,  2,  3, 4,  SCHAR_MAX - 13, SCHAR_MAX };
  volatile VC b = (VC) { 5, 2,             1,             5, 0, 1, 2, 7,  8, 9,
 10, 11, 6, -2, 13,             0 };
  volatile VC k = b + a;
  checkvc (k,     (VC) { 5, SCHAR_MAX,     SCHAR_MAX - 1, 8, 2, 4, 6, 12, 8,
16, 11, 13, 9, 2,  SCHAR_MAX,      SCHAR_MAX });
  return 0;
}
Looking into that now.

Reply via email to