1  /* Check that loads from volatile mems utilize post-increment addressing
       2     modes and do not result in redundant sign extensions. */
       3  /* { dg-do compile }  */
       4  /* { dg-options "-O1" } */
       5  /* { dg-final { scan-assembler-times "@r\[0-9\]\+\\+," 3 } } */
       6  /* { dg-final { scan-assembler-not "exts" } } */
       7  
       8  volatile char*
       9  test_00 (volatile char* x)
      10  {
      11    int xx = *x++;
      12    return x;
      13  }
      14  
      15  volatile short*
      16  test_01 (volatile short* x)
      17  {
      18    int xx = *x++;
      19    return x;
      20  }
      21  
      22  volatile int*
      23  test_02 (volatile int* x)
      24  {
      25    int xx = *x++;
      26    return x;
      27  }