2014-08-04 Ed Schonberg <schonberg@adacore.com>
[official-gcc.git] / gcc / testsuite / gcc.dg / vmx / ldl-vsx-be-order.c
blob1dd0ca33ea281875da25cef9cb2de3ab8cd205f8
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 unsigned long long svul[2] __attribute__ ((aligned (16)));
8 static double svd[2] __attribute__ ((aligned (16)));
10 static void init ()
12 unsigned int i;
13 for (i = 0; i < 2; ++i)
15 svul[i] = i;
16 svd[i] = i * 1.0;
20 static void test ()
22 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
23 vector unsigned long long evul = {1,0};
24 vector double evd = {1.0,0.0};
25 #else
26 vector unsigned long long evul = {0,1};
27 vector double evd = {0.0,1.0};
28 #endif
30 vector unsigned long long vul;
31 vector double vd;
32 unsigned i;
34 init ();
36 vul = vec_ldl (0, (vector unsigned long long *)svul);
37 vd = vec_ldl (0, (vector double *)svd);
39 for (i = 0; i < 2; ++i)
41 check (vul[i] == evul[i], "vul");
42 check (vd[i] == evd[i], "vd" );