• David Chase's avatar
    cmd/compile: PPC64, elide unnecessary sign extension · 2f0b8f88
    David Chase authored
    Inputs to store[BHW] and cmpW(U) need not be correct
    in more bits than are used by the instruction.
    
    Added a pattern tailored to what appears to be cgo boilerplate.
    Added a pattern (also seen in cgo boilerplate and hashing)
    to replace {EQ,NE}-CMP-ANDconst with {EQ-NE}-ANDCCconst.
    Added a pattern to clean up ANDconst shift distance inputs
    (this was seen in hashing).
    
    Simplify repeated and,or,xor.
    
    Fixes #17109.
    
    Change-Id: I68eac83e3e614d69ffe473a08953048c8b066d88
    Reviewed-on: https://go-review.googlesource.com/30455
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    2f0b8f88
ssa.go 25.1 KB