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

            Bug ID: 118696
           Summary: [15 Regression] qemu miscompilation on s390x
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org
  Target Milestone: ---

static inline __int128
foo (unsigned long long x, unsigned long long y)
{
  return (unsigned __int128) y << 64 | x;
}

__attribute__((noipa)) __int128
bar (__int128 x, __int128 y)
{
  return x < y ? x : y;
}

int
main ()
{
  __int128 a = foo (0x10000, 0);
  if (bar (foo (0, 1), a) != a)
    __builtin_abort ();
}

is miscompiled with -O0 -march=z13 or -O2 -march=z13 (but not e.g. -march=z10).
It is bar aka MIN_EXPR that is miscompiled, r15-7041 still works ok, r15-7054
fails.
Bisecting now.

Reply via email to