/* Check that vec_step can be used with const vector types. This test is derived from parts of gcc.dg/vmx/8-02.c from Motorola's AltiVec testsuite. */ /* { dg-do compile { target powerpc*-*-* } } */ /* { dg-require-effective-target powerpc_altivec_ok } */ /* { dg-options "-maltivec" } */ #include extern vector unsigned char vuc; extern vector signed char vsc; extern vector bool char vbc; extern vector unsigned short vus; extern vector signed short vss; extern vector bool short vbs; extern vector unsigned int vui; extern vector signed int vsi; extern vector bool int vbi; extern vector pixel vp; extern vector float vf; extern const vector unsigned char cvuc; extern const vector signed char cvsc; extern const vector bool char cvbc; extern const vector unsigned short cvus; extern const vector signed short cvss; extern const vector bool short cvbs; extern const vector unsigned int cvui; extern const vector signed int cvsi; extern const vector bool int cvbi; extern const vector pixel cvp; extern const vector float cvf; void foo (void) { int i_vuc = vec_step (vuc); int i_vsc = vec_step (vsc); int i_vbc = vec_step (vbc); int i_vus = vec_step (vus); int i_vss = vec_step (vss); int i_vbs = vec_step (vbs); int i_vui = vec_step (vui); int i_vsi = vec_step (vsi); int i_vbi = vec_step (vbi); int i_vp = vec_step (vp); int i_vf = vec_step (vf); int i_cvuc = vec_step (cvuc); int i_cvsc = vec_step (cvsc); int i_cvbc = vec_step (cvbc); int i_cvus = vec_step (cvus); int i_cvss = vec_step (cvss); int i_cvbs = vec_step (cvbs); int i_cvui = vec_step (cvui); int i_cvsi = vec_step (cvsi); int i_cvbi = vec_step (cvbi); int i_cvp = vec_step (cvp); int i_cvf = vec_step (cvf); }