Skip to content

Commit

Permalink
cmd/compile: use cheaper implementation of oneBit
Browse files Browse the repository at this point in the history
Updates #38547

file    before    after     Δ       %       
compile 19678112  19669808  -8304   -0.042% 
total   113143160 113134856 -8304   -0.007% 

Change-Id: I5f8afe17401dbdb7c7b3d66d95fe40821c499a92
Reviewed-on: https://go-review.googlesource.com/c/go/+/229127
Run-TryBot: Josh Bleecher Snyder <[email protected]>
Reviewed-by: Brad Fitzpatrick <[email protected]>
  • Loading branch information
josharian committed Apr 21, 2020
1 parent 50b1131 commit 066c47c
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/cmd/compile/internal/ssa/rewrite.go
Original file line number Diff line number Diff line change
Expand Up @@ -395,11 +395,11 @@ func ntz32(x int32) int { return bits.TrailingZeros32(uint32(x)) }
func ntz16(x int16) int { return bits.TrailingZeros16(uint16(x)) }
func ntz8(x int8) int { return bits.TrailingZeros8(uint8(x)) }

func oneBit(x int64) bool { return bits.OnesCount64(uint64(x)) == 1 }
func oneBit8(x int8) bool { return bits.OnesCount8(uint8(x)) == 1 }
func oneBit16(x int16) bool { return bits.OnesCount16(uint16(x)) == 1 }
func oneBit32(x int32) bool { return bits.OnesCount32(uint32(x)) == 1 }
func oneBit64(x int64) bool { return bits.OnesCount64(uint64(x)) == 1 }
func oneBit(x int64) bool { return x&(x-1) == 0 }
func oneBit8(x int8) bool { return x&(x-1) == 0 }
func oneBit16(x int16) bool { return x&(x-1) == 0 }
func oneBit32(x int32) bool { return x&(x-1) == 0 }
func oneBit64(x int64) bool { return x&(x-1) == 0 }

// nlo returns the number of leading ones.
func nlo(x int64) int64 {
Expand Down

0 comments on commit 066c47c

Please sign in to comment.