1  /* { dg-do assemble } */
       2  /* { dg-options "-O1 --save-temps" } */
       3  
       4  #include <arm_neon.h>
       5  
       6  int32x2_t foo1 (int32x2_t a)
       7  {
       8    return vshr_n_s32 (vneg_s32 (a), 31);
       9  }
      10  
      11  int32x4_t foo2 (int32x4_t a)
      12  {
      13    return vshrq_n_s32 (vnegq_s32 (a), 31);
      14  }
      15  
      16  int16x8_t foo3 (int16x8_t a)
      17  {
      18    return vshrq_n_s16 (vnegq_s16 (a), 15);
      19  }
      20  
      21  int16x4_t foo4 (int16x4_t a)
      22  {
      23    return vshr_n_s16 (vneg_s16 (a), 15);
      24  }
      25  
      26  int8x16_t foo5 (int8x16_t a)
      27  {
      28    return vshrq_n_s8 (vnegq_s8 (a), 7);
      29  }
      30  
      31  int8x8_t foo6 (int8x8_t a)
      32  {
      33    return vshr_n_s8 (vneg_s8 (a), 7);
      34  }
      35  
      36  /* { dg-final { scan-assembler-times {\tcmgt\t} 6 } } */