/* { dg-options "-O2" } */ void f1 (int *p, int x) { asm ("asm1 %0" : "=es" (p[x])); } void f2 (int *p) { while (1) { p += 4; asm ("asm2%U0 %0" : "=m<>" (*p)); } } void f3 (int *p) { while (1) { p += 4; asm ("asm3%U0 %0" : "=es" (*p)); } } void f4 (int *p) { asm ("asm4 %0" : "=es" (p[100])); } /* { dg-final { scan-assembler "asm1 %?r?3,%?r?4" } } */ /* { dg-final { scan-assembler "asm2u 16\\(%?r?3\\)" } } */ /* { dg-final { scan-assembler "asm3 0\\(%?r?3\\)" } } */ /* { dg-final { scan-assembler "asm4 400\\(%?r?3\\)" } } */