blob: 264791801c97b834397fad39d3c4faac15fb3104 [file] [log] [blame]
/* APPLE LOCAL file AltiVec */
/* { dg-do run { target powerpc*-*-* } } */
/* { dg-options "-faltivec" } */
#include <stdio.h>
typedef vector signed int VSI;
VSI VI(
VSI v2,
int gpr3,
VSI v3,
int gpr4,
VSI v4,
int gpr5,
VSI v5,
int gpr6,
int gpr7,
int gpr8,
int gpr9,
VSI v6,
int gpr10, /* gpr3-gpr10 in registers */
VSI v7,
VSI v8,
VSI v9,
VSI v10,
VSI v11,
VSI v12,
VSI v13, /* All in v2-v13 */
volatile VSI v14,
int gpr11,
int gpr12,
int gpr13,
int gpr14,
VSI v15,
VSI v16, int* sum)
{
*sum = gpr3 + gpr4 + gpr5 + gpr6 + gpr7 + gpr8 + gpr9 + gpr10 + gpr11 + gpr12 + gpr13 + gpr14;
return v2+v3+v4+v5+v6+v7+v8+v9+v10+v11+v12+v13+v14+v15+v16;
}
extern void abort();
int main()
{
union u {
VSI uv;
int val[4];
} union_var;
int i;
int sum;
union_var.uv =
VI((VSI){1,1,1,1},3,(VSI){1,1,1,1},4,(VSI){1,1,1,1},5,(VSI){1,1,1,1},6,7,8,9,
(VSI){1,1,1,1},10,(VSI){1,1,1,1},(VSI){1,1,1,1},(VSI){1,1,1,1},(VSI){1,1,1,1},
(VSI){1,1,1,1},(VSI){1,1,1,1},(VSI){1,1,1,1},(VSI){1,1,1,1},11,12,13,14,
(VSI){1,1,1,1},(VSI){1,1,1,1}, &sum);
if (sum != 102)
abort();
for (i=0; i < 4; i++)
if (union_var.val[i] != 15)
abort();
return 0;
}