(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
ldp_stp_9.c
       1  /* { dg-options "-O2" } */
       2  
       3  void
       4  store (int *arr, int x, int y, int z)
       5  {
       6    arr[400] = x;
       7    arr[401] = y;
       8  
       9    arr[500] = z;
      10    arr[501] = x;
      11  }
      12  
      13  /* { dg-final { scan-assembler-times "stp\tw\[0-9\]+, w\[0-9\]+, " 2 } } */
      14  
      15  void
      16  store_float (float *arr, float x, float y)
      17  {
      18    arr[404] = x;
      19    arr[403] = y;
      20  
      21    arr[400] = x;
      22    arr[401] = y;
      23  }
      24  
      25  /* { dg-final { scan-assembler-times "stp\ts\[0-9\]+, s\[0-9\]+, " 2 } } */
      26  
      27  void
      28  store_long (long long int *arr, long long int x, long long int y)
      29  {
      30    arr[400] = x;
      31    arr[401] = y;
      32  
      33    arr[403] = y;
      34    arr[404] = x;
      35  }
      36  
      37  /* { dg-final { scan-assembler-times "stp\tx\[0-9\]+, x\[0-9\]+, " 2 } } */
      38  
      39  void
      40  store_double (double *arr, double x, double y)
      41  {
      42    arr[200] = x;
      43    arr[201] = y;
      44  
      45    arr[263] = y;
      46    arr[264] = x;
      47  }
      48  
      49  /* { dg-final { scan-assembler-times "stp\td\[0-9\]+, d\[0-9\]+, " 2 } } */