1/* { dg-do compile { target powerpc*-*-linux* } } */ 2/* { dg-require-effective-target powerpc_altivec_ok } */ 3/* { dg-options "-maltivec -std=c++98" } */ 4 5/* Valid AltiVec vector types should be accepted with no warnings. */ 6 7__vector char vc; 8__vector unsigned char vuc; 9__vector signed char vsc; 10__vector __bool char vbc; 11__vector short vh; 12__vector signed short vsh; 13__vector unsigned short vuh; 14__vector short int vhi; 15__vector signed short int vshi; 16__vector unsigned short int vuhi; 17__vector __bool short vbh; 18__vector __bool short int vbhi; 19__vector int vi; 20__vector unsigned int vui; 21__vector signed int vsi; 22__vector __bool int vbi; 23__vector unsigned vuj; 24__vector signed vsj; 25__vector __bool vbj; 26__vector float vf; 27 28/* These should be rejected as invalid AltiVec types. */ 29 30__vector bool vb; /* { dg-error "AltiVec types" "" } */ 31__vector long long vll; /* { dg-error "AltiVec types" "" } */ 32__vector unsigned long long vull; /* { dg-error "AltiVec types" "" } */ 33__vector signed long long vsll; /* { dg-error "AltiVec types" "" } */ 34__vector __bool long long vbll; /* { dg-error "AltiVec types" "" } */ 35__vector long long int vlli; /* { dg-error "AltiVec types" "" } */ 36__vector unsigned long long int vulli; /* { dg-error "AltiVec types" "" } */ 37__vector signed long long int vslli; /* { dg-error "AltiVec types" "" } */ 38__vector __bool long long int vblli; /* { dg-error "AltiVec types" "" } */ 39__vector double vd1; /* { dg-error "AltiVec types" "" } */ 40__vector long double vld; /* { dg-error "AltiVec types" "" } */ 41__vector _Complex float vcf; /* { dg-error "AltiVec types" "" } */ 42__vector _Complex double vcd; /* { dg-error "AltiVec types" "" } */ 43__vector _Complex long double vcld; /* { dg-error "AltiVec types" "" } */ 44__vector _Complex signed char vcsc; /* { dg-error "AltiVec types" "" } */ 45__vector _Complex unsigned char vcuc; /* { dg-error "AltiVec types" "" } */ 46__vector _Complex short vcss; /* { dg-error "AltiVec types" "" } */ 47__vector _Complex unsigned short vcus; /* { dg-error "AltiVec types" "" } */ 48__vector _Complex int vcsi; /* { dg-error "AltiVec types" "" } */ 49__vector _Complex unsigned int vcui; /* { dg-error "AltiVec types" "" } */ 50__vector _Complex long vcsl; /* { dg-error "AltiVec types" "" } */ 51__vector _Complex unsigned long vcul; /* { dg-error "AltiVec types" "" } */ 52__vector _Complex long long vcsll; /* { dg-error "AltiVec types" "" } */ 53__vector _Complex unsigned long long vcull; /* { dg-error "AltiVec types" "" } */ 54__vector __complex float v_cf; /* { dg-error "AltiVec types" "" } */ 55__vector __complex double v_cd; /* { dg-error "AltiVec types" "" } */ 56__vector __complex long double v_cld; /* { dg-error "AltiVec types" "" } */ 57__vector __complex signed char v_csc; /* { dg-error "AltiVec types" "" } */ 58__vector __complex unsigned char v_cuc; /* { dg-error "AltiVec types" "" } */ 59__vector __complex short v_css; /* { dg-error "AltiVec types" "" } */ 60__vector __complex unsigned short v_cus; /* { dg-error "AltiVec types" "" } */ 61__vector __complex int v_csi; /* { dg-error "AltiVec types" "" } */ 62__vector __complex unsigned int v_cui; /* { dg-error "AltiVec types" "" } */ 63__vector __complex long v_csl; /* { dg-error "AltiVec types" "" } */ 64__vector __complex unsigned long v_cul; /* { dg-error "AltiVec types" "" } */ 65__vector __complex long long v_csll; /* { dg-error "AltiVec types" "" } */ 66__vector __complex unsigned long long v_cull; /* { dg-error "AltiVec types" "" } */ 67 68/* These should be rejected because the component types are invalid. We 69 don't care about the actual error messages here. */ 70 71__vector __bool unsigned char vbuc; /* { dg-error "" "" } */ 72__vector __bool signed char vbsc; /* { dg-error "" "" } */ 73__vector __bool unsigned short vbuh; /* { dg-error "" "" } */ 74__vector __bool signed short vbsh; /* { dg-error "" "" } */ 75__vector __bool unsigned int vbui; /* { dg-error "" "" } */ 76__vector __bool signed int vbsi; /* { dg-error "" "" } */ 77__vector __bool unsigned vbuj; /* { dg-error "" "" } */ 78__vector __bool signed vbsj; /* { dg-error "" "" } */ 79__vector signed float vsf; /* { dg-error "" "" } */ 80__vector unsigned float vuf; /* { dg-error "" "" } */ 81__vector short float vsf; /* { dg-error "" "" } */ 82__vector signed double vsd; /* { dg-error "" "" } */ 83__vector unsigned double vud; /* { dg-error "" "" } */ 84__vector short double vsd; /* { dg-error "" "" } */ 85__vector __bool float vbf; /* { dg-error "" "" } */ 86__vector __bool double vbd; /* { dg-error "" "" } */ 87__vector __bool short float blf; /* { dg-error "" "" } */ 88__vector __bool short double vlbd; /* { dg-error "" "" } */ 89