73 test_addv(a0, a1, (short)VALUE); |
73 test_addv(a0, a1, (short)VALUE); |
74 test_adda(a0, a1, a2); |
74 test_adda(a0, a1, a2); |
75 test_subc(a0, a1); |
75 test_subc(a0, a1); |
76 test_subv(a0, a1, (short)VALUE); |
76 test_subv(a0, a1, (short)VALUE); |
77 test_suba(a0, a1, a2); |
77 test_suba(a0, a1, a2); |
|
78 |
78 test_mulc(a0, a1); |
79 test_mulc(a0, a1); |
79 test_mulv(a0, a1, (short)VALUE); |
80 test_mulv(a0, a1, (short)VALUE); |
80 test_mula(a0, a1, a2); |
81 test_mula(a0, a1, a2); |
81 test_divc(a0, a1); |
82 test_divc(a0, a1); |
82 test_divv(a0, a1, (short)VALUE); |
83 test_divv(a0, a1, (short)VALUE); |
85 test_mulv(a0, a1, (short)-VALUE); |
86 test_mulv(a0, a1, (short)-VALUE); |
86 test_mula(a0, a1, a3); |
87 test_mula(a0, a1, a3); |
87 test_divc_n(a0, a1); |
88 test_divc_n(a0, a1); |
88 test_divv(a0, a1, (short)-VALUE); |
89 test_divv(a0, a1, (short)-VALUE); |
89 test_diva(a0, a1, a3); |
90 test_diva(a0, a1, a3); |
|
91 |
90 test_andc(a0, a1); |
92 test_andc(a0, a1); |
91 test_andv(a0, a1, (short)BIT_MASK); |
93 test_andv(a0, a1, (short)BIT_MASK); |
92 test_anda(a0, a1, a4); |
94 test_anda(a0, a1, a4); |
93 test_orc(a0, a1); |
95 test_orc(a0, a1); |
94 test_orv(a0, a1, (short)BIT_MASK); |
96 test_orv(a0, a1, (short)BIT_MASK); |
95 test_ora(a0, a1, a4); |
97 test_ora(a0, a1, a4); |
96 test_xorc(a0, a1); |
98 test_xorc(a0, a1); |
97 test_xorv(a0, a1, (short)BIT_MASK); |
99 test_xorv(a0, a1, (short)BIT_MASK); |
98 test_xora(a0, a1, a4); |
100 test_xora(a0, a1, a4); |
|
101 |
99 test_sllc(a0, a1); |
102 test_sllc(a0, a1); |
100 test_sllv(a0, a1, VALUE); |
103 test_sllv(a0, a1, VALUE); |
101 test_srlc(a0, a1); |
104 test_srlc(a0, a1); |
102 test_srlv(a0, a1, VALUE); |
105 test_srlv(a0, a1, VALUE); |
103 test_srac(a0, a1); |
106 test_srac(a0, a1); |
104 test_srav(a0, a1, VALUE); |
107 test_srav(a0, a1, VALUE); |
|
108 |
105 test_sllc_n(a0, a1); |
109 test_sllc_n(a0, a1); |
106 test_sllv(a0, a1, -VALUE); |
110 test_sllv(a0, a1, -VALUE); |
107 test_srlc_n(a0, a1); |
111 test_srlc_n(a0, a1); |
108 test_srlv(a0, a1, -VALUE); |
112 test_srlv(a0, a1, -VALUE); |
109 test_srac_n(a0, a1); |
113 test_srac_n(a0, a1); |
110 test_srav(a0, a1, -VALUE); |
114 test_srav(a0, a1, -VALUE); |
|
115 |
111 test_sllc_o(a0, a1); |
116 test_sllc_o(a0, a1); |
112 test_sllv(a0, a1, SHIFT); |
117 test_sllv(a0, a1, SHIFT); |
113 test_srlc_o(a0, a1); |
118 test_srlc_o(a0, a1); |
114 test_srlv(a0, a1, SHIFT); |
119 test_srlv(a0, a1, SHIFT); |
115 test_srac_o(a0, a1); |
120 test_srac_o(a0, a1); |
116 test_srav(a0, a1, SHIFT); |
121 test_srav(a0, a1, SHIFT); |
|
122 |
117 test_sllc_on(a0, a1); |
123 test_sllc_on(a0, a1); |
118 test_sllv(a0, a1, -SHIFT); |
124 test_sllv(a0, a1, -SHIFT); |
119 test_srlc_on(a0, a1); |
125 test_srlc_on(a0, a1); |
120 test_srlv(a0, a1, -SHIFT); |
126 test_srlv(a0, a1, -SHIFT); |
121 test_srac_on(a0, a1); |
127 test_srac_on(a0, a1); |
122 test_srav(a0, a1, -SHIFT); |
128 test_srav(a0, a1, -SHIFT); |
|
129 |
|
130 test_sllc_add(a0, a1); |
|
131 test_sllv_add(a0, a1, ADD_INIT); |
|
132 test_srlc_add(a0, a1); |
|
133 test_srlv_add(a0, a1, ADD_INIT); |
|
134 test_srac_add(a0, a1); |
|
135 test_srav_add(a0, a1, ADD_INIT); |
|
136 |
|
137 test_sllc_and(a0, a1); |
|
138 test_sllv_and(a0, a1, BIT_MASK); |
|
139 test_srlc_and(a0, a1); |
|
140 test_srlv_and(a0, a1, BIT_MASK); |
|
141 test_srac_and(a0, a1); |
|
142 test_srav_and(a0, a1, BIT_MASK); |
|
143 |
123 test_pack2(p2, a1); |
144 test_pack2(p2, a1); |
124 test_unpack2(a0, p2); |
145 test_unpack2(a0, p2); |
125 test_pack2_swap(p2, a1); |
146 test_pack2_swap(p2, a1); |
126 test_unpack2_swap(a0, p2); |
147 test_unpack2_swap(a0, p2); |
127 test_pack4(p4, a1); |
148 test_pack4(p4, a1); |
362 test_srav(a0, a1, -SHIFT); |
383 test_srav(a0, a1, -SHIFT); |
363 for (int i=0; i<ARRLEN; i++) { |
384 for (int i=0; i<ARRLEN; i++) { |
364 errn += verify("test_srav_on: ", i, a0[i], (short)((short)(ADD_INIT+i)>>(-SHIFT))); |
385 errn += verify("test_srav_on: ", i, a0[i], (short)((short)(ADD_INIT+i)>>(-SHIFT))); |
365 } |
386 } |
366 |
387 |
|
388 test_sllc_add(a0, a1); |
|
389 for (int i=0; i<ARRLEN; i++) { |
|
390 errn += verify("test_sllc_add: ", i, a0[i], (short)(((short)(ADD_INIT+i) + ADD_INIT)<<VALUE)); |
|
391 } |
|
392 test_sllv_add(a0, a1, ADD_INIT); |
|
393 for (int i=0; i<ARRLEN; i++) { |
|
394 errn += verify("test_sllv_add: ", i, a0[i], (short)(((short)(ADD_INIT+i) + ADD_INIT)<<VALUE)); |
|
395 } |
|
396 |
|
397 test_srlc_add(a0, a1); |
|
398 for (int i=0; i<ARRLEN; i++) { |
|
399 errn += verify("test_srlc_add: ", i, a0[i], (short)(((short)(ADD_INIT+i) + ADD_INIT)>>>VALUE)); |
|
400 } |
|
401 test_srlv_add(a0, a1, ADD_INIT); |
|
402 for (int i=0; i<ARRLEN; i++) { |
|
403 errn += verify("test_srlv_add: ", i, a0[i], (short)(((short)(ADD_INIT+i) + ADD_INIT)>>>VALUE)); |
|
404 } |
|
405 |
|
406 test_srac_add(a0, a1); |
|
407 for (int i=0; i<ARRLEN; i++) { |
|
408 errn += verify("test_srac_add: ", i, a0[i], (short)(((short)(ADD_INIT+i) + ADD_INIT)>>VALUE)); |
|
409 } |
|
410 test_srav_add(a0, a1, ADD_INIT); |
|
411 for (int i=0; i<ARRLEN; i++) { |
|
412 errn += verify("test_srav_add: ", i, a0[i], (short)(((short)(ADD_INIT+i) + ADD_INIT)>>VALUE)); |
|
413 } |
|
414 |
|
415 test_sllc_and(a0, a1); |
|
416 for (int i=0; i<ARRLEN; i++) { |
|
417 errn += verify("test_sllc_and: ", i, a0[i], (short)(((short)(ADD_INIT+i) & BIT_MASK)<<VALUE)); |
|
418 } |
|
419 test_sllv_and(a0, a1, BIT_MASK); |
|
420 for (int i=0; i<ARRLEN; i++) { |
|
421 errn += verify("test_sllv_and: ", i, a0[i], (short)(((short)(ADD_INIT+i) & BIT_MASK)<<VALUE)); |
|
422 } |
|
423 |
|
424 test_srlc_and(a0, a1); |
|
425 for (int i=0; i<ARRLEN; i++) { |
|
426 errn += verify("test_srlc_and: ", i, a0[i], (short)(((short)(ADD_INIT+i) & BIT_MASK)>>>VALUE)); |
|
427 } |
|
428 test_srlv_and(a0, a1, BIT_MASK); |
|
429 for (int i=0; i<ARRLEN; i++) { |
|
430 errn += verify("test_srlv_and: ", i, a0[i], (short)(((short)(ADD_INIT+i) & BIT_MASK)>>>VALUE)); |
|
431 } |
|
432 |
|
433 test_srac_and(a0, a1); |
|
434 for (int i=0; i<ARRLEN; i++) { |
|
435 errn += verify("test_srac_and: ", i, a0[i], (short)(((short)(ADD_INIT+i) & BIT_MASK)>>VALUE)); |
|
436 } |
|
437 test_srav_and(a0, a1, BIT_MASK); |
|
438 for (int i=0; i<ARRLEN; i++) { |
|
439 errn += verify("test_srav_and: ", i, a0[i], (short)(((short)(ADD_INIT+i) & BIT_MASK)>>VALUE)); |
|
440 } |
|
441 |
367 test_pack2(p2, a1); |
442 test_pack2(p2, a1); |
368 for (int i=0; i<ARRLEN/2; i++) { |
443 for (int i=0; i<ARRLEN/2; i++) { |
369 errn += verify("test_pack2: ", i, p2[i], ((int)(ADD_INIT+2*i) & 0xFFFF) | ((int)(ADD_INIT+2*i+1) << 16)); |
444 errn += verify("test_pack2: ", i, p2[i], ((int)(ADD_INIT+2*i) & 0xFFFF) | ((int)(ADD_INIT+2*i+1) << 16)); |
370 } |
445 } |
371 for (int i=0; i<ARRLEN; i++) { |
446 for (int i=0; i<ARRLEN; i++) { |
760 end = System.currentTimeMillis(); |
835 end = System.currentTimeMillis(); |
761 System.out.println("test_srav_on: " + (end - start)); |
836 System.out.println("test_srav_on: " + (end - start)); |
762 |
837 |
763 start = System.currentTimeMillis(); |
838 start = System.currentTimeMillis(); |
764 for (int i=0; i<ITERS; i++) { |
839 for (int i=0; i<ITERS; i++) { |
|
840 test_sllc_add(a0, a1); |
|
841 } |
|
842 end = System.currentTimeMillis(); |
|
843 System.out.println("test_sllc_add: " + (end - start)); |
|
844 start = System.currentTimeMillis(); |
|
845 for (int i=0; i<ITERS; i++) { |
|
846 test_sllv_add(a0, a1, ADD_INIT); |
|
847 } |
|
848 end = System.currentTimeMillis(); |
|
849 System.out.println("test_sllv_add: " + (end - start)); |
|
850 |
|
851 start = System.currentTimeMillis(); |
|
852 for (int i=0; i<ITERS; i++) { |
|
853 test_srlc_add(a0, a1); |
|
854 } |
|
855 end = System.currentTimeMillis(); |
|
856 System.out.println("test_srlc_add: " + (end - start)); |
|
857 start = System.currentTimeMillis(); |
|
858 for (int i=0; i<ITERS; i++) { |
|
859 test_srlv_add(a0, a1, ADD_INIT); |
|
860 } |
|
861 end = System.currentTimeMillis(); |
|
862 System.out.println("test_srlv_add: " + (end - start)); |
|
863 |
|
864 start = System.currentTimeMillis(); |
|
865 for (int i=0; i<ITERS; i++) { |
|
866 test_srac_add(a0, a1); |
|
867 } |
|
868 end = System.currentTimeMillis(); |
|
869 System.out.println("test_srac_add: " + (end - start)); |
|
870 start = System.currentTimeMillis(); |
|
871 for (int i=0; i<ITERS; i++) { |
|
872 test_srav_add(a0, a1, ADD_INIT); |
|
873 } |
|
874 end = System.currentTimeMillis(); |
|
875 System.out.println("test_srav_add: " + (end - start)); |
|
876 |
|
877 start = System.currentTimeMillis(); |
|
878 for (int i=0; i<ITERS; i++) { |
|
879 test_sllc_and(a0, a1); |
|
880 } |
|
881 end = System.currentTimeMillis(); |
|
882 System.out.println("test_sllc_and: " + (end - start)); |
|
883 start = System.currentTimeMillis(); |
|
884 for (int i=0; i<ITERS; i++) { |
|
885 test_sllv_and(a0, a1, BIT_MASK); |
|
886 } |
|
887 end = System.currentTimeMillis(); |
|
888 System.out.println("test_sllv_and: " + (end - start)); |
|
889 |
|
890 start = System.currentTimeMillis(); |
|
891 for (int i=0; i<ITERS; i++) { |
|
892 test_srlc_and(a0, a1); |
|
893 } |
|
894 end = System.currentTimeMillis(); |
|
895 System.out.println("test_srlc_and: " + (end - start)); |
|
896 start = System.currentTimeMillis(); |
|
897 for (int i=0; i<ITERS; i++) { |
|
898 test_srlv_and(a0, a1, BIT_MASK); |
|
899 } |
|
900 end = System.currentTimeMillis(); |
|
901 System.out.println("test_srlv_and: " + (end - start)); |
|
902 |
|
903 start = System.currentTimeMillis(); |
|
904 for (int i=0; i<ITERS; i++) { |
|
905 test_srac_and(a0, a1); |
|
906 } |
|
907 end = System.currentTimeMillis(); |
|
908 System.out.println("test_srac_and: " + (end - start)); |
|
909 start = System.currentTimeMillis(); |
|
910 for (int i=0; i<ITERS; i++) { |
|
911 test_srav_and(a0, a1, BIT_MASK); |
|
912 } |
|
913 end = System.currentTimeMillis(); |
|
914 System.out.println("test_srav_and: " + (end - start)); |
|
915 |
|
916 start = System.currentTimeMillis(); |
|
917 for (int i=0; i<ITERS; i++) { |
765 test_pack2(p2, a1); |
918 test_pack2(p2, a1); |
766 } |
919 } |
767 end = System.currentTimeMillis(); |
920 end = System.currentTimeMillis(); |
768 System.out.println("test_pack2: " + (end - start)); |
921 System.out.println("test_pack2: " + (end - start)); |
769 start = System.currentTimeMillis(); |
922 start = System.currentTimeMillis(); |
966 static void test_sllv(short[] a0, short[] a1, int b) { |
1119 static void test_sllv(short[] a0, short[] a1, int b) { |
967 for (int i = 0; i < a0.length; i+=1) { |
1120 for (int i = 0; i < a0.length; i+=1) { |
968 a0[i] = (short)(a1[i]<<b); |
1121 a0[i] = (short)(a1[i]<<b); |
969 } |
1122 } |
970 } |
1123 } |
|
1124 static void test_sllc_add(short[] a0, short[] a1) { |
|
1125 for (int i = 0; i < a0.length; i+=1) { |
|
1126 a0[i] = (short)((a1[i] + ADD_INIT)<<VALUE); |
|
1127 } |
|
1128 } |
|
1129 static void test_sllv_add(short[] a0, short[] a1, int b) { |
|
1130 for (int i = 0; i < a0.length; i+=1) { |
|
1131 a0[i] = (short)((a1[i] + b)<<VALUE); |
|
1132 } |
|
1133 } |
|
1134 static void test_sllc_and(short[] a0, short[] a1) { |
|
1135 for (int i = 0; i < a0.length; i+=1) { |
|
1136 a0[i] = (short)((a1[i] & BIT_MASK)<<VALUE); |
|
1137 } |
|
1138 } |
|
1139 static void test_sllv_and(short[] a0, short[] a1, int b) { |
|
1140 for (int i = 0; i < a0.length; i+=1) { |
|
1141 a0[i] = (short)((a1[i] & b)<<VALUE); |
|
1142 } |
|
1143 } |
971 |
1144 |
972 static void test_srlc(short[] a0, short[] a1) { |
1145 static void test_srlc(short[] a0, short[] a1) { |
973 for (int i = 0; i < a0.length; i+=1) { |
1146 for (int i = 0; i < a0.length; i+=1) { |
974 a0[i] = (short)(a1[i]>>>VALUE); |
1147 a0[i] = (short)(a1[i]>>>VALUE); |
975 } |
1148 } |
992 static void test_srlv(short[] a0, short[] a1, int b) { |
1165 static void test_srlv(short[] a0, short[] a1, int b) { |
993 for (int i = 0; i < a0.length; i+=1) { |
1166 for (int i = 0; i < a0.length; i+=1) { |
994 a0[i] = (short)(a1[i]>>>b); |
1167 a0[i] = (short)(a1[i]>>>b); |
995 } |
1168 } |
996 } |
1169 } |
|
1170 static void test_srlc_add(short[] a0, short[] a1) { |
|
1171 for (int i = 0; i < a0.length; i+=1) { |
|
1172 a0[i] = (short)((a1[i] + ADD_INIT)>>>VALUE); |
|
1173 } |
|
1174 } |
|
1175 static void test_srlv_add(short[] a0, short[] a1, int b) { |
|
1176 for (int i = 0; i < a0.length; i+=1) { |
|
1177 a0[i] = (short)((a1[i] + b)>>>VALUE); |
|
1178 } |
|
1179 } |
|
1180 static void test_srlc_and(short[] a0, short[] a1) { |
|
1181 for (int i = 0; i < a0.length; i+=1) { |
|
1182 a0[i] = (short)((a1[i] & BIT_MASK)>>>VALUE); |
|
1183 } |
|
1184 } |
|
1185 static void test_srlv_and(short[] a0, short[] a1, int b) { |
|
1186 for (int i = 0; i < a0.length; i+=1) { |
|
1187 a0[i] = (short)((a1[i] & b)>>>VALUE); |
|
1188 } |
|
1189 } |
997 |
1190 |
998 static void test_srac(short[] a0, short[] a1) { |
1191 static void test_srac(short[] a0, short[] a1) { |
999 for (int i = 0; i < a0.length; i+=1) { |
1192 for (int i = 0; i < a0.length; i+=1) { |
1000 a0[i] = (short)(a1[i]>>VALUE); |
1193 a0[i] = (short)(a1[i]>>VALUE); |
1001 } |
1194 } |
1016 } |
1209 } |
1017 } |
1210 } |
1018 static void test_srav(short[] a0, short[] a1, int b) { |
1211 static void test_srav(short[] a0, short[] a1, int b) { |
1019 for (int i = 0; i < a0.length; i+=1) { |
1212 for (int i = 0; i < a0.length; i+=1) { |
1020 a0[i] = (short)(a1[i]>>b); |
1213 a0[i] = (short)(a1[i]>>b); |
|
1214 } |
|
1215 } |
|
1216 static void test_srac_add(short[] a0, short[] a1) { |
|
1217 for (int i = 0; i < a0.length; i+=1) { |
|
1218 a0[i] = (short)((a1[i] + ADD_INIT)>>VALUE); |
|
1219 } |
|
1220 } |
|
1221 static void test_srav_add(short[] a0, short[] a1, int b) { |
|
1222 for (int i = 0; i < a0.length; i+=1) { |
|
1223 a0[i] = (short)((a1[i] + b)>>VALUE); |
|
1224 } |
|
1225 } |
|
1226 static void test_srac_and(short[] a0, short[] a1) { |
|
1227 for (int i = 0; i < a0.length; i+=1) { |
|
1228 a0[i] = (short)((a1[i] & BIT_MASK)>>VALUE); |
|
1229 } |
|
1230 } |
|
1231 static void test_srav_and(short[] a0, short[] a1, int b) { |
|
1232 for (int i = 0; i < a0.length; i+=1) { |
|
1233 a0[i] = (short)((a1[i] & b)>>VALUE); |
1021 } |
1234 } |
1022 } |
1235 } |
1023 |
1236 |
1024 static void test_pack2(int[] p2, short[] a1) { |
1237 static void test_pack2(int[] p2, short[] a1) { |
1025 if (p2.length*2 > a1.length) return; |
1238 if (p2.length*2 > a1.length) return; |