1// RUN: %clang_cc1 %s -triple=powerpc-apple-darwin8 -faltivec -verify -pedantic -fsyntax-only 2 3typedef int v4 __attribute((vector_size(16))); 4typedef short v8 __attribute((vector_size(16))); 5 6v8 foo(void) { 7 v8 a; 8 v4 b; 9 a = (v8){4, 2}; 10 b = (v4)(5, 6, 7, 8, 9); // expected-warning {{excess elements in vector initializer}} 11 b = (v4)(5, 6, 8, 8.0f); 12 13 vector int vi; 14 vi = (vector int)(1); 15 vi = (vector int)(1, 2); // expected-error {{number of elements must be either one or match the size of the vector}} 16 vi = (vector int)(1, 2, 3, 4); 17 vi = (vector int)(1, 2, 3, 4, 5); // expected-warning {{excess elements in vector initializer}} 18 vi = (vector int){1}; 19 vi = (vector int){1, 2}; 20 vi = (vector int){1, 2, 3, 4, 5}; // expected-warning {{excess elements in vector initializer}} 21 vector float vf; 22 vf = (vector float)(1.0); 23 24 return (v8){0, 1, 2, 3, 1, 2, 3, 4}; 25 26 // FIXME: test that (type)(fn)(args) still works with -faltivec 27 // FIXME: test that c++ overloaded commas still work -faltivec 28} 29 30void __attribute__((__overloadable__)) f(v4 a) 31{ 32} 33 34void __attribute__((__overloadable__)) f(int a) 35{ 36} 37 38void test() 39{ 40 v4 vGCC; 41 vector int vAltiVec; 42 43 f(vAltiVec); 44 vGCC = vAltiVec; 45 int res = vGCC > vAltiVec; 46 vAltiVec = 0 ? vGCC : vGCC; 47} 48