(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
sh/
pr39423-1.c
       1  /* Check that displacement addressing is used for indexed addresses with a
       2     small offset, instead of re-calculating the index.  */
       3  /* { dg-do compile }  */
       4  /* { dg-options "-O2" } */
       5  /* { dg-final { scan-assembler-not "add\t#1" } } */
       6  
       7  int
       8  test_00 (int tab[], int index)
       9  {
      10    return tab[index + 1];
      11  }
      12  
      13  int
      14  test_01 (short tab[], int index)
      15  {
      16    return tab[index + 1];
      17  }
      18  
      19  int
      20  test_02 (unsigned short tab[], int index)
      21  {
      22    return tab[index + 1];
      23  }
      24  
      25  int
      26  test_03 (long long tab[], int index)
      27  {
      28    return (int)tab[index + 1];
      29  }
      30  
      31  void
      32  test_04 (int tab[], int index, int val)
      33  {
      34    tab[index + 1] = val;
      35  }
      36  
      37  void
      38  test_05 (short tab[], int index, int val)
      39  {
      40    tab[index + 1] = (short)val;
      41  }
      42  
      43  void
      44  test_06 (unsigned short tab[], int index, int val)
      45  {
      46    tab[index + 1] = (unsigned short)val;
      47  }