1*67e74705SXin Li // RUN: %clang_cc1 -faltivec -fno-lax-vector-conversions -triple powerpc-unknown-unknown -fcxx-exceptions -verify %s 2*67e74705SXin Li 3*67e74705SXin Li typedef int V4i __attribute__((vector_size(16))); 4*67e74705SXin Li test_vec_step(vector short arg1)5*67e74705SXin Livoid test_vec_step(vector short arg1) { 6*67e74705SXin Li vector bool char vbc; 7*67e74705SXin Li vector signed char vsc; 8*67e74705SXin Li vector unsigned char vuc; 9*67e74705SXin Li vector bool short vbs; 10*67e74705SXin Li vector short vs; 11*67e74705SXin Li vector unsigned short vus; 12*67e74705SXin Li vector pixel vp; 13*67e74705SXin Li vector bool int vbi; 14*67e74705SXin Li vector int vi; 15*67e74705SXin Li vector unsigned int vui; 16*67e74705SXin Li vector float vf; 17*67e74705SXin Li 18*67e74705SXin Li vector int *pvi; 19*67e74705SXin Li 20*67e74705SXin Li int res1[vec_step(arg1) == 8 ? 1 : -1]; 21*67e74705SXin Li int res2[vec_step(vbc) == 16 ? 1 : -1]; 22*67e74705SXin Li int res3[vec_step(vsc) == 16 ? 1 : -1]; 23*67e74705SXin Li int res4[vec_step(vuc) == 16 ? 1 : -1]; 24*67e74705SXin Li int res5[vec_step(vbs) == 8 ? 1 : -1]; 25*67e74705SXin Li int res6[vec_step(vs) == 8 ? 1 : -1]; 26*67e74705SXin Li int res7[vec_step(vus) == 8 ? 1 : -1]; 27*67e74705SXin Li int res8[vec_step(vp) == 8 ? 1 : -1]; 28*67e74705SXin Li int res9[vec_step(vbi) == 4 ? 1 : -1]; 29*67e74705SXin Li int res10[vec_step(vi) == 4 ? 1 : -1]; 30*67e74705SXin Li int res11[vec_step(vui) == 4 ? 1 : -1]; 31*67e74705SXin Li int res12[vec_step(vf) == 4 ? 1 : -1]; 32*67e74705SXin Li int res13[vec_step(*pvi) == 4 ? 1 : -1]; 33*67e74705SXin Li } 34*67e74705SXin Li f(V4i a)35*67e74705SXin Livoid f(V4i a) 36*67e74705SXin Li { 37*67e74705SXin Li } 38*67e74705SXin Li test1()39*67e74705SXin Livoid test1() 40*67e74705SXin Li { 41*67e74705SXin Li V4i vGCC; 42*67e74705SXin Li vector int vAltiVec; 43*67e74705SXin Li 44*67e74705SXin Li f(vAltiVec); 45*67e74705SXin Li vGCC = vAltiVec; 46*67e74705SXin Li bool res = vGCC > vAltiVec; 47*67e74705SXin Li vAltiVec = 0 ? vGCC : vGCC; 48*67e74705SXin Li } 49*67e74705SXin Li 50*67e74705SXin Li template<typename T> template_f(T param)51*67e74705SXin Livoid template_f(T param) { 52*67e74705SXin Li param++; 53*67e74705SXin Li } 54*67e74705SXin Li test2()55*67e74705SXin Livoid test2() 56*67e74705SXin Li { 57*67e74705SXin Li vector int vi; 58*67e74705SXin Li ++vi; 59*67e74705SXin Li vi++; 60*67e74705SXin Li --vi; 61*67e74705SXin Li vi--; 62*67e74705SXin Li vector float vf; 63*67e74705SXin Li vf++; 64*67e74705SXin Li 65*67e74705SXin Li ++vi=vi; // expected-warning {{unsequenced}} 66*67e74705SXin Li (++vi)[1]=1; 67*67e74705SXin Li template_f(vi); 68*67e74705SXin Li } 69*67e74705SXin Li 70*67e74705SXin Li namespace LValueToRValueConversions { 71*67e74705SXin Li struct Struct { 72*67e74705SXin Li float f(); 73*67e74705SXin Li int n(); 74*67e74705SXin Li }; 75*67e74705SXin Li 76*67e74705SXin Li vector float initFloat = (vector float)(Struct().f); // expected-error {{did you mean to call it}} 77*67e74705SXin Li vector int initInt = (vector int)(Struct().n); // expected-error {{did you mean to call it}} 78*67e74705SXin Li } 79*67e74705SXin Li f()80*67e74705SXin Livoid f() { 81*67e74705SXin Li try {} 82*67e74705SXin Li catch (vector pixel px) {} 83*67e74705SXin Li }; 84