blob: b5758bc718379b72d5e65a54b64aae1c46abdd8d [file] [log] [blame]
Chris Lattnerdd173942010-04-14 03:54:58 +00001// RUN: %clang_cc1 %s -triple=powerpc-apple-darwin8 -faltivec -verify -pedantic -fsyntax-only
Nate Begeman2ef13e52009-08-10 23:49:36 +00002
3typedef int v4 __attribute((vector_size(16)));
4typedef short v8 __attribute((vector_size(16)));
5
6v8 foo(void) {
7 v8 a;
8 v4 b;
John Thompson58f97822010-04-20 05:01:46 +00009 a = (v8){4, 2};
Nate Begeman2ef13e52009-08-10 23:49:36 +000010 b = (v4)(5, 6, 7, 8, 9); // expected-warning {{excess elements in vector initializer}}
11 b = (v4)(5, 6, 8, 8.0f);
12 return (v8){0, 1, 2, 3, 1, 2, 3, 4};
13
14 // FIXME: test that (type)(fn)(args) still works with -faltivec
15 // FIXME: test that c++ overloaded commas still work -faltivec
16}
Douglas Gregor255210e2010-08-06 10:14:59 +000017
18void __attribute__((__overloadable__)) f(v4 a)
19{
20}
21
22void __attribute__((__overloadable__)) f(int a)
23{
24}
25
26void test()
27{
28 v4 vGCC;
29 vector int vAltiVec;
30
31 f(vAltiVec);
32 vGCC = vAltiVec;
33 vGCC = vGCC > vAltiVec;
34 vAltiVec = 0 ? vGCC : vGCC;
35}