2 /* { dg-options "-O3 -mpower8-vector -Wno-psabi" } */
3 /* { dg-require-effective-target p8vector_hw } */
6 #define CHECK_H "ssse3-check.h"
10 #define TEST ssse3_test
15 #include "ssse3-vals.h"
17 #include <tmmintrin.h>
20 /* Test the 64-bit form */
22 ssse3_test_pabsw (__m64
*i1
, __m64
*r
)
24 *r
= _mm_abs_pi16 (*i1
);
29 /* Test the 128-bit form */
31 ssse3_test_pabsw128 (__m128i
*i1
, __m128i
*r
)
33 /* Assumes incoming pointers are 16-byte aligned */
34 *r
= _mm_abs_epi16 (*i1
);
37 /* Routine to manually compute the results */
39 compute_correct_result (short *i1
, short *r
)
43 for (i
= 0; i
< 8; i
++)
54 union data r
__attribute__ ((aligned(16)));
58 for (i
= 0; i
< ARRAY_SIZE (vals
); i
++)
60 /* Manually compute the result */
61 compute_correct_result (&vals
[i
].h
[0], &ck
.h
[0]);
64 /* Run the 64-bit tests */
65 ssse3_test_pabsw (&vals
[i
].ll
[0], &r
.ll
[0]);
66 ssse3_test_pabsw (&vals
[i
].ll
[1], &r
.ll
[1]);
67 fail
+= chk_128 (ck
.m
[0], r
.m
[0]);
70 /* Run the 128-bit tests */
71 ssse3_test_pabsw128 (&vals
[i
].m
[0], &r
.m
[0]);
72 fail
+= chk_128 (ck
.m
[0], r
.m
[0]);