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); }