1 // RUN: %clang_cc1 %s -triple=powerpc-ibm-aix -target-feature +altivec -verify -pedantic -fsyntax-only
3 typedef int v4
__attribute((vector_size(16)));
4 typedef short v8
__attribute((vector_size(16)));
10 b
= (v4
)(5, 6, 7, 8, 9); // expected-warning {{excess elements in vector initializer}}
11 b
= (v4
)(5, 6, 8, 8.0f
);
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}}
19 vi
= (vector
int){1, 2};
20 vi
= (vector
int){1, 2, 3, 4, 5}; // expected-warning {{excess elements in vector initializer}}
22 vf
= (vector
float)(1.0);
24 return (v8
){0, 1, 2, 3, 1, 2, 3, 4};
26 // FIXME: test that (type)(fn)(args) still works with -maltivec
27 // FIXME: test that c++ overloaded commas still work -maltivec
30 void __attribute__((__overloadable__
)) f(v4 a
)
34 void __attribute__((__overloadable__
)) f(int a
)
45 int res
= vGCC
> vAltiVec
;
46 vAltiVec
= 0 ? vGCC
: vGCC
;
49 typedef struct VecMem
{
53 // The following should not assert. See qiongsiwu1's comment here:
54 // https://reviews.llvm.org/D115670
56 vector
signed local_vec
= {1, 2, 3, 4};