1 /* Verify that overloaded built-ins for vec_st* with char
2 inputs produce the right code. */
3
4 /* { dg-do compile } */
5 /* { dg-require-effective-target powerpc_altivec_ok } */
6 /* { dg-options "-maltivec -O2" } */
7
8 #include <altivec.h>
9
10 void
testst_1(vector signed char vsc1,int i1,vector signed char * vscp)11 testst_1 (vector signed char vsc1, int i1, vector signed char * vscp)
12 {
13 return vec_st(vsc1, i1, vscp);
14 }
15
16 void
testst_2(vector signed char vsc1,int i1,signed char * scp)17 testst_2 (vector signed char vsc1, int i1, signed char * scp)
18 {
19 return vec_st(vsc1, i1, scp);
20 }
21
22 void
testst_3(vector unsigned char vuc1,int i1,vector unsigned char * vscp)23 testst_3 (vector unsigned char vuc1, int i1, vector unsigned char * vscp)
24 {
25 return vec_st(vuc1, i1, vscp);
26 }
27
28 void
testst_4(vector unsigned char vuc1,int i1,unsigned char * scp)29 testst_4 (vector unsigned char vuc1, int i1, unsigned char * scp)
30 {
31 return vec_st(vuc1, i1, scp);
32 }
33
34 void
testst_5(vector bool char vbc1,int i1,vector bool char * vbcp)35 testst_5 (vector bool char vbc1, int i1, vector bool char * vbcp)
36 {
37 return vec_st(vbc1, i1, vbcp);
38 }
39
40 void
testst_6(vector bool char vbc1,int i1,unsigned char * vucp)41 testst_6 (vector bool char vbc1, int i1, unsigned char * vucp)
42 {
43 return vec_st(vbc1, i1, vucp);
44 }
45
46 void
testst_7(vector bool char vbc1,int i1,signed char * vscp)47 testst_7 (vector bool char vbc1, int i1, signed char * vscp)
48 {
49 return vec_st(vbc1, i1, vscp);
50 }
51
52 void
testst_cst1(vector signed char vsc1,int i1,vector signed char * vscp)53 testst_cst1 (vector signed char vsc1, int i1, vector signed char * vscp)
54 {
55 return vec_st(vsc1, 12, vscp);
56 }
57
58 void
testst_cst2(vector signed char vsc1,int i1,signed char * scp)59 testst_cst2 (vector signed char vsc1, int i1, signed char * scp)
60 {
61 return vec_st(vsc1, 16, scp);
62 }
63
64 void
testst_cst3(vector unsigned char vuc1,int i1,vector unsigned char * vscp)65 testst_cst3 (vector unsigned char vuc1, int i1, vector unsigned char * vscp)
66 {
67 return vec_st(vuc1, 20, vscp);
68 }
69
70 void
testst_cst4(vector unsigned char vuc1,int i1,unsigned char * scp)71 testst_cst4 (vector unsigned char vuc1, int i1, unsigned char * scp)
72 {
73 return vec_st(vuc1, 24, scp);
74 }
75
76 void
testst_cst5(vector bool char vbc1,int i1,vector bool char * vbcp)77 testst_cst5 (vector bool char vbc1, int i1, vector bool char * vbcp)
78 {
79 return vec_st(vbc1, 28, vbcp);
80 }
81
82 void
testst_cst6(vector bool char vbc1,int i1,unsigned char * vucp)83 testst_cst6 (vector bool char vbc1, int i1, unsigned char * vucp)
84 {
85 return vec_st(vbc1, 32, vucp);
86 }
87
88 void
testst_cst7(vector bool char vbc1,int i1,signed char * vscp)89 testst_cst7 (vector bool char vbc1, int i1, signed char * vscp)
90 {
91 return vec_st(vbc1, 36, vscp);
92 }
93
94 /* { dg-final { scan-assembler-times {\mstvx\M} 14 } } */
95