[testsuite] require sqrt_insn effective target where needed
[official-gcc.git] / gcc / testsuite / gcc.target / powerpc / fold-vec-st-char.c
blobd8de63fdeba60ce0c22a7077c1376c2fc032b42b
1 /* Verify that overloaded built-ins for vec_st* with char
2 inputs produce the right code. */
4 /* { dg-do compile } */
5 /* { dg-require-effective-target powerpc_altivec_ok } */
6 /* { dg-options "-maltivec -O2" } */
8 #include <altivec.h>
10 void
11 testst_1 (vector signed char vsc1, int i1, vector signed char * vscp)
13 return vec_st(vsc1, i1, vscp);
16 void
17 testst_2 (vector signed char vsc1, int i1, signed char * scp)
19 return vec_st(vsc1, i1, scp);
22 void
23 testst_3 (vector unsigned char vuc1, int i1, vector unsigned char * vscp)
25 return vec_st(vuc1, i1, vscp);
28 void
29 testst_4 (vector unsigned char vuc1, int i1, unsigned char * scp)
31 return vec_st(vuc1, i1, scp);
34 void
35 testst_5 (vector bool char vbc1, int i1, vector bool char * vbcp)
37 return vec_st(vbc1, i1, vbcp);
40 void
41 testst_6 (vector bool char vbc1, int i1, unsigned char * vucp)
43 return vec_st(vbc1, i1, vucp);
46 void
47 testst_7 (vector bool char vbc1, int i1, signed char * vscp)
49 return vec_st(vbc1, i1, vscp);
52 void
53 testst_cst1 (vector signed char vsc1, int i1, vector signed char * vscp)
55 return vec_st(vsc1, 12, vscp);
58 void
59 testst_cst2 (vector signed char vsc1, int i1, signed char * scp)
61 return vec_st(vsc1, 16, scp);
64 void
65 testst_cst3 (vector unsigned char vuc1, int i1, vector unsigned char * vscp)
67 return vec_st(vuc1, 20, vscp);
70 void
71 testst_cst4 (vector unsigned char vuc1, int i1, unsigned char * scp)
73 return vec_st(vuc1, 24, scp);
76 void
77 testst_cst5 (vector bool char vbc1, int i1, vector bool char * vbcp)
79 return vec_st(vbc1, 28, vbcp);
82 void
83 testst_cst6 (vector bool char vbc1, int i1, unsigned char * vucp)
85 return vec_st(vbc1, 32, vucp);
88 void
89 testst_cst7 (vector bool char vbc1, int i1, signed char * vscp)
91 return vec_st(vbc1, 36, vscp);
94 /* { dg-final { scan-assembler-times {\m(?:stvx|stxv|stxvx)\M} 14 } } */