1 /* { dg-do compile } */
2 /* { dg-require-effective-target power10_ok } */
3 /* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
4
5 void
6 foo0 (void)
7 {
8 __vector_quad acc;
9 asm ("#..." : "=d" (acc));
10 __builtin_mma_xxmtacc (&acc);
11 __builtin_mma_xxmfacc (&acc);
12 asm ("#..." :: "d" (acc));
13 }
14
15 typedef unsigned char vec_t __attribute__((vector_size(16)));
16
17 void
18 foo1 (vec_t *vec)
19 {
20 vec[1] = __builtin_vsx_xvcvspbf16 (vec[0]);
21 vec[3] = __builtin_vsx_xvcvbf16spn (vec[2]);
22 }
23
24 /* { dg-final { scan-assembler-times {\mxxmtacc\M} 1 } } */
25 /* { dg-final { scan-assembler-times {\mxxmfacc\M} 1 } } */
26 /* { dg-final { scan-assembler-times {\mlxv\M} 2 } } */
27 /* { dg-final { scan-assembler-times {\mstxv\M} 2 } } */
28 /* { dg-final { scan-assembler-not {\mlxvp\M} } } */
29 /* { dg-final { scan-assembler-not {\mstxvp\M} } } */
30 /* { dg-final { scan-assembler-times {\mxvcvspbf16\M} 1 } } */
31 /* { dg-final { scan-assembler-times {\mxvcvbf16spn\M} 1 } } */