diff options
author | Nate Begeman <natebegeman@mac.com> | 2009-08-09 17:55:44 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2009-08-09 17:55:44 +0000 |
commit | 25b4fdb9d63095448e6cbc97b8865b36b0c8cbb6 (patch) | |
tree | a9a6eb7d4057c432773c1eaa5dd98b099aafc0a9 /test/Sema/altivec-init.c | |
parent | 10c40eee98c600d24437474463b056f323d0cfd2 (diff) | |
download | clang-25b4fdb9d63095448e6cbc97b8865b36b0c8cbb6.tar.gz |
AltiVec-style vector initializer syntax, vec4 a = (vec4)(a, b, c, d);
In addition to being defined by the AltiVec PIM, this is also the vector
initializer syntax used by OpenCL, so that vector literals are compatible
with macro arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78535 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Sema/altivec-init.c')
-rw-r--r-- | test/Sema/altivec-init.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Sema/altivec-init.c b/test/Sema/altivec-init.c new file mode 100644 index 0000000000..6185186903 --- /dev/null +++ b/test/Sema/altivec-init.c @@ -0,0 +1,16 @@ +// RUN: clang-cc %s -faltivec -verify -pedantic -fsyntax-only -fblocks=0 + +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}; // expected-error {{too few elements in vector initialization (expected 8 elements, have 2)}} + b = (v4)(5, 6, 7, 8, 9); // expected-warning {{excess elements in vector initializer}} + b = (v4)(5, 6, 8, 8.0f); + return (v8){0, 1, 2, 3, 1, 2, 3, 4}; + + // FIXME: test that (type)(fn)(args) still works with -faltivec + // FIXME: test that c++ overloaded commas still work -faltivec +} |