(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
index.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2" } */
       3  /* { dg-final { scan-assembler-not "\[us\]xtw\t" } } */
       4  /* { dg-final { scan-assembler-not "\[us\]bfiz\t" } } */
       5  /* { dg-final { scan-assembler-not "lsl\t" } } */
       6  
       7  int
       8  load_scaled_sxtw (int *arr, int i)
       9  {
      10    return arr[arr[i]];
      11  }
      12  
      13  unsigned int
      14  load_scaled_uxtw (unsigned int *arr, unsigned int i)
      15  {
      16    return arr[arr[i]];
      17  }
      18  
      19  void
      20  store_scaled_sxtw (int *arr, int i)
      21  {
      22    arr[arr[i]] = 0;
      23  }
      24  
      25  void
      26  store_scaled_uxtw (unsigned int *arr, unsigned int i)
      27  {
      28    arr[arr[i]] = 0;
      29  }
      30  
      31  int
      32  load_unscaled_sxtw (signed char *arr, int i)
      33  {
      34    return arr[arr[i]];
      35  }
      36  
      37  unsigned int
      38  load_unscaled_uxtw (unsigned char *arr, unsigned int i)
      39  {
      40    return arr[arr[i]];
      41  }
      42  
      43  void
      44  store_unscaled_sxtw (signed char *arr, int i)
      45  {
      46    arr[arr[i]] = 0;
      47  }
      48  
      49  void
      50  store_unscaled_uxtw (unsigned char *arr, unsigned int i)
      51  {
      52    arr[arr[i]] = 0;
      53  }
      54  
      55  
      56  
      57  int
      58  load_scaled_tmp_sxtw (int *arr, int i)
      59  {
      60    int j = arr[i];
      61    return arr[j];
      62  }
      63  
      64  unsigned int
      65  load_scaled_tmp_uxtw (unsigned int *arr, unsigned int i)
      66  {
      67    unsigned int j = arr[i];
      68    return arr[j];
      69  }
      70  
      71  void
      72  store_scaled_tmp_sxtw (int *arr, int i)
      73  {
      74    int j = arr[i];
      75    arr[j] = 0;
      76  }
      77  
      78  void
      79  store_scaled_tmp_uxtw (unsigned int *arr, unsigned int i)
      80  {
      81    unsigned int j = arr[i];
      82    arr[j] = 0;
      83  }
      84  
      85  int
      86  load_unscaled_tmp_sxtw (signed char *arr, int i)
      87  {
      88    signed char j = arr[i];
      89    return arr[j];
      90  }
      91  
      92  unsigned int
      93  load_unscaled_tmp_uxtw (unsigned char *arr, unsigned int i)
      94  {
      95    unsigned char j = arr[i];
      96    return arr[j];
      97  }
      98  
      99  void
     100  store_unscaled_tmp_sxtw (signed char *arr, int i)
     101  {
     102    signed char j = arr[i];
     103    arr[j] = 0;
     104  }
     105  
     106  void
     107  store_unscaled_tmp_uxtw (unsigned char *arr, unsigned int i)
     108  {
     109    unsigned char j = arr[i];
     110    arr[j] = 0;
     111  }