c++: normalizing ttp constraints [PR115656]
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / mma-builtin-7.c
blobc661a4b84bc77c42039955196031ad4656130bf2
1 /* { dg-do compile } */
2 /* { dg-require-effective-target power10_ok } */
3 /* { dg-options "-mdejagnu-cpu=power10 -O2" } */
5 void
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"
19 #endif
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 } } */