1 /* { dg-do assemble } */ 2 /* { dg-options "-O1 --save-temps" } */ 3 4 #include <arm_neon.h> 5 foo1(int32x2_t a)6int32x2_t foo1 (int32x2_t a) 7 { 8 return vshr_n_s32 (vneg_s32 (a), 31); 9 } 10 foo2(int32x4_t a)11int32x4_t foo2 (int32x4_t a) 12 { 13 return vshrq_n_s32 (vnegq_s32 (a), 31); 14 } 15 foo3(int16x8_t a)16int16x8_t foo3 (int16x8_t a) 17 { 18 return vshrq_n_s16 (vnegq_s16 (a), 15); 19 } 20 foo4(int16x4_t a)21int16x4_t foo4 (int16x4_t a) 22 { 23 return vshr_n_s16 (vneg_s16 (a), 15); 24 } 25 foo5(int8x16_t a)26int8x16_t foo5 (int8x16_t a) 27 { 28 return vshrq_n_s8 (vnegq_s8 (a), 7); 29 } 30 foo6(int8x8_t a)31int8x8_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 } } */ 37