blob: 7030c0a481e6326fa14884397782901f3a836cc7 [file] [log] [blame]
/* PR target/101384 */
/* { dg-do run } */
/* { dg-options "-O2 -Wno-psabi -w" } */
typedef unsigned char __attribute__((__vector_size__ (16))) U;
typedef unsigned short __attribute__((__vector_size__ (8 * sizeof (short)))) V;
U u;
V v;
__attribute__((noipa)) U
foo (void)
{
U y = (U) { 0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff,
0x80, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff } + u;
return y;
}
__attribute__((noipa)) V
bar (void)
{
V y = (V) { 0x8000, 0xffff, 0x8000, 0xffff,
0x8000, 0xffff, 0x8000, 0xffff } + v;
return y;
}
int
main ()
{
U x = foo ();
for (unsigned i = 0; i < 16; i++)
if (x[i] != ((i & 3) ? 0xff : 0x80))
__builtin_abort ();
V y = bar ();
for (unsigned i = 0; i < 8; i++)
if (y[i] != ((i & 1) ? 0xffff : 0x8000))
__builtin_abort ();
return 0;
}