-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/compile: do more optimizations for ARMv6/V7 #19843
Comments
Unfortunately the go1 benchmark shows no improvement with such optimization. (Mul16 x y) -> (MULBB x y) |
go1 benchmarks (or any benchmark, really) aren't always useful. Their performance is a useful signal when:
For instance, I suspect the go1 benchmarks never do a 16-bit multiply. So only number 2 is in play. If you have an optimization you think is useful but doesn't affect the go1 benchmarks, write your own benchmark which is helped by your change. |
Try them again in Go1.10. |
Please also change milestone to go1.10 |
|
MULBB/MULABB have no improvement compared to MUL/MULA. |
Change https://golang.org/cl/61150 mentions this issue: |
MULAF, MULSF, MULAD, MULSD did not always improve code quality, since |
More ARMv6 & ARMv7 instructions are already merged into branch master. The compiler can use them to do further optimization.
Such as
(Mul16 x y) -> (MULBB x y)
(ADD z (MULBB x y) -> MULABB(x y z)
(SUB x (MUL y z) -> MULS(x y z) and so on.
I have prepared a optimization CL for all these MULA like instructions. But the final form depends on
how issue #19141 is fixed.
The text was updated successfully, but these errors were encountered: