| // RUN: %clang_cc1 %s -triple=powerpc-apple-darwin8 -target-feature +altivec -verify -pedantic -fsyntax-only |
| |
| typedef int v4 __attribute((vector_size(16))); |
| typedef short v8 __attribute((vector_size(16))); |
| |
| v8 foo(void) { |
| v8 a; |
| v4 b; |
| a = (v8){4, 2}; |
| b = (v4)(5, 6, 7, 8, 9); // expected-warning {{excess elements in vector initializer}} |
| b = (v4)(5, 6, 8, 8.0f); |
| |
| vector int vi; |
| vi = (vector int)(1); |
| vi = (vector int)(1, 2); // expected-error {{number of elements must be either one or match the size of the vector}} |
| vi = (vector int)(1, 2, 3, 4); |
| vi = (vector int)(1, 2, 3, 4, 5); // expected-warning {{excess elements in vector initializer}} |
| vi = (vector int){1}; |
| vi = (vector int){1, 2}; |
| vi = (vector int){1, 2, 3, 4, 5}; // expected-warning {{excess elements in vector initializer}} |
| vector float vf; |
| vf = (vector float)(1.0); |
| |
| return (v8){0, 1, 2, 3, 1, 2, 3, 4}; |
| |
| // FIXME: test that (type)(fn)(args) still works with -maltivec |
| // FIXME: test that c++ overloaded commas still work -maltivec |
| } |
| |
| void __attribute__((__overloadable__)) f(v4 a) |
| { |
| } |
| |
| void __attribute__((__overloadable__)) f(int a) |
| { |
| } |
| |
| void test() |
| { |
| v4 vGCC; |
| vector int vAltiVec; |
| |
| f(vAltiVec); |
| vGCC = vAltiVec; |
| int res = vGCC > vAltiVec; |
| vAltiVec = 0 ? vGCC : vGCC; |
| } |