1 /* { dg-do compile { target { powerpc64le-*-* } } } */
2 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
3 /* { dg-options "-mcpu=power8 -O3" } */
4 /* { dg-final { scan-assembler "lxvd2x" } } */
5 /* { dg-final { scan-assembler "stxvd2x" } } */
6 /* { dg-final { scan-assembler-not "xxpermdi" } } */
11 int ca
[N
] __attribute__((aligned(16)));
12 int cb
[N
] __attribute__((aligned(16)));
13 int cc
[N
] __attribute__((aligned(16)));
14 int cd
[N
] __attribute__((aligned(16)));
16 __attribute__((noinline
)) void foo ()
19 for (i
= 0; i
< N
; i
++) {
20 ca
[i
] = (cb
[i
] + cc
[i
]) * cd
[i
];
24 __attribute__((noinline
)) void init ()
27 for (i
= 0; i
< N
; ++i
) {
30 cd
[i
] = i
% 2 ? 1 : -1;
39 for (i
= 0; i
< N
; ++i
)
40 if (i
% 2 == 1 && ca
[i
] != -2 * i
- 1955)
42 else if (i
% 2 == 0 && ca
[i
] != 1955 + 2 * i
)