new alpha division routines
Richard Henderson
rth@twiddle.net
Tue Mar 30 22:27:00 GMT 2004
Here are timings of your test program with (A) old remqu, (B) your
routine, modified to avoid FIX insns, (C) my new routine, tested
against (X) 233MHz ev45, (Y) 500MHz ev56, (Z) 617Mhz ev67.
It appears that ev4 *really* preferrs to avoid the second division.
Perhaps that's aided by using divs the second time. But even ev56
and ev67 still see a slight win with my routine.
r~
EV45, old:
3 7 1f 7f 80 7f7 7ffff 7ffffd9 ffffffffff
0 42 42 42 42 42 42 42 42 42
f 85 71 46 46 46 46 46 46 46
fe 125 114 92 57 57 46 46 46 46
fed 169 158 136 114 103 57 46 46 46
fedc 213 202 180 158 147 103 46 46 46
fedcba 301 290 268 246 235 191 103 46 46
fedcba98 389 378 356 334 323 279 191 103 46
fedcba9876 477 466 444 422 411 367 279 191 46
fedcba987654 565 554 532 510 499 455 367 279 136
fedcba98765432 653 642 620 598 587 543 455 367 224
3fb72ea61d950c8 675 664 642 620 609 565 477 389 246
fedcba987654321 697 686 664 642 631 587 499 411 268
EV45, yours:
3 7 1f 7f 80 7f7 7ffff 7ffffd9 ffffffffff
0 119 119 119 119 23 119 119 119 119
f 182 119 119 119 23 119 119 119 119
fe 194 201 189 119 23 119 119 119 119
fed 183 186 188 195 23 119 119 119 119
fedc 183 199 205 195 23 193 119 119 119
fedcba 184 190 205 194 23 197 195 119 119
fedcba98 191 197 194 185 23 194 195 197 119
fedcba9876 187 193 203 189 23 190 196 200 119
fedcba987654 187 193 198 191 23 194 196 198 198
fedcba98765432 188 260 265 190 23 198 198 194 196
3fb72ea61d950c8 269 260 265 190 23 198 198 194 196
fedcba987654321 257 279 272 259 23 198 198 194 196
EV45, mine:
3 7 1f 7f 80 7f7 7ffff 7ffffd9 ffffffffff
0 98 107 93 94 84 100 88 90 86
f 85 105 92 86 87 95 85 93 85
fe 97 104 92 84 89 92 85 95 86
fed 86 89 91 98 91 95 94 98 91
fedc 86 102 108 98 92 96 94 98 90
fedcba 87 93 108 97 95 100 98 100 94
fedcba98 94 100 97 88 96 97 98 100 96
fedcba9876 90 96 106 92 100 93 99 103 98
fedcba987654 90 96 101 94 101 97 99 101 101
fedcba98765432 115 139 125 117 127 125 125 121 123
3fb72ea61d950c8 154 172 148 117 127 125 125 121 123
fedcba987654321 179 200 181 140 127 125 125 121 123
EV56, old:
3 7 1f 7f 80 7f7 7ffff 7ffffd9 ffffffffff
0 39 39 39 39 39 39 39 39 39
f 67 60 39 39 39 39 39 39 39
fe 90 83 69 57 57 39 39 39 39
fed 118 111 97 83 76 57 39 39 39
fedc 146 139 125 111 104 76 39 39 39
fedcba 202 195 181 167 160 132 76 39 39
fedcba98 258 251 237 223 216 188 132 76 39
fedcba9876 314 307 293 279 272 244 188 132 39
fedcba987654 370 363 349 335 328 300 244 188 97
fedcba98765432 426 419 405 391 384 356 300 244 153
3fb72ea61d950c8 440 433 419 405 398 370 314 258 167
fedcba987654321 454 447 433 419 412 384 328 272 181
EV56, yours:
3 7 1f 7f 80 7f7 7ffff 7ffffd9 ffffffffff
0 29 29 29 29 19 29 29 29 29
f 93 29 29 29 19 29 29 29 29
fe 105 112 100 29 19 29 29 29 29
fed 94 98 100 106 19 29 29 29 29
fedc 95 110 116 106 19 103 29 29 29
fedcba 96 101 116 105 19 107 106 29 29
fedcba98 102 108 105 96 19 105 106 108 29
fedcba9876 99 104 113 100 19 101 108 110 29
fedcba987654 99 104 110 102 19 106 108 108 109
fedcba98765432 99 158 163 101 19 108 109 106 107
3fb72ea61d950c8 166 158 163 101 19 108 109 106 107
fedcba987654321 154 176 170 157 19 108 109 106 107
EV56, mine:
3 7 1f 7f 80 7f7 7ffff 7ffffd9 ffffffffff
0 83 91 78 80 70 84 73 75 72
f 70 90 78 72 72 80 71 79 70
fe 82 89 77 70 74 77 71 79 71
fed 71 75 77 83 76 81 80 83 75
fedc 72 87 93 83 78 80 79 82 75
fedcba 73 78 93 82 80 84 83 84 79
fedcba98 79 85 82 73 82 82 83 85 81
fedcba9876 76 81 90 77 85 78 85 87 83
fedcba987654 76 81 87 79 87 83 85 85 86
fedcba98765432 89 110 99 91 100 98 99 96 97
3fb72ea61d950c8 122 133 126 91 100 98 99 96 97
fedcba987654321 129 141 139 118 100 98 99 96 97
EV67, old:
3 7 1f 7f 80 7f7 7ffff 7ffffd9 ffffffffff
0 19 17 20 19 19 19 20 19 37
f 35 30 19 19 17 17 17 19 19
fe 70 50 40 26 23 19 37 19 19
fed 101 95 72 50 45 23 19 19 19
fedc 125 135 122 98 84 45 20 19 19
fedcba 152 147 137 126 122 128 45 20 37
fedcba98 209 204 194 183 179 159 132 45 20
fedcba9876 231 227 216 207 201 182 141 128 19
fedcba987654 272 267 257 246 242 222 182 141 72
fedcba98765432 312 306 297 287 282 261 222 182 131
3fb72ea61d950c8 321 317 306 297 291 272 231 192 126
fedcba987654321 332 327 317 306 302 282 242 201 137
EV67, yours:
3 7 1f 7f 80 7f7 7ffff 7ffffd9 ffffffffff
0 55 55 55 55 12 55 55 55 55
f 113 55 55 55 11 55 55 56 55
fe 123 100 96 55 11 55 55 55 55
fed 123 113 113 113 12 55 55 55 55
fedc 113 123 113 113 12 113 55 55 55
fedcba 96 104 124 113 11 113 113 55 55
fedcba98 113 124 123 113 11 113 118 113 55
fedcba9876 124 113 113 124 12 153 100 113 56
fedcba987654 113 113 113 113 11 113 113 113 124
fedcba98765432 97 169 169 113 11 113 94 113 113
3fb72ea61d950c8 133 133 155 94 12 100 94 94 113
fedcba987654321 155 138 155 155 12 123 113 118 113
EV67, mine:
3 7 1f 7f 80 7f7 7ffff 7ffffd9 ffffffffff
0 73 73 73 74 74 74 74 74 74
f 74 86 86 88 86 86 88 86 88
fe 86 88 86 88 101 87 86 86 88
fed 86 86 86 86 88 86 86 86 88
fedc 86 86 86 86 86 87 88 86 86
fedcba 86 86 88 86 86 86 87 86 88
fedcba98 86 86 88 86 86 86 88 86 86
fedcba9876 88 87 86 86 86 88 86 88 86
fedcba987654 86 86 86 86 86 86 86 88 88
fedcba98765432 83 88 99 99 99 99 99 99 99
3fb72ea61d950c8 112 117 87 99 99 99 99 99 99
fedcba987654321 122 135 123 109 99 99 99 99 99
More information about the Libc-alpha
mailing list