Merged revisions 208012,208018-208019,208021,208023-208030,208033,208037,208040-20804...
[official-gcc.git] / main / gcc / testsuite / gcc.dg / vmx / insert-vsx-be-order.c
blob672fc449eb56b93d753c64e24e8f61d504322562
1 /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
2 /* { dg-require-effective-target powerpc_vsx_ok } */
3 /* { dg-options "-maltivec=be -mabi=altivec -std=gnu99 -mvsx" } */
5 #include "harness.h"
7 static int vec_long_long_eq (vector long long x, vector long long y)
9 return (x[0] == y[0] && x[1] == y[1]);
12 static int vec_dbl_eq (vector double x, vector double y)
14 return (x[0] == y[0] && x[1] == y[1]);
17 static void test()
19 vector long long vl = {0, 1};
20 vector double vd = {0.0, 1.0};
21 vector long long vlr = vec_insert (2, vl, 0);
22 vector double vdr = vec_insert (2.0, vd, 1);
24 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
25 vector long long vler = {0, 2};
26 vector double vder = {2.0, 1.0};
27 #else
28 vector long long vler = {2, 1};
29 vector double vder = {0.0, 2.0};
30 #endif
32 check (vec_long_long_eq (vlr, vler), "vl");
33 check (vec_dbl_eq (vdr, vder), "vd");