• Keith Randall's avatar
    cmd/compile: implement non-constant rotates · 7e07e635
    Keith Randall authored
    Makes math/bits.Rotate{Left,Right} fast on amd64.
    
    name              old time/op  new time/op  delta
    RotateLeft-12     7.42ns ± 6%  5.45ns ± 6%  -26.54%   (p=0.000 n=9+10)
    RotateLeft8-12    4.77ns ± 5%  3.42ns ± 7%  -28.25%   (p=0.000 n=8+10)
    RotateLeft16-12   4.82ns ± 8%  3.40ns ± 7%  -29.36%  (p=0.000 n=10+10)
    RotateLeft32-12   4.87ns ± 7%  3.48ns ± 7%  -28.51%    (p=0.000 n=8+9)
    RotateLeft64-12   5.23ns ±10%  3.35ns ± 6%  -35.97%   (p=0.000 n=9+10)
    RotateRight-12    7.59ns ± 8%  5.71ns ± 1%  -24.72%   (p=0.000 n=10+8)
    RotateRight8-12   4.98ns ± 7%  3.36ns ± 9%  -32.55%  (p=0.000 n=10+10)
    RotateRight16-12  5.12ns ± 2%  3.45ns ± 5%  -32.62%  (p=0.000 n=10+10)
    RotateRight32-12  4.80ns ± 6%  3.42ns ±16%  -28.68%  (p=0.000 n=10+10)
    RotateRight64-12  4.78ns ± 6%  3.42ns ± 6%  -28.50%  (p=0.000 n=10+10)
    
    Update #18940
    
    Change-Id: Ie79fb5581c489ed4d3b859314c5e669a134c119b
    Reviewed-on: https://go-review.googlesource.com/39711
    Run-TryBot: Keith Randall <khr@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarJosh Bleecher Snyder <josharian@gmail.com>
    7e07e635
Name
Last commit
Last update
..
gen Loading commit data...
TODO Loading commit data...
block.go Loading commit data...
cache.go Loading commit data...
check.go Loading commit data...
checkbce.go Loading commit data...
compile.go Loading commit data...
config.go Loading commit data...
copyelim.go Loading commit data...
copyelim_test.go Loading commit data...
critical.go Loading commit data...
cse.go Loading commit data...
cse_test.go Loading commit data...
deadcode.go Loading commit data...
deadcode_test.go Loading commit data...
deadstore.go Loading commit data...
deadstore_test.go Loading commit data...
decompose.go Loading commit data...
dom.go Loading commit data...
dom_test.go Loading commit data...
export_test.go Loading commit data...
flagalloc.go Loading commit data...
func.go Loading commit data...
func_test.go Loading commit data...
fuse.go Loading commit data...
fuse_test.go Loading commit data...
html.go Loading commit data...
id.go Loading commit data...
layout.go Loading commit data...
lca.go Loading commit data...
lca_test.go Loading commit data...
likelyadjust.go Loading commit data...
location.go Loading commit data...
loop_test.go Loading commit data...
loopbce.go Loading commit data...
loopreschedchecks.go Loading commit data...
lower.go Loading commit data...
magic.go Loading commit data...
magic_test.go Loading commit data...
nilcheck.go Loading commit data...
nilcheck_test.go Loading commit data...
op.go Loading commit data...
opGen.go Loading commit data...
opt.go Loading commit data...
passbm_test.go Loading commit data...
phielim.go Loading commit data...
phiopt.go Loading commit data...
print.go Loading commit data...
prove.go Loading commit data...
redblack32.go Loading commit data...
redblack32_test.go Loading commit data...
regalloc.go Loading commit data...
regalloc_test.go Loading commit data...
rewrite.go Loading commit data...
rewrite386.go Loading commit data...
rewriteAMD64.go Loading commit data...
rewriteARM.go Loading commit data...
rewriteARM64.go Loading commit data...
rewriteMIPS.go Loading commit data...
rewriteMIPS64.go Loading commit data...
rewritePPC64.go Loading commit data...
rewriteS390X.go Loading commit data...
rewrite_test.go Loading commit data...
rewritedec.go Loading commit data...
rewritedec64.go Loading commit data...
rewritegeneric.go Loading commit data...
schedule.go Loading commit data...
schedule_test.go Loading commit data...
shift_test.go Loading commit data...
shortcircuit.go Loading commit data...
shortcircuit_test.go Loading commit data...
sizeof_test.go Loading commit data...
sparsemap.go Loading commit data...
sparseset.go Loading commit data...
sparsetree.go Loading commit data...
sparsetreemap.go Loading commit data...
stackalloc.go Loading commit data...
stackframe.go Loading commit data...
tighten.go Loading commit data...
trim.go Loading commit data...
type.go Loading commit data...
type_test.go Loading commit data...
value.go Loading commit data...
writebarrier.go Loading commit data...
writebarrier_test.go Loading commit data...
zcse.go Loading commit data...