xref: /llvm-project/clang/test/Sema/builtin_vectorelements.c (revision de65b6bec6771fe50f3aa73fdb79594f675be456)
1 // RUN: %clang_cc1 -triple aarch64 -fsyntax-only -verify -disable-llvm-passes %s
2 
test_builtin_vectorelements()3 void test_builtin_vectorelements() {
4   __builtin_vectorelements(int); // expected-error {{argument to __builtin_vectorelements must be of vector type}}
5   __builtin_vectorelements(float); // expected-error {{argument to __builtin_vectorelements must be of vector type}}
6   __builtin_vectorelements(long*); // expected-error {{argument to __builtin_vectorelements must be of vector type}}
7 
8   int a;
9   __builtin_vectorelements(a); // expected-error {{argument to __builtin_vectorelements must be of vector type}}
10 
11   typedef int veci4 __attribute__((vector_size(16)));
12   (void) __builtin_vectorelements(veci4);
13 
14   veci4 vec;
15   (void) __builtin_vectorelements(vec);
16 
17   typedef veci4 some_other_vec;
18   (void) __builtin_vectorelements(some_other_vec);
19 
20   struct Foo { int a; };
21   __builtin_vectorelements(struct Foo); // expected-error {{argument to __builtin_vectorelements must be of vector type}}
22 }
23 
24