(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
pr53199.c
       1  /* { dg-do compile { target { powerpc*-*-* } } } */
       2  /* { dg-skip-if "" { powerpc*-*-darwin* } } */
       3  /* { dg-options "-O2 -mdejagnu-cpu=power6 -mavoid-indexed-addresses" } */
       4  /* { dg-final { scan-assembler-times "lwbrx" 12 } } */
       5  /* { dg-final { scan-assembler-times "stwbrx" 6 } } */
       6  
       7  /* PR 51399: bswap gets an error if -mavoid-indexed-addresses was used in
       8     creating the two lwbrx instructions.  */
       9  
      10  long long
      11  load64_reverse_1 (long long *p)
      12  {
      13    return __builtin_bswap64 (*p);
      14  }
      15  
      16  long long
      17  load64_reverse_2 (long long *p)
      18  {
      19    return __builtin_bswap64 (p[1]);
      20  }
      21  
      22  long long
      23  load64_reverse_3 (long long *p, int i)
      24  {
      25    return __builtin_bswap64 (p[i]);
      26  }
      27  
      28  long long
      29  load64_reverse_4 (long long dummy __attribute__ ((unused)), long long *p)
      30  {
      31    return __builtin_bswap64 (*p);
      32  }
      33  
      34  long long
      35  load64_reverse_5 (long long dummy __attribute__ ((unused)), long long *p)
      36  {
      37    return __builtin_bswap64 (p[1]);
      38  }
      39  
      40  long long
      41  load64_reverse_6 (long long dummy __attribute__ ((unused)), long long *p, int i)
      42  {
      43    return __builtin_bswap64 (p[i]);
      44  }
      45  
      46  void
      47  store64_reverse_1 (long long *p, long long x)
      48  {
      49    *p = __builtin_bswap64 (x);
      50  }
      51  
      52  void
      53  store64_reverse_2 (long long *p, long long x)
      54  {
      55    p[1] = __builtin_bswap64 (x);
      56  }
      57  
      58  void
      59  store64_reverse_3 (long long *p, long long x, int i)
      60  {
      61    p[i] = __builtin_bswap64 (x);
      62  }
      63  
      64  long long
      65  reg_reverse_1 (long long x)
      66  {
      67    return __builtin_bswap64 (x);
      68  }
      69  
      70  long long
      71  reg_reverse_2 (long long dummy __attribute__ ((unused)), long long x)
      72  {
      73    return __builtin_bswap64 (x);
      74  }