| #include "harness.h" | |
| static void test() | |
| { | |
| /* Input vectors. */ | |
| vector unsigned char vuca = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; | |
| vector unsigned char vucb | |
| = {16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}; | |
| vector unsigned char vucp = {0,31,1,30,2,29,3,28,4,27,5,26,6,25,7,24}; | |
| vector signed char vsca | |
| = {-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1}; | |
| vector signed char vscb = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; | |
| vector unsigned char vscp = {0,31,1,30,2,29,3,28,4,27,5,26,6,25,7,24}; | |
| vector unsigned short vusa = {0,1,2,3,4,5,6,7}; | |
| vector unsigned short vusb = {8,9,10,11,12,13,14,15}; | |
| vector unsigned char vusp = {0,1,30,31,2,3,28,29,4,5,26,27,6,7,24,25}; | |
| vector signed short vssa = {-8,-7,-6,-5,-4,-3,-2,-1}; | |
| vector signed short vssb = {0,1,2,3,4,5,6,7}; | |
| vector unsigned char vssp = {0,1,30,31,2,3,28,29,4,5,26,27,6,7,24,25}; | |
| vector unsigned int vuia = {0,1,2,3}; | |
| vector unsigned int vuib = {4,5,6,7}; | |
| vector unsigned char vuip = {0,1,2,3,28,29,30,31,4,5,6,7,24,25,26,27}; | |
| vector signed int vsia = {-4,-3,-2,-1}; | |
| vector signed int vsib = {0,1,2,3}; | |
| vector unsigned char vsip = {0,1,2,3,28,29,30,31,4,5,6,7,24,25,26,27}; | |
| vector float vfa = {-4.0,-3.0,-2.0,-1.0}; | |
| vector float vfb = {0.0,1.0,2.0,3.0}; | |
| vector unsigned char vfp = {0,1,2,3,28,29,30,31,4,5,6,7,24,25,26,27}; | |
| /* Result vectors. */ | |
| vector unsigned char vuc; | |
| vector signed char vsc; | |
| vector unsigned short vus; | |
| vector signed short vss; | |
| vector unsigned int vui; | |
| vector signed int vsi; | |
| vector float vf; | |
| /* Expected result vectors. */ | |
| vector unsigned char vucr = {0,31,1,30,2,29,3,28,4,27,5,26,6,25,7,24}; | |
| vector signed char vscr = {-16,15,-15,14,-14,13,-13,12,-12,11,-11,10,-10,9,-9,8}; | |
| vector unsigned short vusr = {0,15,1,14,2,13,3,12}; | |
| vector signed short vssr = {-8,7,-7,6,-6,5,-5,4}; | |
| vector unsigned int vuir = {0,7,1,6}; | |
| vector signed int vsir = {-4,3,-3,2}; | |
| vector float vfr = {-4.0,3.0,-3.0,2.0}; | |
| vuc = vec_perm (vuca, vucb, vucp); | |
| vsc = vec_perm (vsca, vscb, vscp); | |
| vus = vec_perm (vusa, vusb, vusp); | |
| vss = vec_perm (vssa, vssb, vssp); | |
| vui = vec_perm (vuia, vuib, vuip); | |
| vsi = vec_perm (vsia, vsib, vsip); | |
| vf = vec_perm (vfa, vfb, vfp ); | |
| check (vec_all_eq (vuc, vucr), "vuc"); | |
| check (vec_all_eq (vsc, vscr), "vsc"); | |
| check (vec_all_eq (vus, vusr), "vus"); | |
| check (vec_all_eq (vss, vssr), "vss"); | |
| check (vec_all_eq (vui, vuir), "vui"); | |
| check (vec_all_eq (vsi, vsir), "vsi"); | |
| check (vec_all_eq (vf, vfr), "vf" ); | |
| } |