1 /* Disable warnings to squelch deprecation message about -maltivec=be. */
2 /* { dg-options "-w -maltivec=be -mabi=altivec -std=gnu99 -mno-vsx" } */
3
4 #include "harness.h"
5
test()6 static void test()
7 {
8 vector unsigned char va = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
9 vector signed char vb = {-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
10 vector unsigned short vc = {0,1,2,3,4,5,6,7};
11 vector signed short vd = {-4,-3,-2,-1,0,1,2,3};
12 vector unsigned int ve = {0,1,2,3};
13 vector signed int vf = {-2,-1,0,1};
14 vector float vg = {-2.0f,-1.0f,0.0f,1.0f};
15
16 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
17 check (vec_all_eq (vec_insert (16, va, 5),
18 ((vector unsigned char)
19 {0,1,2,3,4,5,6,7,8,9,16,11,12,13,14,15})),
20 "vec_insert (va LE)");
21 check (vec_all_eq (vec_insert (-16, vb, 0),
22 ((vector signed char)
23 {-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,-16})),
24 "vec_insert (vb LE)");
25 check (vec_all_eq (vec_insert (16, vc, 7),
26 ((vector unsigned short){16,1,2,3,4,5,6,7})),
27 "vec_insert (vc LE)");
28 check (vec_all_eq (vec_insert (-16, vd, 3),
29 ((vector signed short){-4,-3,-2,-1,-16,1,2,3})),
30 "vec_insert (vd LE)");
31 check (vec_all_eq (vec_insert (16, ve, 2),
32 ((vector unsigned int){0,16,2,3})),
33 "vec_insert (ve LE)");
34 check (vec_all_eq (vec_insert (-16, vf, 1),
35 ((vector signed int){-2,-1,-16,1})),
36 "vec_insert (vf LE)");
37 check (vec_all_eq (vec_insert (-16.0f, vg, 0),
38 ((vector float){-2.0f,-1.0f,0.0f,-16.0f})),
39 "vec_insert (vg LE)");
40 #else
41 check (vec_all_eq (vec_insert (16, va, 5),
42 ((vector unsigned char)
43 {0,1,2,3,4,16,6,7,8,9,10,11,12,13,14,15})),
44 "vec_insert (va BE)");
45 check (vec_all_eq (vec_insert (-16, vb, 0),
46 ((vector signed char)
47 {-16,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7})),
48 "vec_insert (vb BE)");
49 check (vec_all_eq (vec_insert (16, vc, 7),
50 ((vector unsigned short){0,1,2,3,4,5,6,16})),
51 "vec_insert (vc BE)");
52 check (vec_all_eq (vec_insert (-16, vd, 3),
53 ((vector signed short){-4,-3,-2,-16,0,1,2,3})),
54 "vec_insert (vd BE)");
55 check (vec_all_eq (vec_insert (16, ve, 2),
56 ((vector unsigned int){0,1,16,3})),
57 "vec_insert (ve BE)");
58 check (vec_all_eq (vec_insert (-16, vf, 1),
59 ((vector signed int){-2,-16,0,1})),
60 "vec_insert (vf BE)");
61 check (vec_all_eq (vec_insert (-16.0f, vg, 0),
62 ((vector float){-16.0f,-1.0f,0.0f,1.0f})),
63 "vec_insert (vg BE)");
64 #endif
65 }
66
67