c895eaa2077890ae655fda74f095ddba7dd9a7d7
[gcc.git] / gcc / testsuite / gcc.target / powerpc / swaps-p8-6.c
1 /* { dg-do run { target { powerpc64le-*-* } } } */
2 /* { dg-options "-mdejagnu-cpu=power8 -O3" } */
3
4 void abort();
5
6 #define N 16
7
8 signed char ca[N] __attribute__((aligned(16)));
9 signed char cb[] __attribute__((aligned(16)))
10 = {8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5, -6, -7};
11 signed char cc[] __attribute__((aligned(16)))
12 = {1, 1, 2, 2, 3, 3, 2, 2, 1, 1, 0, 0, -1, -1, -2, -2};
13
14 __attribute__((noinline)) void foo ()
15 {
16 int i;
17 for (i = 0; i < N; i++) {
18 ca[i] = cb[i] - cc[i];
19 }
20 }
21
22 int main ()
23 {
24 signed char cd[] = {7, 6, 4, 3, 1, 0, 0, -1, -1, -2, -2, -3, -3, -4, -4, -5};
25 int i;
26 foo ();
27 for (i = 0; i < N; ++i)
28 if (ca[i] != cd[i])
29 abort ();
30 return 0;
31 }