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" } */
11 testst_1 (vector
signed char vsc1
, int i1
, vector
signed char * vscp
)
13 return vec_st(vsc1
, i1
, vscp
);
17 testst_2 (vector
signed char vsc1
, int i1
, signed char * scp
)
19 return vec_st(vsc1
, i1
, scp
);
23 testst_3 (vector
unsigned char vuc1
, int i1
, vector
unsigned char * vscp
)
25 return vec_st(vuc1
, i1
, vscp
);
29 testst_4 (vector
unsigned char vuc1
, int i1
, unsigned char * scp
)
31 return vec_st(vuc1
, i1
, scp
);
35 testst_5 (vector
bool char vbc1
, int i1
, vector
bool char * vbcp
)
37 return vec_st(vbc1
, i1
, vbcp
);
41 testst_6 (vector
bool char vbc1
, int i1
, unsigned char * vucp
)
43 return vec_st(vbc1
, i1
, vucp
);
47 testst_7 (vector
bool char vbc1
, int i1
, signed char * vscp
)
49 return vec_st(vbc1
, i1
, vscp
);
53 testst_cst1 (vector
signed char vsc1
, int i1
, vector
signed char * vscp
)
55 return vec_st(vsc1
, 12, vscp
);
59 testst_cst2 (vector
signed char vsc1
, int i1
, signed char * scp
)
61 return vec_st(vsc1
, 16, scp
);
65 testst_cst3 (vector
unsigned char vuc1
, int i1
, vector
unsigned char * vscp
)
67 return vec_st(vuc1
, 20, vscp
);
71 testst_cst4 (vector
unsigned char vuc1
, int i1
, unsigned char * scp
)
73 return vec_st(vuc1
, 24, scp
);
77 testst_cst5 (vector
bool char vbc1
, int i1
, vector
bool char * vbcp
)
79 return vec_st(vbc1
, 28, vbcp
);
83 testst_cst6 (vector
bool char vbc1
, int i1
, unsigned char * vucp
)
85 return vec_st(vbc1
, 32, vucp
);
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 } } */