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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Reduced testcase with -O2 -fno-omit-frame-pointer -march=pentium-mmx -m32:

typedef struct { long long a; } a_t;
int *a, b;
a_t *e, c;
long long f;
void fn (int);
void fn2 (void);
int fn3 (a_t);
void fn4 (a_t);
a_t foo (long long val) { return (a_t){val}; }
static void
bar (int ka)
{
  unsigned i;
  for (i = 0; i < 512; i++) {
    long d;
    c = (a_t){d};
    fn2 ();
  }
  fn (ka);
}
void
test (void)
{
  a_t g;
  a_t *h, j;
  h = e;
  j = *h;
  if (e == (a_t *) 1) {
    a_t k = {fn3 (j)};
    fn4 (j);
    long l;
    g = foo((long long)b << 2 | l);
    k = g;
    if (j.a != k.a) {
      a_t m = g;
      int n = m.a, o = m.a >> 32;
      asm ("" : "=m"(*a), "+A"(f) : "b"(n), "c"(o));
    }
  }
  bar ((int) h);
}

Reply via email to