| // RUN: %clang_cc1 -target-feature +altivec -flax-vector-conversions=none -triple powerpc-unknown-unknown -fcxx-exceptions -verify %s |
| |
| typedef int V4i __attribute__((vector_size(16))); |
| |
| void test_vec_step(vector short arg1) { |
| vector bool char vbc; |
| vector signed char vsc; |
| vector unsigned char vuc; |
| vector bool short vbs; |
| vector short vs; |
| vector unsigned short vus; |
| vector pixel vp; |
| vector bool int vbi; |
| vector int vi; |
| vector unsigned int vui; |
| vector float vf; |
| |
| vector int *pvi; |
| |
| int res1[vec_step(arg1) == 8 ? 1 : -1]; |
| int res2[vec_step(vbc) == 16 ? 1 : -1]; |
| int res3[vec_step(vsc) == 16 ? 1 : -1]; |
| int res4[vec_step(vuc) == 16 ? 1 : -1]; |
| int res5[vec_step(vbs) == 8 ? 1 : -1]; |
| int res6[vec_step(vs) == 8 ? 1 : -1]; |
| int res7[vec_step(vus) == 8 ? 1 : -1]; |
| int res8[vec_step(vp) == 8 ? 1 : -1]; |
| int res9[vec_step(vbi) == 4 ? 1 : -1]; |
| int res10[vec_step(vi) == 4 ? 1 : -1]; |
| int res11[vec_step(vui) == 4 ? 1 : -1]; |
| int res12[vec_step(vf) == 4 ? 1 : -1]; |
| int res13[vec_step(*pvi) == 4 ? 1 : -1]; |
| } |
| |
| void f(V4i a) |
| { |
| } |
| |
| void test1() |
| { |
| V4i vGCC; |
| vector int vAltiVec; |
| |
| f(vAltiVec); |
| vGCC = vAltiVec; |
| bool res = vGCC > vAltiVec; |
| vAltiVec = 0 ? vGCC : vGCC; |
| } |
| |
| template<typename T> |
| void template_f(T param) { |
| param++; |
| } |
| |
| void test2() |
| { |
| vector int vi; |
| ++vi; |
| vi++; |
| --vi; |
| vi--; |
| vector float vf; |
| vf++; |
| |
| ++vi=vi; // expected-warning {{unsequenced}} |
| (++vi)[1]=1; |
| template_f(vi); |
| } |
| |
| namespace LValueToRValueConversions { |
| struct Struct { |
| float f(); |
| int n(); |
| }; |
| |
| vector float initFloat = (vector float)(Struct().f); // expected-error {{did you mean to call it}} |
| vector int initInt = (vector int)(Struct().n); // expected-error {{did you mean to call it}} |
| } |
| |
| void f() { |
| try {} |
| catch (vector pixel px) {} |
| }; |