1271159Skevlo/* { dg-options "-Wno-psabi" } */ 2271159Skevloextern void abort (void); 3271159Skevlo 4271159Skevlotypedef int V2SI __attribute__ ((vector_size (8))); 5271159Skevlotypedef unsigned int V2USI __attribute__ ((vector_size (8))); 6271159Skevlotypedef short V2HI __attribute__ ((vector_size (4))); 7271159Skevlotypedef unsigned int V2UHI __attribute__ ((vector_size (4))); 8271159Skevlo 9271159SkevloV2USI 10271159Skevlotest1 (V2SI x) 11271159Skevlo{ 12271159Skevlo return (V2USI) (V2SI) (long long) x; 13271159Skevlo} 14271159Skevlo 15271159Skevlolong long 16271159Skevlotest2 (V2SI x) 17271159Skevlo{ 18271159Skevlo return (long long) (V2USI) (V2SI) (long long) x; 19271159Skevlo} 20271159Skevlo 21271159Skevloint 22271159Skevlomain (void) 23271159Skevlo{ 24271159Skevlo if (sizeof (short) != 2 || sizeof (int) != 4 || sizeof (long long) != 8) 25271159Skevlo return 0; 26271159Skevlo 27271159Skevlo union { V2SI x; int y[2]; V2USI z; long long l; } u; 28271159Skevlo V2SI a = { -3, -3 }; 29271159Skevlo u.z = test1 (a); 30271159Skevlo if (u.y[0] != -3 || u.y[1] != -3) 31271159Skevlo abort (); 32271159Skevlo 33271159Skevlo u.l = test2 (a); 34271159Skevlo if (u.y[0] != -3 || u.y[1] != -3) 35271159Skevlo abort (); 36271159Skevlo return 0; 37271159Skevlo} 38271159Skevlo