(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
arm/
pr82989.c
       1  /* PR target/82989.  */
       2  /* { dg-do compile } */
       3  /* { dg-require-effective-target arm_neon_ok } */
       4  /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-a8" } } */
       5  /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mfpu=*" } { "-mfpu=neon" } } */
       6  /* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */
       7  /* { dg-options "-O2 -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=hard" } */
       8  /* { dg-add-options arm_neon } */
       9  
      10  typedef unsigned long long uint64_t;
      11  
      12  void f_shr_imm (uint64_t *a)
      13  {
      14    *a += *a >> 32;
      15  }
      16  
      17  void f_shr_reg (uint64_t *a, uint64_t b)
      18  {
      19    *a += *a >> b;
      20  }
      21  
      22  void f_shl_imm (uint64_t *a)
      23  {
      24    *a += *a << 32;
      25  }
      26  
      27  void f_shl_reg (uint64_t *a, uint64_t b)
      28  {
      29    *a += *a << b;
      30  }
      31  /* { dg-final { scan-assembler-not "vshl*" } } */
      32  /* { dg-final { scan-assembler-not "vshr*" } } */
      33  /* { dg-final { scan-assembler-not "vmov*" } } */