| /* { dg-do run } */ |
| /* { dg-options "-O2" } */ |
| |
| #include "v2si.c" |
| |
| void __attribute__((noinline, noclone)) |
| init_val ( __v2si *p) |
| { |
| char *p2 = (char*)p; |
| p2[0] = 8; |
| p2[1] = 7; |
| p2[2] = 6; |
| p2[3] = 5; |
| p2[4] = 4; |
| p2[5] = 3; |
| p2[6] = 2; |
| p2[7] = 1; |
| } |
| |
| int |
| main (void) |
| { |
| { |
| __v2si val; |
| __v2si val2; |
| __v2si val3; |
| |
| init_val(&val); |
| |
| /* Copy val to val2. */ |
| vector_store (&val2, val); |
| |
| /* Copy val2 to val3. */ |
| val3 = vector_load (&val2); |
| |
| /* Compare val to val3. */ |
| { |
| char *p = (char*)&val; |
| char *p2 = (char*)&val3; |
| |
| if (p[0] != p2[0]) |
| return 1; |
| if (p[1] != p2[1]) |
| return 1; |
| if (p[2] != p2[2]) |
| return 1; |
| if (p[3] != p2[3]) |
| return 1; |
| if (p[4] != p2[4]) |
| return 1; |
| if (p[5] != p2[5]) |
| return 1; |
| if (p[6] != p2[6]) |
| return 1; |
| if (p[7] != p2[7]) |
| return 1; |
| } |
| } |
| |
| { |
| __v2si val4 = vector_const (); |
| char *p = (char*)&val4; |
| |
| if (p[0] != 1) |
| return 1; |
| if (p[1] != 0) |
| return 1; |
| if (p[2] != 0) |
| return 1; |
| if (p[3] != 0) |
| return 1; |
| if (p[4] != 2) |
| return 1; |
| if (p[5] != 0) |
| return 1; |
| if (p[6] != 0) |
| return 1; |
| if (p[7] != 0) |
| return 1; |
| } |
| |
| return 0; |
| } |