]> Cypherpunks repositories - gostls13.git/commitdiff
Revert "cmd/compile: optimize 386's math.bits.TrailingZeros16"
authorBryan C. Mills <bcmills@google.com>
Wed, 28 Aug 2019 12:42:37 +0000 (12:42 +0000)
committerBryan C. Mills <bcmills@google.com>
Wed, 28 Aug 2019 12:57:59 +0000 (12:57 +0000)
This reverts CL 189277.

Reason for revert: broke 32-bit builders.

Updates #33902

Change-Id: Ie5f180d0371a90e5057ed578c334372e5fc3a286
Reviewed-on: https://go-review.googlesource.com/c/go/+/192097
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/ssa/gen/386.rules
src/cmd/compile/internal/ssa/rewrite386.go
test/codegen/mathbits.go

index 069e2f6c9e96ad83ba775801cd9590d949c1ea95..9871e11a09934f393a9a35107944aa7c7d9059c6 100644 (file)
@@ -3370,7 +3370,7 @@ func init() {
                func(s *state, n *Node, args []*ssa.Value) *ssa.Value {
                        return s.newValue1(ssa.OpCtz16, types.Types[TINT], args[0])
                },
-               sys.AMD64, sys.ARM, sys.I386, sys.ARM64, sys.Wasm)
+               sys.AMD64, sys.ARM, sys.ARM64, sys.Wasm)
        addF("math/bits", "TrailingZeros16",
                func(s *state, n *Node, args []*ssa.Value) *ssa.Value {
                        x := s.newValue1(ssa.OpZeroExt16to64, types.Types[TUINT64], args[0])
index 395ebb085d9c18ccaf05df1d3607a9a0404f6aef..d7cbba17186f54869b5b653043d871f711bbc828 100644 (file)
@@ -66,8 +66,6 @@
 
 (Sqrt x) -> (SQRTSD x)
 
-(Ctz16 x) -> (BSFL (ORLconst <typ.UInt32> [0x10000] x))
-
 // Lowering extension
 (SignExt8to16  x) -> (MOVBLSX x)
 (SignExt8to32  x) -> (MOVBLSX x)
index 233656156009ae403952895775601811a36cd247..812aa9420d66f49b6e0241d59924704ac53b42f6 100644 (file)
@@ -360,8 +360,6 @@ func rewriteValue386(v *Value) bool {
                return rewriteValue386_OpConstBool_0(v)
        case OpConstNil:
                return rewriteValue386_OpConstNil_0(v)
-       case OpCtz16:
-               return rewriteValue386_OpCtz16_0(v)
        case OpCvt32Fto32:
                return rewriteValue386_OpCvt32Fto32_0(v)
        case OpCvt32Fto64F:
@@ -20785,22 +20783,6 @@ func rewriteValue386_OpConstNil_0(v *Value) bool {
                return true
        }
 }
-func rewriteValue386_OpCtz16_0(v *Value) bool {
-       b := v.Block
-       typ := &b.Func.Config.Types
-       // match: (Ctz16 x)
-       // cond:
-       // result: (BSFL (ORLconst <typ.UInt32> [0x10000] x))
-       for {
-               x := v.Args[0]
-               v.reset(Op386BSFL)
-               v0 := b.NewValue0(v.Pos, Op386ORLconst, typ.UInt32)
-               v0.AuxInt = 0x10000
-               v0.AddArg(x)
-               v.AddArg(v0)
-               return true
-       }
-}
 func rewriteValue386_OpCvt32Fto32_0(v *Value) bool {
        // match: (Cvt32Fto32 x)
        // cond:
index 779ea6e3227619cdfc36bcfd71525d79cdefcb40..0d94bd1bc8f26f19d6f69e25e6fbee1f06be4e1a 100644 (file)
@@ -296,7 +296,6 @@ func TrailingZeros32(n uint32) int {
 
 func TrailingZeros16(n uint16) int {
        // amd64:"BSFL","BTSL\\t\\$16"
-       // 386:"BSFL\t"
        // arm:"ORR\t\\$65536","CLZ",-"MOVHU\tR"
        // arm64:"ORR\t\\$65536","RBITW","CLZW",-"MOVHU\tR",-"RBIT\t",-"CLZ\t"
        // s390x:"FLOGR","OR\t\\$65536"