1 /* Test the vqrdmulhh_laneq_s16 AArch64 SIMD intrinsic. */ 2 3 /* { dg-do run } */ 4 /* { dg-options "-save-temps -O3 -fno-inline" } */ 5 6 #include "arm_neon.h" 7 8 extern void abort (void); 9 10 int main(void)11main (void) 12 { 13 int16_t arg1; 14 int16x8_t arg2; 15 int16_t actual; 16 int16_t expected; 17 18 arg1 = 0; 19 arg2 = vcombine_s16 (vcreate_s16 (0x7fffffffa7908000ULL), 20 vcreate_s16 (0x8000d2607fff0000ULL)); 21 22 actual = vqrdmulhh_laneq_s16 (arg1, arg2, 7); 23 expected = 0; 24 25 if (expected != actual) 26 abort (); 27 28 return 0; 29 } 30 31 32 /* { dg-final { scan-assembler-times "sqrdmulh\[ \t\]+\[hH\]\[0-9\]+, ?\[hH\]\[0-9\]+, ?\[vV\]\[0-9\]+\.\[hH\]\\\[7\\\]\n" 1 } } */ 33