2 /* { dg-options "-O3 -mvsx" } */
3 /* { dg-additional-options "-mdejagnu-cpu=power8" { target { ! has_arch_pwr8 } } } */
4 /* { dg-require-effective-target p8vector_hw } */
6 #define NO_WARN_X86_INTRINSICS 1
8 #define CHECK_H "mmx-check.h"
20 __attribute__((noinline
, unused
))
21 test (__m64 s1
, __m64 s2
)
23 return _mm_madd_pi16 (s1
, s2
);
29 __m64_union u
, s1
, s2
;
33 s1
.as_m64
= _mm_set_pi16 (2134, 3334, 1234, 6354);
34 s2
.as_m64
= _mm_set_pi16 (1, 3, 4, 5);
35 u
.as_m64
= test (s1
.as_m64
, s2
.as_m64
);
37 for (i
= 0; i
< 2; i
++)
38 e
.as_int
[i
] = (s1
.as_short
[i
* 2] * s2
.as_short
[i
* 2])
39 + (s1
.as_short
[(i
* 2) + 1] * s2
.as_short
[(i
* 2) + 1]);
41 if (u
.as_m64
!= e
.as_m64
)