mirror of git://gcc.gnu.org/git/gcc.git
29 lines
648 B
C
29 lines
648 B
C
/* { dg-do run } */
|
|
|
|
extern void abort (void);
|
|
|
|
int f(void) { return 2; }
|
|
unsigned int g(void) { return 5; }
|
|
unsigned int h = 1;
|
|
|
|
typedef unsigned int vec __attribute__((vector_size(16)));
|
|
|
|
vec i = { 1, 2, 3, 4};
|
|
|
|
vec fv1(void) { return i + (h ? f() : g()); }
|
|
vec fv2(void) { return (h ? f() : g()) + i; }
|
|
|
|
int main()
|
|
{
|
|
vec i, j;
|
|
j = fv1();
|
|
if (j[0] != 3) abort();
|
|
i = fv2();
|
|
if (i[0] != 3) abort();
|
|
return 0;
|
|
}
|
|
|
|
/* Ignore a warning that is irrelevant to the purpose of this test. */
|
|
/* { dg-prune-output ".*GCC vector returned by reference.*" } */
|
|
/* { dg-prune-output "changes the ABI" } */
|