1 /* { dg-do compile } */
2 /* { dg-require-effective-target power10_ok } */
3 /* { dg-options "-mdejagnu-cpu=power10 -O2" } */
6 foo (__vector_pair
*dst
, __vector_pair
*src
, long idx
)
8 dst
[0] = __builtin_vsx_lxvp (0, src
);
9 dst
[2] = __builtin_vsx_lxvp (32, src
);
10 dst
[4] = __builtin_vsx_lxvp (64, src
);
11 /* Non-constant offset should generate a lxvpx. */
12 dst
[6] = __builtin_vsx_lxvp (idx
, src
);
13 /* Non-aligned offset should generate a plxvp. */
14 dst
[8] = __builtin_vsx_lxvp (257, src
);
17 #if !__has_builtin (__builtin_vsx_lxvp)
18 # error "__has_builtin (__builtin_vsx_lxvp) failed"
21 /* { dg-final { scan-assembler-not {\mlxv\M} } } */
22 /* { dg-final { scan-assembler-not {\mstxv\M} } } */
23 /* { dg-final { scan-assembler-times {\mlxvp\M} 3 } } */
24 /* { dg-final { scan-assembler-times {\mlxvpx\M} 1 } } */
25 /* { dg-final { scan-assembler-times {\mplxvp\M} 1 } } */
26 /* { dg-final { scan-assembler-times {\mstxvp\M} 5 } } */