1 /* Test the vqdmlsls_laneq_s32 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)11 main (void)
12 {
13   int64_t arg1;
14   int32_t arg2;
15   int32x4_t arg3;
16   int64_t actual;
17   int64_t expected;
18 
19   arg1 = 140733193453567LL;
20   arg2 = 25544;
21   arg3 = vcombine_s32 (vcreate_s32 (0x417b8000ffff8397LL),
22                        vcreate_s32 (0x7fffffff58488000LL));
23 
24 
25   actual = vqdmlsls_laneq_s32 (arg1, arg2, arg3, 3);
26   expected = 31022548895631LL;
27 
28   if (expected != actual)
29     abort ();
30 
31   return 0;
32 }
33 
34 /* { dg-final { scan-assembler-times "sqdmlsl\[ \t\]+\[dD\]\[0-9\]+, ?\[sS\]\[0-9\]+, ?\[vV\]\[0-9\]+\.\[sS\]\\\[3\\\]\n" 1 } } */
35