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