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

            Bug ID: 64807
           Summary: [5 Regression] Wrong-code because of wide-int division
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org
                CC: emsr at gcc dot gnu.org, jakub at gcc dot gnu.org,
                    nheghathivhistha at gmail dot com, segher at gcc dot 
gnu.org,
                    trippels at gcc dot gnu.org
        Depends on: 63504, 63988

/* { dg-do run { target int128 } } */
/* { dg-options "-O2" } */

__uint128_t
foo (void)
{
  __uint128_t a = -1;
  __uint128_t b = -1;
  return a / b;
}

int
main ()
{
  if (foo () != 1)
    __builtin_abort ();
  return 0;
}

is miscompiled starting with wide-int merge r210113.

Reply via email to