| /* { dg-do compile { target powerpc*-*-* } } */ |
| /* { dg-require-effective-target powerpc_altivec_ok } */ |
| /* { dg-options "-mdejagnu-cpu=power6 -maltivec" } */ |
| |
| |
| vector unsigned char |
| foo_char (void) |
| { |
| return (vector unsigned char) { |
| #if __VEC_ELEMENT_REG_ORDER__ == __ORDER_BIG_ENDIAN__ |
| 0x80, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff |
| #else |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, |
| 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x80 |
| #endif |
| }; |
| } |
| |
| vector unsigned short |
| foo_short (void) |
| { |
| return (vector unsigned short) { |
| #if __VEC_ELEMENT_REG_ORDER__ == __ORDER_BIG_ENDIAN__ |
| 0x8000, 0x8000, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff |
| #else |
| 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x8000, 0x8000 |
| #endif |
| }; |
| } |
| |
| vector unsigned int |
| foo_int (void) |
| { |
| return (vector unsigned int) { |
| #if __VEC_ELEMENT_REG_ORDER__ == __ORDER_BIG_ENDIAN__ |
| 0x80000000u, 0x80000000u, 0xffffffffu, 0xffffffffu, |
| #else |
| 0xffffffffu, 0xffffffffu, 0x80000000u, 0x80000000u, |
| #endif |
| }; |
| } |
| |
| /* { dg-final { scan-assembler-times "vslb" 1 } } */ |
| /* { dg-final { scan-assembler-times "vslh" 1 } } */ |
| /* { dg-final { scan-assembler-times "vslw" 1 } } */ |
| /* { dg-final { scan-assembler-times "vsldoi" 3 } } */ |