[testsuite] require sqrt_insn effective target where needed
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / pr96808.c
blob2d44bd51b203af19a82f40f0a11b047d5f956d5f
1 /* PR target/96808 */
2 /* { dg-do compile } */
3 /* { dg-require-effective-target power10_ok } */
4 /* { dg-options "-O2 -mdejagnu-cpu=power10" } */
6 /* Verify we do not ICE on the tests below. */
8 void
9 old_ok (__vector_quad *dst, vector unsigned char vc)
11 __vector_quad vq;
12 __builtin_mma_xxsetaccz(&vq);
13 __builtin_mma_xvf32gerpp(&vq, vc, vc);
14 *dst = vq;
17 void
18 test0 (__vector_quad *dst, vector unsigned char vc)
20 __vector_quad vq[2];
21 __builtin_mma_xxsetaccz(&vq[1]);
22 __builtin_mma_xvf32gerpp(&vq[1], vc, vc);
23 *dst = vq[1];
26 void
27 test1 (__vector_quad *dst, vector unsigned char vc)
29 __vector_quad vq[2][2];
30 __builtin_mma_xxsetaccz(&vq[1][1]);
31 __builtin_mma_xvf32gerpp(&vq[1][1], vc, vc);
32 *dst = vq[1][1];
35 void
36 test2 (__vector_quad *dst, vector unsigned char vc)
38 struct {
39 __vector_quad dummy;
40 __vector_quad acc;
41 } vq;
42 __builtin_mma_xxsetaccz(&vq.acc);
43 __builtin_mma_xvf32gerpp(&vq.acc, vc, vc);
44 *dst = vq.acc;
47 void
48 test3 (__vector_quad *dst, vector unsigned char vc)
50 __builtin_mma_xxsetaccz(&dst[1]);
51 __builtin_mma_xvf32gerpp(&dst[1], vc, vc);
54 void
55 test4 (__vector_quad *dst[], vector unsigned char vc)
57 __builtin_mma_xxsetaccz(&dst[1][2]);
58 __builtin_mma_xvf32gerpp(&dst[1][2], vc, vc);