• Michael Munday's avatar
    cmd/asm, cmd/compile: optimize math.Abs and math.Copysign on s390x · 96cdacb9
    Michael Munday authored
    This change adds three new instructions:
    
    - LPDFR: load positive (math.Abs(x))
    - LNDFR: load negative (-math.Abs(x))
    - CPSDR: copy sign (math.Copysign(x, y))
    
    By making use of GPR <-> FPR moves we can now compile math.Abs and
    math.Copysign to these instructions using SSA rules.
    
    This CL also adds new rules to merge address generation into combined
    load operations. This makes GPR <-> FPR move matching more reliable.
    
    name                 old time/op  new time/op  delta
    Copysign             1.85ns ± 0%  1.40ns ± 1%  -24.65%  (p=0.000 n=8+10)
    Abs                  1.58ns ± 1%  0.73ns ± 1%  -53.64%  (p=0.000 n=10+10)
    
    The geo mean improvement for all math package benchmarks was 4.6%.
    
    Change-Id: I0cec35c5c1b3fb45243bf666b56b57faca981bc9
    Reviewed-on: https://go-review.googlesource.com/73950
    Run-TryBot: Michael Munday <mike.munday@ibm.com>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    96cdacb9
Name
Last commit
Last update
.github Loading commit data...
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...