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 8extern void abort (void); 9 10int 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/* { dg-final { cleanup-saved-temps } } */ 34