test/fixedbugs/bug356.go fails for sparc64 SSA backend
Closed this issue · 1 comments
binarycrusader commented
# go run run.go -- fixedbugs/bug356.go
incorrect output
BUG bug344a 0
FAIL fixedbugs/bug356.go 0.370s
binarycrusader commented
This turned out to be a register allocation / scheduling bug for SLLmax/SRLmax:
We can't safely write to the output register(s) until we're done referencing the input register(s) as they may be the same due to register allocation scheduling by the SSA backend.
As such, stash the second argument in a temporary register so that we can safely refer to it even after writing to the output register.
Fixed by the fix for #28.