annotate gcc/testsuite/gcc.dg/vmx/unpack-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 -Wno-shift-overflow" } */
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 #include "harness.h"
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 #define BIG 4294967295
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 static void test()
kono
parents:
diff changeset
8 {
kono
parents:
diff changeset
9 /* Input vectors. */
kono
parents:
diff changeset
10 vector signed char vsc = {-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
kono
parents:
diff changeset
11 vector bool char vbc = {0,255,255,0,0,0,255,0,255,0,0,255,255,255,0,255};
kono
parents:
diff changeset
12 vector pixel vp = {(0<<15) + (1<<10) + (2<<5) + 3,
kono
parents:
diff changeset
13 (1<<15) + (4<<10) + (5<<5) + 6,
kono
parents:
diff changeset
14 (0<<15) + (7<<10) + (8<<5) + 9,
kono
parents:
diff changeset
15 (1<<15) + (10<<10) + (11<<5) + 12,
kono
parents:
diff changeset
16 (1<<15) + (13<<10) + (14<<5) + 15,
kono
parents:
diff changeset
17 (0<<15) + (16<<10) + (17<<5) + 18,
kono
parents:
diff changeset
18 (1<<15) + (19<<10) + (20<<5) + 21,
kono
parents:
diff changeset
19 (0<<15) + (22<<10) + (23<<5) + 24};
kono
parents:
diff changeset
20 vector signed short vss = {-4,-3,-2,-1,0,1,2,3};
kono
parents:
diff changeset
21 vector bool short vbs = {0,65535,65535,0,0,0,65535,0};
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 /* Result vectors. */
kono
parents:
diff changeset
24 vector signed short vsch, vscl;
kono
parents:
diff changeset
25 vector bool short vbsh, vbsl;
kono
parents:
diff changeset
26 vector unsigned int vuih, vuil;
kono
parents:
diff changeset
27 vector signed int vsih, vsil;
kono
parents:
diff changeset
28 vector bool int vbih, vbil;
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 /* Expected result vectors. */
kono
parents:
diff changeset
31 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
kono
parents:
diff changeset
32 vector signed short vschr = {0,1,2,3,4,5,6,7};
kono
parents:
diff changeset
33 vector signed short vsclr = {-8,-7,-6,-5,-4,-3,-2,-1};
kono
parents:
diff changeset
34 vector bool short vbshr = {65535,0,0,65535,65535,65535,0,65535};
kono
parents:
diff changeset
35 vector bool short vbslr = {0,65535,65535,0,0,0,65535,0};
kono
parents:
diff changeset
36 vector unsigned int vuihr = {(65535<<24) + (13<<16) + (14<<8) + 15,
kono
parents:
diff changeset
37 (0<<24) + (16<<16) + (17<<8) + 18,
kono
parents:
diff changeset
38 (65535<<24) + (19<<16) + (20<<8) + 21,
kono
parents:
diff changeset
39 (0<<24) + (22<<16) + (23<<8) + 24};
kono
parents:
diff changeset
40 vector unsigned int vuilr = {(0<<24) + (1<<16) + (2<<8) + 3,
kono
parents:
diff changeset
41 (65535<<24) + (4<<16) + (5<<8) + 6,
kono
parents:
diff changeset
42 (0<<24) + (7<<16) + (8<<8) + 9,
kono
parents:
diff changeset
43 (65535<<24) + (10<<16) + (11<<8) + 12};
kono
parents:
diff changeset
44 vector signed int vsihr = {0,1,2,3};
kono
parents:
diff changeset
45 vector signed int vsilr = {-4,-3,-2,-1};
kono
parents:
diff changeset
46 vector bool int vbihr = {0,0,BIG,0};
kono
parents:
diff changeset
47 vector bool int vbilr = {0,BIG,BIG,0};
kono
parents:
diff changeset
48 #else
kono
parents:
diff changeset
49 vector signed short vschr = {-8,-7,-6,-5,-4,-3,-2,-1};
kono
parents:
diff changeset
50 vector signed short vsclr = {0,1,2,3,4,5,6,7};
kono
parents:
diff changeset
51 vector bool short vbshr = {0,65535,65535,0,0,0,65535,0};
kono
parents:
diff changeset
52 vector bool short vbslr = {65535,0,0,65535,65535,65535,0,65535};
kono
parents:
diff changeset
53 vector unsigned int vuihr = {(0<<24) + (1<<16) + (2<<8) + 3,
kono
parents:
diff changeset
54 (65535<<24) + (4<<16) + (5<<8) + 6,
kono
parents:
diff changeset
55 (0<<24) + (7<<16) + (8<<8) + 9,
kono
parents:
diff changeset
56 (65535<<24) + (10<<16) + (11<<8) + 12};
kono
parents:
diff changeset
57 vector unsigned int vuilr = {(65535<<24) + (13<<16) + (14<<8) + 15,
kono
parents:
diff changeset
58 (0<<24) + (16<<16) + (17<<8) + 18,
kono
parents:
diff changeset
59 (65535<<24) + (19<<16) + (20<<8) + 21,
kono
parents:
diff changeset
60 (0<<24) + (22<<16) + (23<<8) + 24};
kono
parents:
diff changeset
61 vector signed int vsihr = {-4,-3,-2,-1};
kono
parents:
diff changeset
62 vector signed int vsilr = {0,1,2,3};
kono
parents:
diff changeset
63 vector bool int vbihr = {0,BIG,BIG,0};
kono
parents:
diff changeset
64 vector bool int vbilr = {0,0,BIG,0};
kono
parents:
diff changeset
65 #endif
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 vsch = vec_unpackh (vsc);
kono
parents:
diff changeset
68 vscl = vec_unpackl (vsc);
kono
parents:
diff changeset
69 vbsh = vec_unpackh (vbc);
kono
parents:
diff changeset
70 vbsl = vec_unpackl (vbc);
kono
parents:
diff changeset
71 vuih = vec_unpackh (vp);
kono
parents:
diff changeset
72 vuil = vec_unpackl (vp);
kono
parents:
diff changeset
73 vsih = vec_unpackh (vss);
kono
parents:
diff changeset
74 vsil = vec_unpackl (vss);
kono
parents:
diff changeset
75 vbih = vec_unpackh (vbs);
kono
parents:
diff changeset
76 vbil = vec_unpackl (vbs);
kono
parents:
diff changeset
77
kono
parents:
diff changeset
78 check (vec_all_eq (vsch, vschr), "vsch");
kono
parents:
diff changeset
79 check (vec_all_eq (vscl, vsclr), "vscl");
kono
parents:
diff changeset
80 check (vec_all_eq (vbsh, vbshr), "vbsh");
kono
parents:
diff changeset
81 check (vec_all_eq (vbsl, vbslr), "vbsl");
kono
parents:
diff changeset
82 check (vec_all_eq (vuih, vuihr), "vuih");
kono
parents:
diff changeset
83 check (vec_all_eq (vuil, vuilr), "vuil");
kono
parents:
diff changeset
84 check (vec_all_eq (vsih, vsihr), "vsih");
kono
parents:
diff changeset
85 check (vec_all_eq (vsil, vsilr), "vsil");
kono
parents:
diff changeset
86 check (vec_all_eq (vbih, vbihr), "vbih");
kono
parents:
diff changeset
87 check (vec_all_eq (vbil, vbilr), "vbil");
kono
parents:
diff changeset
88 }