annotate gcc/testsuite/gcc.dg/vmx/lde-be-order.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* { dg-options "-maltivec=be -mabi=altivec -std=gnu99 -mno-vsx" } */
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 #include "harness.h"
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 static unsigned char svuc[16] __attribute__ ((aligned (16)));
kono
parents:
diff changeset
6 static signed char svsc[16] __attribute__ ((aligned (16)));
kono
parents:
diff changeset
7 static unsigned short svus[8] __attribute__ ((aligned (16)));
kono
parents:
diff changeset
8 static signed short svss[8] __attribute__ ((aligned (16)));
kono
parents:
diff changeset
9 static unsigned int svui[4] __attribute__ ((aligned (16)));
kono
parents:
diff changeset
10 static signed int svsi[4] __attribute__ ((aligned (16)));
kono
parents:
diff changeset
11 static float svf[4] __attribute__ ((aligned (16)));
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 static void init ()
kono
parents:
diff changeset
14 {
kono
parents:
diff changeset
15 int i;
kono
parents:
diff changeset
16 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
kono
parents:
diff changeset
17 for (i = 15; i >= 0; --i)
kono
parents:
diff changeset
18 #else
kono
parents:
diff changeset
19 for (i = 0; i < 16; ++i)
kono
parents:
diff changeset
20 #endif
kono
parents:
diff changeset
21 {
kono
parents:
diff changeset
22 svuc[i] = i;
kono
parents:
diff changeset
23 svsc[i] = i - 8;
kono
parents:
diff changeset
24 }
kono
parents:
diff changeset
25 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
kono
parents:
diff changeset
26 for (i = 7; i >= 0; --i)
kono
parents:
diff changeset
27 #else
kono
parents:
diff changeset
28 for (i = 0; i < 8; ++i)
kono
parents:
diff changeset
29 #endif
kono
parents:
diff changeset
30 {
kono
parents:
diff changeset
31 svus[i] = i;
kono
parents:
diff changeset
32 svss[i] = i - 4;
kono
parents:
diff changeset
33 }
kono
parents:
diff changeset
34 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
kono
parents:
diff changeset
35 for (i = 3; i >= 0; --i)
kono
parents:
diff changeset
36 #else
kono
parents:
diff changeset
37 for (i = 0; i < 4; ++i)
kono
parents:
diff changeset
38 #endif
kono
parents:
diff changeset
39 {
kono
parents:
diff changeset
40 svui[i] = i;
kono
parents:
diff changeset
41 svsi[i] = i - 2;
kono
parents:
diff changeset
42 svf[i] = i * 1.0f;
kono
parents:
diff changeset
43 }
kono
parents:
diff changeset
44 }
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 static void test ()
kono
parents:
diff changeset
47 {
kono
parents:
diff changeset
48 vector unsigned char vuc;
kono
parents:
diff changeset
49 vector signed char vsc;
kono
parents:
diff changeset
50 vector unsigned short vus;
kono
parents:
diff changeset
51 vector signed short vss;
kono
parents:
diff changeset
52 vector unsigned int vui;
kono
parents:
diff changeset
53 vector signed int vsi;
kono
parents:
diff changeset
54 vector float vf;
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 init ();
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 vuc = vec_lde (9*1, (unsigned char *)svuc);
kono
parents:
diff changeset
59 vsc = vec_lde (14*1, (signed char *)svsc);
kono
parents:
diff changeset
60 vus = vec_lde (7*2, (unsigned short *)svus);
kono
parents:
diff changeset
61 vss = vec_lde (1*2, (signed short *)svss);
kono
parents:
diff changeset
62 vui = vec_lde (3*4, (unsigned int *)svui);
kono
parents:
diff changeset
63 vsi = vec_lde (2*4, (signed int *)svsi);
kono
parents:
diff changeset
64 vf = vec_lde (0*4, (float *)svf);
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 check (vec_extract (vuc, 9) == 9, "vuc");
kono
parents:
diff changeset
67 check (vec_extract (vsc, 14) == 6, "vsc");
kono
parents:
diff changeset
68 check (vec_extract (vus, 7) == 7, "vus");
kono
parents:
diff changeset
69 check (vec_extract (vss, 1) == -3, "vss");
kono
parents:
diff changeset
70 check (vec_extract (vui, 3) == 3, "vui");
kono
parents:
diff changeset
71 check (vec_extract (vsi, 2) == 0, "vsi");
kono
parents:
diff changeset
72 check (vec_extract (vf, 0) == 0.0, "vf");
kono
parents:
diff changeset
73 }