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