1  /* PR target/50749: Verify that subsequent post-increment addressings
       2     are generated.  */
       3  /* { dg-do compile }  */
       4  /* { dg-options "-O2" } */
       5  /* { dg-final { scan-assembler-times "mov.b\t@r\[0-9]\+\\+,r\[0-9]\+" 5 { xfail *-*-*} } } */
       6  /* { dg-final { scan-assembler-times "mov.w\t@r\[0-9]\+\\+,r\[0-9]\+" 5 { xfail *-*-*} } } */
       7  /* { dg-final { scan-assembler-times "mov.l\t@r\[0-9]\+\\+,r\[0-9]\+" 5 { xfail *-*-*} } } */
       8  
       9  char*
      10  test_func_00 (char* p, int* x)
      11  {
      12    int r = 0;
      13    r += *p++;
      14    r += *p++;
      15    *x = r;
      16    return p;
      17  }
      18  
      19  char*
      20  test_func_01 (char* p, int* x)
      21  {
      22    int r = 0;
      23    r += *p++;
      24    r += *p++;
      25    r += *p++;
      26    *x = r;
      27    return p;
      28  }
      29  
      30  short*
      31  test_func_02 (short* p, int* x)
      32  {
      33    int r = 0;
      34    r += *p++;
      35    r += *p++;
      36    *x = r;
      37    return p;
      38  }
      39  
      40  short*
      41  test_func_03 (short* p, int* x)
      42  {
      43    int r = 0;
      44    r += *p++;
      45    r += *p++;
      46    r += *p++;
      47    *x = r;
      48    return p;
      49  }
      50  
      51  int*
      52  test_func_04 (int* p, int* x)
      53  {
      54    int r = 0;
      55    r += *p++;
      56    r += *p++;
      57    *x = r;
      58    return p;
      59  }
      60  
      61  int*
      62  test_func_05 (int* p, int* x)
      63  {
      64    int r = 0;
      65    r += *p++;
      66    r += *p++;
      67    r += *p++;
      68    *x = r;
      69    return p;
      70  }