test/compiler/6340864/TestLongVect.java

changeset 4204
b2c669fd8114
parent 4001
006050192a5a
child 6876
710a3c8b516e
equal deleted inserted replaced
4203:fd1d564dd460 4204:b2c669fd8114
71 test_addv(a0, a1, (long)VALUE); 71 test_addv(a0, a1, (long)VALUE);
72 test_adda(a0, a1, a2); 72 test_adda(a0, a1, a2);
73 test_subc(a0, a1); 73 test_subc(a0, a1);
74 test_subv(a0, a1, (long)VALUE); 74 test_subv(a0, a1, (long)VALUE);
75 test_suba(a0, a1, a2); 75 test_suba(a0, a1, a2);
76
76 test_mulc(a0, a1); 77 test_mulc(a0, a1);
77 test_mulv(a0, a1, (long)VALUE); 78 test_mulv(a0, a1, (long)VALUE);
78 test_mula(a0, a1, a2); 79 test_mula(a0, a1, a2);
79 test_divc(a0, a1); 80 test_divc(a0, a1);
80 test_divv(a0, a1, (long)VALUE); 81 test_divv(a0, a1, (long)VALUE);
83 test_mulv(a0, a1, (long)-VALUE); 84 test_mulv(a0, a1, (long)-VALUE);
84 test_mula(a0, a1, a3); 85 test_mula(a0, a1, a3);
85 test_divc_n(a0, a1); 86 test_divc_n(a0, a1);
86 test_divv(a0, a1, (long)-VALUE); 87 test_divv(a0, a1, (long)-VALUE);
87 test_diva(a0, a1, a3); 88 test_diva(a0, a1, a3);
89
88 test_andc(a0, a1); 90 test_andc(a0, a1);
89 test_andv(a0, a1, (long)BIT_MASK); 91 test_andv(a0, a1, (long)BIT_MASK);
90 test_anda(a0, a1, a4); 92 test_anda(a0, a1, a4);
91 test_orc(a0, a1); 93 test_orc(a0, a1);
92 test_orv(a0, a1, (long)BIT_MASK); 94 test_orv(a0, a1, (long)BIT_MASK);
93 test_ora(a0, a1, a4); 95 test_ora(a0, a1, a4);
94 test_xorc(a0, a1); 96 test_xorc(a0, a1);
95 test_xorv(a0, a1, (long)BIT_MASK); 97 test_xorv(a0, a1, (long)BIT_MASK);
96 test_xora(a0, a1, a4); 98 test_xora(a0, a1, a4);
99
97 test_sllc(a0, a1); 100 test_sllc(a0, a1);
98 test_sllv(a0, a1, VALUE); 101 test_sllv(a0, a1, VALUE);
99 test_srlc(a0, a1); 102 test_srlc(a0, a1);
100 test_srlv(a0, a1, VALUE); 103 test_srlv(a0, a1, VALUE);
101 test_srac(a0, a1); 104 test_srac(a0, a1);
102 test_srav(a0, a1, VALUE); 105 test_srav(a0, a1, VALUE);
106
103 test_sllc_n(a0, a1); 107 test_sllc_n(a0, a1);
104 test_sllv(a0, a1, -VALUE); 108 test_sllv(a0, a1, -VALUE);
105 test_srlc_n(a0, a1); 109 test_srlc_n(a0, a1);
106 test_srlv(a0, a1, -VALUE); 110 test_srlv(a0, a1, -VALUE);
107 test_srac_n(a0, a1); 111 test_srac_n(a0, a1);
108 test_srav(a0, a1, -VALUE); 112 test_srav(a0, a1, -VALUE);
113
109 test_sllc_o(a0, a1); 114 test_sllc_o(a0, a1);
110 test_sllv(a0, a1, SHIFT); 115 test_sllv(a0, a1, SHIFT);
111 test_srlc_o(a0, a1); 116 test_srlc_o(a0, a1);
112 test_srlv(a0, a1, SHIFT); 117 test_srlv(a0, a1, SHIFT);
113 test_srac_o(a0, a1); 118 test_srac_o(a0, a1);
114 test_srav(a0, a1, SHIFT); 119 test_srav(a0, a1, SHIFT);
120
115 test_sllc_on(a0, a1); 121 test_sllc_on(a0, a1);
116 test_sllv(a0, a1, -SHIFT); 122 test_sllv(a0, a1, -SHIFT);
117 test_srlc_on(a0, a1); 123 test_srlc_on(a0, a1);
118 test_srlv(a0, a1, -SHIFT); 124 test_srlv(a0, a1, -SHIFT);
119 test_srac_on(a0, a1); 125 test_srac_on(a0, a1);
120 test_srav(a0, a1, -SHIFT); 126 test_srav(a0, a1, -SHIFT);
127
128 test_sllc_add(a0, a1);
129 test_sllv_add(a0, a1, ADD_INIT);
130 test_srlc_add(a0, a1);
131 test_srlv_add(a0, a1, ADD_INIT);
132 test_srac_add(a0, a1);
133 test_srav_add(a0, a1, ADD_INIT);
134
135 test_sllc_and(a0, a1);
136 test_sllv_and(a0, a1, BIT_MASK);
137 test_srlc_and(a0, a1);
138 test_srlv_and(a0, a1, BIT_MASK);
139 test_srac_and(a0, a1);
140 test_srav_and(a0, a1, BIT_MASK);
121 } 141 }
122 // Test and verify results 142 // Test and verify results
123 System.out.println("Verification"); 143 System.out.println("Verification");
124 int errn = 0; 144 int errn = 0;
125 { 145 {
352 test_srav(a0, a1, -SHIFT); 372 test_srav(a0, a1, -SHIFT);
353 for (int i=0; i<ARRLEN; i++) { 373 for (int i=0; i<ARRLEN; i++) {
354 errn += verify("test_srav_on: ", i, a0[i], (long)((long)(ADD_INIT+i)>>(-SHIFT))); 374 errn += verify("test_srav_on: ", i, a0[i], (long)((long)(ADD_INIT+i)>>(-SHIFT)));
355 } 375 }
356 376
377 test_sllc_add(a0, a1);
378 for (int i=0; i<ARRLEN; i++) {
379 errn += verify("test_sllc_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)<<VALUE));
380 }
381 test_sllv_add(a0, a1, ADD_INIT);
382 for (int i=0; i<ARRLEN; i++) {
383 errn += verify("test_sllv_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)<<VALUE));
384 }
385
386 test_srlc_add(a0, a1);
387 for (int i=0; i<ARRLEN; i++) {
388 errn += verify("test_srlc_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>>VALUE));
389 }
390 test_srlv_add(a0, a1, ADD_INIT);
391 for (int i=0; i<ARRLEN; i++) {
392 errn += verify("test_srlv_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>>VALUE));
393 }
394
395 test_srac_add(a0, a1);
396 for (int i=0; i<ARRLEN; i++) {
397 errn += verify("test_srac_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>VALUE));
398 }
399 test_srav_add(a0, a1, ADD_INIT);
400 for (int i=0; i<ARRLEN; i++) {
401 errn += verify("test_srav_add: ", i, a0[i], (long)(((long)(ADD_INIT+i) + ADD_INIT)>>VALUE));
402 }
403
404 test_sllc_and(a0, a1);
405 for (int i=0; i<ARRLEN; i++) {
406 errn += verify("test_sllc_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)<<VALUE));
407 }
408 test_sllv_and(a0, a1, BIT_MASK);
409 for (int i=0; i<ARRLEN; i++) {
410 errn += verify("test_sllv_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)<<VALUE));
411 }
412
413 test_srlc_and(a0, a1);
414 for (int i=0; i<ARRLEN; i++) {
415 errn += verify("test_srlc_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>>VALUE));
416 }
417 test_srlv_and(a0, a1, BIT_MASK);
418 for (int i=0; i<ARRLEN; i++) {
419 errn += verify("test_srlv_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>>VALUE));
420 }
421
422 test_srac_and(a0, a1);
423 for (int i=0; i<ARRLEN; i++) {
424 errn += verify("test_srac_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>VALUE));
425 }
426 test_srav_and(a0, a1, BIT_MASK);
427 for (int i=0; i<ARRLEN; i++) {
428 errn += verify("test_srav_and: ", i, a0[i], (long)(((long)(ADD_INIT+i) & BIT_MASK)>>VALUE));
429 }
430
357 } 431 }
358 432
359 if (errn > 0) 433 if (errn > 0)
360 return errn; 434 return errn;
361 435
693 for (int i=0; i<ITERS; i++) { 767 for (int i=0; i<ITERS; i++) {
694 test_srav(a0, a1, -SHIFT); 768 test_srav(a0, a1, -SHIFT);
695 } 769 }
696 end = System.currentTimeMillis(); 770 end = System.currentTimeMillis();
697 System.out.println("test_srav_on: " + (end - start)); 771 System.out.println("test_srav_on: " + (end - start));
772
773 start = System.currentTimeMillis();
774 for (int i=0; i<ITERS; i++) {
775 test_sllc_add(a0, a1);
776 }
777 end = System.currentTimeMillis();
778 System.out.println("test_sllc_add: " + (end - start));
779 start = System.currentTimeMillis();
780 for (int i=0; i<ITERS; i++) {
781 test_sllv_add(a0, a1, ADD_INIT);
782 }
783 end = System.currentTimeMillis();
784 System.out.println("test_sllv_add: " + (end - start));
785
786 start = System.currentTimeMillis();
787 for (int i=0; i<ITERS; i++) {
788 test_srlc_add(a0, a1);
789 }
790 end = System.currentTimeMillis();
791 System.out.println("test_srlc_add: " + (end - start));
792 start = System.currentTimeMillis();
793 for (int i=0; i<ITERS; i++) {
794 test_srlv_add(a0, a1, ADD_INIT);
795 }
796 end = System.currentTimeMillis();
797 System.out.println("test_srlv_add: " + (end - start));
798
799 start = System.currentTimeMillis();
800 for (int i=0; i<ITERS; i++) {
801 test_srac_add(a0, a1);
802 }
803 end = System.currentTimeMillis();
804 System.out.println("test_srac_add: " + (end - start));
805 start = System.currentTimeMillis();
806 for (int i=0; i<ITERS; i++) {
807 test_srav_add(a0, a1, ADD_INIT);
808 }
809 end = System.currentTimeMillis();
810 System.out.println("test_srav_add: " + (end - start));
811
812 start = System.currentTimeMillis();
813 for (int i=0; i<ITERS; i++) {
814 test_sllc_and(a0, a1);
815 }
816 end = System.currentTimeMillis();
817 System.out.println("test_sllc_and: " + (end - start));
818 start = System.currentTimeMillis();
819 for (int i=0; i<ITERS; i++) {
820 test_sllv_and(a0, a1, BIT_MASK);
821 }
822 end = System.currentTimeMillis();
823 System.out.println("test_sllv_and: " + (end - start));
824
825 start = System.currentTimeMillis();
826 for (int i=0; i<ITERS; i++) {
827 test_srlc_and(a0, a1);
828 }
829 end = System.currentTimeMillis();
830 System.out.println("test_srlc_and: " + (end - start));
831 start = System.currentTimeMillis();
832 for (int i=0; i<ITERS; i++) {
833 test_srlv_and(a0, a1, BIT_MASK);
834 }
835 end = System.currentTimeMillis();
836 System.out.println("test_srlv_and: " + (end - start));
837
838 start = System.currentTimeMillis();
839 for (int i=0; i<ITERS; i++) {
840 test_srac_and(a0, a1);
841 }
842 end = System.currentTimeMillis();
843 System.out.println("test_srac_and: " + (end - start));
844 start = System.currentTimeMillis();
845 for (int i=0; i<ITERS; i++) {
846 test_srav_and(a0, a1, BIT_MASK);
847 }
848 end = System.currentTimeMillis();
849 System.out.println("test_srav_and: " + (end - start));
698 850
699 return errn; 851 return errn;
700 } 852 }
701 853
702 static long test_sum(long[] a1) { 854 static long test_sum(long[] a1) {
852 static void test_sllv(long[] a0, long[] a1, int b) { 1004 static void test_sllv(long[] a0, long[] a1, int b) {
853 for (int i = 0; i < a0.length; i+=1) { 1005 for (int i = 0; i < a0.length; i+=1) {
854 a0[i] = (long)(a1[i]<<b); 1006 a0[i] = (long)(a1[i]<<b);
855 } 1007 }
856 } 1008 }
1009 static void test_sllc_add(long[] a0, long[] a1) {
1010 for (int i = 0; i < a0.length; i+=1) {
1011 a0[i] = (long)((a1[i] + ADD_INIT)<<VALUE);
1012 }
1013 }
1014 static void test_sllv_add(long[] a0, long[] a1, long b) {
1015 for (int i = 0; i < a0.length; i+=1) {
1016 a0[i] = (long)((a1[i] + b)<<VALUE);
1017 }
1018 }
1019 static void test_sllc_and(long[] a0, long[] a1) {
1020 for (int i = 0; i < a0.length; i+=1) {
1021 a0[i] = (long)((a1[i] & BIT_MASK)<<VALUE);
1022 }
1023 }
1024 static void test_sllv_and(long[] a0, long[] a1, long b) {
1025 for (int i = 0; i < a0.length; i+=1) {
1026 a0[i] = (long)((a1[i] & b)<<VALUE);
1027 }
1028 }
857 1029
858 static void test_srlc(long[] a0, long[] a1) { 1030 static void test_srlc(long[] a0, long[] a1) {
859 for (int i = 0; i < a0.length; i+=1) { 1031 for (int i = 0; i < a0.length; i+=1) {
860 a0[i] = (long)(a1[i]>>>VALUE); 1032 a0[i] = (long)(a1[i]>>>VALUE);
861 } 1033 }
878 static void test_srlv(long[] a0, long[] a1, int b) { 1050 static void test_srlv(long[] a0, long[] a1, int b) {
879 for (int i = 0; i < a0.length; i+=1) { 1051 for (int i = 0; i < a0.length; i+=1) {
880 a0[i] = (long)(a1[i]>>>b); 1052 a0[i] = (long)(a1[i]>>>b);
881 } 1053 }
882 } 1054 }
1055 static void test_srlc_add(long[] a0, long[] a1) {
1056 for (int i = 0; i < a0.length; i+=1) {
1057 a0[i] = (long)((a1[i] + ADD_INIT)>>>VALUE);
1058 }
1059 }
1060 static void test_srlv_add(long[] a0, long[] a1, long b) {
1061 for (int i = 0; i < a0.length; i+=1) {
1062 a0[i] = (long)((a1[i] + b)>>>VALUE);
1063 }
1064 }
1065 static void test_srlc_and(long[] a0, long[] a1) {
1066 for (int i = 0; i < a0.length; i+=1) {
1067 a0[i] = (long)((a1[i] & BIT_MASK)>>>VALUE);
1068 }
1069 }
1070 static void test_srlv_and(long[] a0, long[] a1, long b) {
1071 for (int i = 0; i < a0.length; i+=1) {
1072 a0[i] = (long)((a1[i] & b)>>>VALUE);
1073 }
1074 }
883 1075
884 static void test_srac(long[] a0, long[] a1) { 1076 static void test_srac(long[] a0, long[] a1) {
885 for (int i = 0; i < a0.length; i+=1) { 1077 for (int i = 0; i < a0.length; i+=1) {
886 a0[i] = (long)(a1[i]>>VALUE); 1078 a0[i] = (long)(a1[i]>>VALUE);
887 } 1079 }
902 } 1094 }
903 } 1095 }
904 static void test_srav(long[] a0, long[] a1, int b) { 1096 static void test_srav(long[] a0, long[] a1, int b) {
905 for (int i = 0; i < a0.length; i+=1) { 1097 for (int i = 0; i < a0.length; i+=1) {
906 a0[i] = (long)(a1[i]>>b); 1098 a0[i] = (long)(a1[i]>>b);
1099 }
1100 }
1101 static void test_srac_add(long[] a0, long[] a1) {
1102 for (int i = 0; i < a0.length; i+=1) {
1103 a0[i] = (long)((a1[i] + ADD_INIT)>>VALUE);
1104 }
1105 }
1106 static void test_srav_add(long[] a0, long[] a1, long b) {
1107 for (int i = 0; i < a0.length; i+=1) {
1108 a0[i] = (long)((a1[i] + b)>>VALUE);
1109 }
1110 }
1111 static void test_srac_and(long[] a0, long[] a1) {
1112 for (int i = 0; i < a0.length; i+=1) {
1113 a0[i] = (long)((a1[i] & BIT_MASK)>>VALUE);
1114 }
1115 }
1116 static void test_srav_and(long[] a0, long[] a1, long b) {
1117 for (int i = 0; i < a0.length; i+=1) {
1118 a0[i] = (long)((a1[i] & b)>>VALUE);
907 } 1119 }
908 } 1120 }
909 1121
910 static int verify(String text, int i, long elem, long val) { 1122 static int verify(String text, int i, long elem, long val) {
911 if (elem != val) { 1123 if (elem != val) {

mercurial