1  /* { dg-options "-O2" } */
       2  void
       3  f1 (int *p, int x)
       4  {
       5    asm ("asm1 %0" : "=es" (p[x]));
       6  }
       7  
       8  void
       9  f2 (int *p)
      10  {
      11    while (1)
      12      {
      13        p += 4;
      14        asm ("asm2%U0 %0" : "=m<>" (*p));
      15      }
      16  }
      17  
      18  void
      19  f3 (int *p)
      20  {
      21    while (1)
      22      {
      23        p += 4;
      24        asm ("asm3%U0 %0" : "=es" (*p));
      25      }
      26  }
      27  
      28  void
      29  f4 (int *p)
      30  {
      31    asm ("asm4 %0" : "=es" (p[100]));
      32  }
      33  
      34  /* { dg-final { scan-assembler "asm1 %?r?3,%?r?4" } } */
      35  /* { dg-final { scan-assembler "asm2u 16\\(%?r?3\\)" } } */
      36  /* { dg-final { scan-assembler "asm3 0\\(%?r?3\\)" } } */
      37  /* { dg-final { scan-assembler "asm4 400\\(%?r?3\\)" } } */