b90a5e9532aabcda25cc88d947b9e09770a50de4
1 /* { dg-do run { target { powerpc64le-*-* } } } */
2 /* { dg-options "-mdejagnu-cpu=power8 -O3" } */
8 int ca
[N
] __attribute__((aligned(16)));
9 int cb
[N
] __attribute__((aligned(16)));
10 int cc
[N
] __attribute__((aligned(16)));
11 int cd
[N
] __attribute__((aligned(16)));
14 __attribute__((noinline
)) void foo ()
17 vector
int va
, vb
, vc
, vd
, tmp
;
18 vector
unsigned int threes
= vec_splat_u32(3);
19 for (i
= 0; i
< N
; i
+=4) {
20 vb
= vec_vsx_ld (0, &cb
[i
]);
21 vc
= vec_vsx_ld (0, &cc
[i
]);
22 vd
= vec_vsx_ld (0, &cd
[i
]);
23 tmp
= vec_add (vb
, vc
);
24 tmp
= vec_sub (tmp
, vd
);
25 tmp
= vec_sra (tmp
, threes
);
27 vec_vsx_st (tmp
, 0, &ca
[i
]);
31 __attribute__((noinline
)) void init ()
34 for (i
= 0; i
< N
; ++i
) {
46 for (i
= 0; i
< N
; ++i
)
47 if (ca
[i
] != (-3 * i
- 1969) >> 3)