libgomp: Document 'GOMP_teams4'
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / vabs_intrinsic_3.c
blobcf4e7ae4679d5b1896f35e3bf3135b0bd42befde
1 /* Test the vabsd_s64 intrinsic. */
3 /* { dg-do run } */
4 /* { dg-options "--save-temps -O2" } */
6 #include <arm_neon.h>
7 #include <limits.h>
9 extern void abort (void);
11 #define force_simd(V1) asm volatile ("mov %d0, %1.d[0]" \
12 : "=w"(V1) \
13 : "w"(V1) \
14 : /* No clobbers */);
16 #define RUN_TEST(test, answ) \
17 { \
18 force_simd (test); \
19 force_simd (answ); \
20 int64_t res = vabsd_s64 (test); \
21 force_simd (res); \
22 if (res != answ) \
23 abort (); \
26 int64_t input[] = {INT64_MAX, 10, 0, -10, INT64_MIN + 1, INT64_MIN};
27 int64_t expected[] = {INT64_MAX, 10, 0, 10, INT64_MAX, INT64_MIN};
29 int main (void)
31 RUN_TEST (input[0], expected[0]);
32 RUN_TEST (input[1], expected[1]);
33 RUN_TEST (input[2], expected[2]);
34 RUN_TEST (input[3], expected[3]);
35 RUN_TEST (input[4], expected[4]);
36 RUN_TEST (input[5], expected[5]);
38 return 0;