]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: reduce rulegen's for loop verbosity
authorDaniel Martí <mvdan@mvdan.cc>
Wed, 13 Mar 2019 11:57:29 +0000 (11:57 +0000)
committerDaniel Martí <mvdan@mvdan.cc>
Fri, 22 Mar 2019 15:41:51 +0000 (15:41 +0000)
A lot of the naked for loops begin like:

for {
v := b.Control
if v.Op != OpConstBool {
break
}
...
return true
}

Instead, write them out in a more compact and readable way:

for v.Op == OpConstBool {
...
return true
}

This requires the addition of two bytes.Buffer writers, as this helps us
make a decision based on future pieces of generated code. This probably
makes rulegen slightly slower, but that's not noticeable; the code
generation still takes ~3.5s on my laptop, excluding build time.

The "v := b.Control" declaration can be moved to the top of each
function. Even though the rules can modify b.Control when firing, they
also make the function return, so v can't be used again.

While at it, remove three unnecessary lines from the top of each
rewriteBlock func.

In total, this results in ~4k lines removed from the generated code, and
a slight improvement in readability.

Change-Id: I317e4c6a4842c64df506f4513375475fad2aeec5
Reviewed-on: https://go-review.googlesource.com/c/go/+/167399
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
16 files changed:
src/cmd/compile/internal/ssa/gen/rulegen.go
src/cmd/compile/internal/ssa/rewrite386.go
src/cmd/compile/internal/ssa/rewrite386splitload.go
src/cmd/compile/internal/ssa/rewriteAMD64.go
src/cmd/compile/internal/ssa/rewriteAMD64splitload.go
src/cmd/compile/internal/ssa/rewriteARM.go
src/cmd/compile/internal/ssa/rewriteARM64.go
src/cmd/compile/internal/ssa/rewriteMIPS.go
src/cmd/compile/internal/ssa/rewriteMIPS64.go
src/cmd/compile/internal/ssa/rewritePPC64.go
src/cmd/compile/internal/ssa/rewriteS390X.go
src/cmd/compile/internal/ssa/rewriteWasm.go
src/cmd/compile/internal/ssa/rewritedec.go
src/cmd/compile/internal/ssa/rewritedec64.go
src/cmd/compile/internal/ssa/rewritedecArgs.go
src/cmd/compile/internal/ssa/rewritegeneric.go

index 2082ba15c45f3df75dc4b2c8857bfecbaf4f1358..4ca6796f7c664b5592dca6590ee4096da5df7ecf 100644 (file)
@@ -217,7 +217,7 @@ func genRulesSuffix(arch arch, suff string) {
 
                                canFail = false
                                fmt.Fprintf(buf, "for {\n")
-                               pos, matchCanFail := genMatch(buf, arch, match, rule.loc)
+                               pos, _, matchCanFail := genMatch(buf, arch, match, rule.loc)
                                if pos == "" {
                                        pos = "v.Pos"
                                }
@@ -273,11 +273,10 @@ func genRulesSuffix(arch arch, suff string) {
        // so we can make this one function with a switch.
        fmt.Fprintf(w, "func rewriteBlock%s%s(b *Block) bool {\n", arch.name, suff)
        fmt.Fprintln(w, "config := b.Func.Config")
-       fmt.Fprintln(w, "_ = config")
-       fmt.Fprintln(w, "fe := b.Func.fe")
-       fmt.Fprintln(w, "_ = fe")
        fmt.Fprintln(w, "typ := &config.Types")
        fmt.Fprintln(w, "_ = typ")
+       fmt.Fprintln(w, "v := b.Control")
+       fmt.Fprintln(w, "_ = v")
        fmt.Fprintf(w, "switch b.Kind {\n")
        ops = nil
        for op := range blockrules {
@@ -292,27 +291,26 @@ func genRulesSuffix(arch arch, suff string) {
                        fmt.Fprintf(w, "// cond: %s\n", cond)
                        fmt.Fprintf(w, "// result: %s\n", result)
 
-                       fmt.Fprintf(w, "for {\n")
-
                        _, _, _, aux, s := extract(match) // remove parens, then split
 
+                       loopw := new(bytes.Buffer)
+
                        // check match of control value
                        pos := ""
+                       checkOp := ""
                        if s[0] != "nil" {
-                               fmt.Fprintf(w, "v := b.Control\n")
                                if strings.Contains(s[0], "(") {
-                                       pos, _ = genMatch0(w, arch, s[0], "v", map[string]struct{}{}, false, rule.loc)
+                                       pos, checkOp, _ = genMatch0(loopw, arch, s[0], "v", map[string]struct{}{}, rule.loc)
                                } else {
-                                       fmt.Fprintf(w, "_ = v\n") // in case we don't use v
-                                       fmt.Fprintf(w, "%s := b.Control\n", s[0])
+                                       fmt.Fprintf(loopw, "%s := b.Control\n", s[0])
                                }
                        }
                        if aux != "" {
-                               fmt.Fprintf(w, "%s := b.Aux\n", aux)
+                               fmt.Fprintf(loopw, "%s := b.Aux\n", aux)
                        }
 
                        if cond != "" {
-                               fmt.Fprintf(w, "if !(%s) {\nbreak\n}\n", cond)
+                               fmt.Fprintf(loopw, "if !(%s) {\nbreak\n}\n", cond)
                        }
 
                        // Rule matches. Generate result.
@@ -338,19 +336,19 @@ func genRulesSuffix(arch arch, suff string) {
                                log.Fatalf("unmatched successors %v in %s", m, rule)
                        }
 
-                       fmt.Fprintf(w, "b.Kind = %s\n", blockName(outop, arch))
+                       fmt.Fprintf(loopw, "b.Kind = %s\n", blockName(outop, arch))
                        if t[0] == "nil" {
-                               fmt.Fprintf(w, "b.SetControl(nil)\n")
+                               fmt.Fprintf(loopw, "b.SetControl(nil)\n")
                        } else {
                                if pos == "" {
                                        pos = "v.Pos"
                                }
-                               fmt.Fprintf(w, "b.SetControl(%s)\n", genResult0(w, arch, t[0], new(int), false, false, rule.loc, pos))
+                               fmt.Fprintf(loopw, "b.SetControl(%s)\n", genResult0(loopw, arch, t[0], new(int), false, false, rule.loc, pos))
                        }
                        if aux != "" {
-                               fmt.Fprintf(w, "b.Aux = %s\n", aux)
+                               fmt.Fprintf(loopw, "b.Aux = %s\n", aux)
                        } else {
-                               fmt.Fprintln(w, "b.Aux = nil")
+                               fmt.Fprintln(loopw, "b.Aux = nil")
                        }
 
                        succChanged := false
@@ -366,13 +364,20 @@ func genRulesSuffix(arch arch, suff string) {
                                if succs[0] != newsuccs[1] || succs[1] != newsuccs[0] {
                                        log.Fatalf("can only handle swapped successors in %s", rule)
                                }
-                               fmt.Fprintln(w, "b.swapSuccessors()")
+                               fmt.Fprintln(loopw, "b.swapSuccessors()")
                        }
 
                        if *genLog {
-                               fmt.Fprintf(w, "logRule(\"%s\")\n", rule.loc)
+                               fmt.Fprintf(loopw, "logRule(\"%s\")\n", rule.loc)
                        }
-                       fmt.Fprintf(w, "return true\n")
+                       fmt.Fprintf(loopw, "return true\n")
+
+                       if checkOp != "" {
+                               fmt.Fprintf(w, "for v.Op == %s {\n", checkOp)
+                       } else {
+                               fmt.Fprintf(w, "for {\n")
+                       }
+                       io.Copy(w, loopw)
 
                        fmt.Fprintf(w, "}\n")
                }
@@ -398,24 +403,18 @@ func genRulesSuffix(arch arch, suff string) {
 
 // genMatch returns the variable whose source position should be used for the
 // result (or "" if no opinion), and a boolean that reports whether the match can fail.
-func genMatch(w io.Writer, arch arch, match string, loc string) (string, bool) {
-       return genMatch0(w, arch, match, "v", map[string]struct{}{}, true, loc)
+func genMatch(w io.Writer, arch arch, match string, loc string) (pos, checkOp string, canFail bool) {
+       return genMatch0(w, arch, match, "v", map[string]struct{}{}, loc)
 }
 
-func genMatch0(w io.Writer, arch arch, match, v string, m map[string]struct{}, top bool, loc string) (string, bool) {
+func genMatch0(w io.Writer, arch arch, match, v string, m map[string]struct{}, loc string) (pos, checkOp string, canFail bool) {
        if match[0] != '(' || match[len(match)-1] != ')' {
                panic("non-compound expr in genMatch0: " + match)
        }
-       pos := ""
-       canFail := false
-
        op, oparch, typ, auxint, aux, args := parseValue(match, arch, loc)
 
-       // check op
-       if !top {
-               fmt.Fprintf(w, "if %s.Op != Op%s%s {\nbreak\n}\n", v, oparch, op.name)
-               canFail = true
-       }
+       checkOp = fmt.Sprintf("Op%s%s", oparch, op.name)
+
        if op.faultOnNilArg0 || op.faultOnNilArg1 {
                // Prefer the position of an instruction which could fault.
                pos = v + ".Pos"
@@ -521,8 +520,13 @@ func genMatch0(w io.Writer, arch arch, match, v string, m map[string]struct{}, t
                if argname == "b" {
                        log.Fatalf("don't name args 'b', it is ambiguous with blocks")
                }
+
                fmt.Fprintf(w, "%s := %s.Args[%d]\n", argname, v, i)
-               argPos, argCanFail := genMatch0(w, arch, arg, argname, m, false, loc)
+               w2 := new(bytes.Buffer)
+               argPos, argCheckOp, _ := genMatch0(w2, arch, arg, argname, m, loc)
+               fmt.Fprintf(w, "if %s.Op != %s {\nbreak\n}\n", argname, argCheckOp)
+               io.Copy(w, w2)
+
                if argPos != "" {
                        // Keep the argument in preference to the parent, as the
                        // argument is normally earlier in program flow.
@@ -531,16 +535,14 @@ func genMatch0(w io.Writer, arch arch, match, v string, m map[string]struct{}, t
                        // in the program flow.
                        pos = argPos
                }
-               if argCanFail {
-                       canFail = true
-               }
+               canFail = true
        }
 
        if op.argLength == -1 {
                fmt.Fprintf(w, "if len(%s.Args) != %d {\nbreak\n}\n", v, len(args))
                canFail = true
        }
-       return pos, canFail
+       return pos, checkOp, canFail
 }
 
 func genResult(w io.Writer, arch arch, result string, loc string, pos string) {
index aae0c593004a45abcfed6a0fd6e63bf1eeb7d401..99f672c54ee25a840efc2c439f111d3a765b2749 100644 (file)
@@ -24477,21 +24477,16 @@ func rewriteValue386_OpZeromask_0(v *Value) bool {
 }
 func rewriteBlock386(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        case Block386EQ:
                // match: (EQ (InvertFlags cmp) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386EQ
                        b.SetControl(cmp)
@@ -24501,11 +24496,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (EQ (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24514,11 +24505,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (EQ (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24528,11 +24515,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (EQ (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24542,11 +24525,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (EQ (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24556,11 +24535,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (EQ (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24571,11 +24546,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GE (InvertFlags cmp) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386LE
                        b.SetControl(cmp)
@@ -24585,11 +24556,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24598,11 +24565,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24612,11 +24575,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24626,11 +24585,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24639,11 +24594,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24653,11 +24604,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GT (InvertFlags cmp) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386LT
                        b.SetControl(cmp)
@@ -24667,11 +24614,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24681,11 +24624,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24695,11 +24634,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24709,11 +24644,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24722,11 +24653,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (GT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24736,11 +24663,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETL cmp) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETL {
-                               break
-                       }
+               for v.Op == Op386SETL {
                        cmp := v.Args[0]
                        b.Kind = Block386LT
                        b.SetControl(cmp)
@@ -24750,11 +24673,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETLE cmp) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETLE {
-                               break
-                       }
+               for v.Op == Op386SETLE {
                        cmp := v.Args[0]
                        b.Kind = Block386LE
                        b.SetControl(cmp)
@@ -24764,11 +24683,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETG cmp) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETG {
-                               break
-                       }
+               for v.Op == Op386SETG {
                        cmp := v.Args[0]
                        b.Kind = Block386GT
                        b.SetControl(cmp)
@@ -24778,11 +24693,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETGE cmp) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETGE {
-                               break
-                       }
+               for v.Op == Op386SETGE {
                        cmp := v.Args[0]
                        b.Kind = Block386GE
                        b.SetControl(cmp)
@@ -24792,11 +24703,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETEQ cmp) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETEQ {
-                               break
-                       }
+               for v.Op == Op386SETEQ {
                        cmp := v.Args[0]
                        b.Kind = Block386EQ
                        b.SetControl(cmp)
@@ -24806,11 +24713,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETNE cmp) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETNE {
-                               break
-                       }
+               for v.Op == Op386SETNE {
                        cmp := v.Args[0]
                        b.Kind = Block386NE
                        b.SetControl(cmp)
@@ -24820,11 +24723,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETB cmp) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETB {
-                               break
-                       }
+               for v.Op == Op386SETB {
                        cmp := v.Args[0]
                        b.Kind = Block386ULT
                        b.SetControl(cmp)
@@ -24834,11 +24733,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETBE cmp) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETBE {
-                               break
-                       }
+               for v.Op == Op386SETBE {
                        cmp := v.Args[0]
                        b.Kind = Block386ULE
                        b.SetControl(cmp)
@@ -24848,11 +24743,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETA cmp) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETA {
-                               break
-                       }
+               for v.Op == Op386SETA {
                        cmp := v.Args[0]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
@@ -24862,11 +24753,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETAE cmp) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETAE {
-                               break
-                       }
+               for v.Op == Op386SETAE {
                        cmp := v.Args[0]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
@@ -24876,11 +24763,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETO cmp) yes no)
                // cond:
                // result: (OS cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETO {
-                               break
-                       }
+               for v.Op == Op386SETO {
                        cmp := v.Args[0]
                        b.Kind = Block386OS
                        b.SetControl(cmp)
@@ -24890,11 +24773,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETGF cmp) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETGF {
-                               break
-                       }
+               for v.Op == Op386SETGF {
                        cmp := v.Args[0]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
@@ -24904,11 +24783,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETGEF cmp) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETGEF {
-                               break
-                       }
+               for v.Op == Op386SETGEF {
                        cmp := v.Args[0]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
@@ -24918,11 +24793,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETEQF cmp) yes no)
                // cond:
                // result: (EQF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETEQF {
-                               break
-                       }
+               for v.Op == Op386SETEQF {
                        cmp := v.Args[0]
                        b.Kind = Block386EQF
                        b.SetControl(cmp)
@@ -24932,11 +24803,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (If (SETNEF cmp) yes no)
                // cond:
                // result: (NEF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386SETNEF {
-                               break
-                       }
+               for v.Op == Op386SETNEF {
                        cmp := v.Args[0]
                        b.Kind = Block386NEF
                        b.SetControl(cmp)
@@ -24947,8 +24814,6 @@ func rewriteBlock386(b *Block) bool {
                // cond:
                // result: (NE (TESTB cond cond) yes no)
                for {
-                       v := b.Control
-                       _ = v
                        cond := b.Control
                        b.Kind = Block386NE
                        v0 := b.NewValue0(v.Pos, Op386TESTB, types.TypeFlags)
@@ -24962,11 +24827,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LE (InvertFlags cmp) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386GE
                        b.SetControl(cmp)
@@ -24976,11 +24837,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -24989,11 +24846,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25002,11 +24855,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25015,11 +24864,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25029,11 +24874,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25044,11 +24885,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LT (InvertFlags cmp) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386GT
                        b.SetControl(cmp)
@@ -25058,11 +24895,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25072,11 +24905,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25085,11 +24914,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25098,11 +24923,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25112,11 +24933,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (LT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25127,11 +24944,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETL cmp) (SETL cmp)) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETL {
@@ -25153,11 +24966,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETL cmp) (SETL cmp)) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETL {
@@ -25179,11 +24988,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETLE cmp) (SETLE cmp)) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETLE {
@@ -25205,11 +25010,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETLE cmp) (SETLE cmp)) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETLE {
@@ -25231,11 +25032,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETG cmp) (SETG cmp)) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETG {
@@ -25257,11 +25054,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETG cmp) (SETG cmp)) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETG {
@@ -25283,11 +25076,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETGE cmp) (SETGE cmp)) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETGE {
@@ -25309,11 +25098,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETGE cmp) (SETGE cmp)) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETGE {
@@ -25335,11 +25120,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETEQ cmp) (SETEQ cmp)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETEQ {
@@ -25361,11 +25142,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETEQ cmp) (SETEQ cmp)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETEQ {
@@ -25387,11 +25164,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETNE cmp) (SETNE cmp)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETNE {
@@ -25413,11 +25186,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETNE cmp) (SETNE cmp)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETNE {
@@ -25439,11 +25208,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETB cmp) (SETB cmp)) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETB {
@@ -25465,11 +25230,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETB cmp) (SETB cmp)) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETB {
@@ -25491,11 +25252,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETBE cmp) (SETBE cmp)) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETBE {
@@ -25517,11 +25274,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETBE cmp) (SETBE cmp)) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETBE {
@@ -25543,11 +25296,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETA cmp) (SETA cmp)) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETA {
@@ -25569,11 +25318,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETA cmp) (SETA cmp)) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETA {
@@ -25595,11 +25340,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETAE cmp) (SETAE cmp)) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETAE {
@@ -25621,11 +25362,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETAE cmp) (SETAE cmp)) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETAE {
@@ -25647,11 +25384,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETO cmp) (SETO cmp)) yes no)
                // cond:
                // result: (OS cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETO {
@@ -25673,11 +25406,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETO cmp) (SETO cmp)) yes no)
                // cond:
                // result: (OS cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETO {
@@ -25699,11 +25428,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETGF cmp) (SETGF cmp)) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETGF {
@@ -25725,11 +25450,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETGF cmp) (SETGF cmp)) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETGF {
@@ -25751,11 +25472,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETGEF cmp) (SETGEF cmp)) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETGEF {
@@ -25777,11 +25494,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETGEF cmp) (SETGEF cmp)) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETGEF {
@@ -25803,11 +25516,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETEQF cmp) (SETEQF cmp)) yes no)
                // cond:
                // result: (EQF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETEQF {
@@ -25829,11 +25538,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETEQF cmp) (SETEQF cmp)) yes no)
                // cond:
                // result: (EQF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETEQF {
@@ -25855,11 +25560,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETNEF cmp) (SETNEF cmp)) yes no)
                // cond:
                // result: (NEF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETNEF {
@@ -25881,11 +25582,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (TESTB (SETNEF cmp) (SETNEF cmp)) yes no)
                // cond:
                // result: (NEF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386TESTB {
-                               break
-                       }
+               for v.Op == Op386TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != Op386SETNEF {
@@ -25907,11 +25604,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (InvertFlags cmp) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386NE
                        b.SetControl(cmp)
@@ -25921,11 +25614,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25935,11 +25624,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25948,11 +25633,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25961,11 +25642,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25974,11 +25651,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (NE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25988,11 +25661,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGE (InvertFlags cmp) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386ULE
                        b.SetControl(cmp)
@@ -26002,11 +25671,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26015,11 +25680,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26029,11 +25690,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26042,11 +25699,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26056,11 +25709,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26070,11 +25719,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGT (InvertFlags cmp) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386ULT
                        b.SetControl(cmp)
@@ -26084,11 +25729,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26098,11 +25739,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26112,11 +25749,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26125,11 +25758,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26139,11 +25768,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (UGT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26153,11 +25778,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULE (InvertFlags cmp) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
@@ -26167,11 +25788,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26180,11 +25797,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26193,11 +25806,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26207,11 +25816,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26220,11 +25825,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26235,11 +25836,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULT (InvertFlags cmp) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386InvertFlags {
-                               break
-                       }
+               for v.Op == Op386InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
@@ -26249,11 +25846,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagEQ {
-                               break
-                       }
+               for v.Op == Op386FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26263,11 +25856,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26276,11 +25865,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagLT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26290,11 +25875,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_ULT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26303,11 +25884,7 @@ func rewriteBlock386(b *Block) bool {
                // match: (ULT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != Op386FlagGT_UGT {
-                               break
-                       }
+               for v.Op == Op386FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
index 31ed4d0a4137271addfbe3b7b1e2ba98bcdd9a61..1eaf2d9d487899595e55bbd2ede055863f946f3e 100644 (file)
@@ -169,11 +169,10 @@ func rewriteValue386splitload_Op386CMPWload_0(v *Value) bool {
 }
 func rewriteBlock386splitload(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        }
        return false
index c377e2817035758e030489b6ca9f32bdeee85b0c..b17c0a68c1d9a4af6f8e3b72a38ffd00df7cbe5f 100644 (file)
@@ -64676,21 +64676,16 @@ func rewriteValueAMD64_OpZeroExt8to64_0(v *Value) bool {
 }
 func rewriteBlockAMD64(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        case BlockAMD64EQ:
                // match: (EQ (TESTL (SHLL (MOVLconst [1]) x) y))
                // cond: !config.nacl
                // result: (UGE (BTL x y))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        y := v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SHLL {
@@ -64718,11 +64713,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTL y (SHLL (MOVLconst [1]) x)))
                // cond: !config.nacl
                // result: (UGE (BTL x y))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        _ = v.Args[1]
                        y := v.Args[0]
                        v_1 := v.Args[1]
@@ -64751,11 +64742,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ (SHLQ (MOVQconst [1]) x) y))
                // cond: !config.nacl
                // result: (UGE (BTQ x y))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        y := v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SHLQ {
@@ -64783,11 +64770,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ y (SHLQ (MOVQconst [1]) x)))
                // cond: !config.nacl
                // result: (UGE (BTQ x y))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        y := v.Args[0]
                        v_1 := v.Args[1]
@@ -64816,11 +64799,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTLconst [c] x))
                // cond: isUint32PowerOfTwo(c) && !config.nacl
                // result: (UGE (BTLconst [log2uint32(c)] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTLconst {
-                               break
-                       }
+               for v.Op == OpAMD64TESTLconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(isUint32PowerOfTwo(c) && !config.nacl) {
@@ -64837,11 +64816,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQconst [c] x))
                // cond: isUint64PowerOfTwo(c) && !config.nacl
                // result: (UGE (BTQconst [log2(c)] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQconst {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(isUint64PowerOfTwo(c) && !config.nacl) {
@@ -64858,11 +64833,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ (MOVQconst [c]) x))
                // cond: isUint64PowerOfTwo(c) && !config.nacl
                // result: (UGE (BTQconst [log2(c)] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        x := v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64MOVQconst {
@@ -64883,11 +64854,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ x (MOVQconst [c])))
                // cond: isUint64PowerOfTwo(c) && !config.nacl
                // result: (UGE (BTQconst [log2(c)] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        x := v.Args[0]
                        v_1 := v.Args[1]
@@ -64909,11 +64876,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ z1:(SHLQconst [63] (SHRQconst [63] x)) z2))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTQconst [63] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHLQconst {
@@ -64944,11 +64907,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ z2 z1:(SHLQconst [63] (SHRQconst [63] x))))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTQconst [63] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -64980,11 +64939,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTL z1:(SHLLconst [31] (SHRQconst [31] x)) z2))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTQconst [31] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHLLconst {
@@ -65015,11 +64970,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTL z2 z1:(SHLLconst [31] (SHRQconst [31] x))))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTQconst [31] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -65051,11 +65002,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ z1:(SHRQconst [63] (SHLQconst [63] x)) z2))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTQconst [0] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHRQconst {
@@ -65086,11 +65033,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ z2 z1:(SHRQconst [63] (SHLQconst [63] x))))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTQconst [0] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -65122,11 +65065,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTL z1:(SHRLconst [31] (SHLLconst [31] x)) z2))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTLconst [0] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHRLconst {
@@ -65157,11 +65096,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTL z2 z1:(SHRLconst [31] (SHLLconst [31] x))))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTLconst [0] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -65193,11 +65128,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ z1:(SHRQconst [63] x) z2))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTQconst [63] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHRQconst {
@@ -65221,11 +65152,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTQ z2 z1:(SHRQconst [63] x)))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTQconst [63] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -65250,11 +65177,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTL z1:(SHRLconst [31] x) z2))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTLconst [31] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHRLconst {
@@ -65278,11 +65201,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (TESTL z2 z1:(SHRLconst [31] x)))
                // cond: z1==z2 && !config.nacl
                // result: (UGE (BTLconst [31] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -65307,11 +65226,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (InvertFlags cmp) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64EQ
                        b.SetControl(cmp)
@@ -65321,11 +65236,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65334,11 +65245,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65348,11 +65255,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65362,11 +65265,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65376,11 +65275,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (EQ (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65391,11 +65286,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GE (InvertFlags cmp) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64LE
                        b.SetControl(cmp)
@@ -65405,11 +65296,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65418,11 +65305,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65432,11 +65315,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65446,11 +65325,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65459,11 +65334,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65473,11 +65344,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GT (InvertFlags cmp) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64LT
                        b.SetControl(cmp)
@@ -65487,11 +65354,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65501,11 +65364,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65515,11 +65374,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65529,11 +65384,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65542,11 +65393,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (GT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65556,11 +65403,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETL cmp) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETL {
-                               break
-                       }
+               for v.Op == OpAMD64SETL {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64LT
                        b.SetControl(cmp)
@@ -65570,11 +65413,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETLE cmp) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETLE {
-                               break
-                       }
+               for v.Op == OpAMD64SETLE {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64LE
                        b.SetControl(cmp)
@@ -65584,11 +65423,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETG cmp) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETG {
-                               break
-                       }
+               for v.Op == OpAMD64SETG {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64GT
                        b.SetControl(cmp)
@@ -65598,11 +65433,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETGE cmp) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETGE {
-                               break
-                       }
+               for v.Op == OpAMD64SETGE {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64GE
                        b.SetControl(cmp)
@@ -65612,11 +65443,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETEQ cmp) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETEQ {
-                               break
-                       }
+               for v.Op == OpAMD64SETEQ {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64EQ
                        b.SetControl(cmp)
@@ -65626,11 +65453,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETNE cmp) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETNE {
-                               break
-                       }
+               for v.Op == OpAMD64SETNE {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64NE
                        b.SetControl(cmp)
@@ -65640,11 +65463,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETB cmp) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETB {
-                               break
-                       }
+               for v.Op == OpAMD64SETB {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64ULT
                        b.SetControl(cmp)
@@ -65654,11 +65473,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETBE cmp) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETBE {
-                               break
-                       }
+               for v.Op == OpAMD64SETBE {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64ULE
                        b.SetControl(cmp)
@@ -65668,11 +65483,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETA cmp) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETA {
-                               break
-                       }
+               for v.Op == OpAMD64SETA {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
@@ -65682,11 +65493,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETAE cmp) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETAE {
-                               break
-                       }
+               for v.Op == OpAMD64SETAE {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
@@ -65696,11 +65503,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETO cmp) yes no)
                // cond:
                // result: (OS cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETO {
-                               break
-                       }
+               for v.Op == OpAMD64SETO {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64OS
                        b.SetControl(cmp)
@@ -65710,11 +65513,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETGF cmp) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETGF {
-                               break
-                       }
+               for v.Op == OpAMD64SETGF {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
@@ -65724,11 +65523,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETGEF cmp) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETGEF {
-                               break
-                       }
+               for v.Op == OpAMD64SETGEF {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
@@ -65738,11 +65533,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETEQF cmp) yes no)
                // cond:
                // result: (EQF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETEQF {
-                               break
-                       }
+               for v.Op == OpAMD64SETEQF {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64EQF
                        b.SetControl(cmp)
@@ -65752,11 +65543,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (If (SETNEF cmp) yes no)
                // cond:
                // result: (NEF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64SETNEF {
-                               break
-                       }
+               for v.Op == OpAMD64SETNEF {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64NEF
                        b.SetControl(cmp)
@@ -65767,8 +65554,6 @@ func rewriteBlockAMD64(b *Block) bool {
                // cond:
                // result: (NE (TESTB cond cond) yes no)
                for {
-                       v := b.Control
-                       _ = v
                        cond := b.Control
                        b.Kind = BlockAMD64NE
                        v0 := b.NewValue0(v.Pos, OpAMD64TESTB, types.TypeFlags)
@@ -65782,11 +65567,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LE (InvertFlags cmp) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64GE
                        b.SetControl(cmp)
@@ -65796,11 +65577,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65809,11 +65586,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65822,11 +65595,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65835,11 +65604,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65849,11 +65614,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65864,11 +65625,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LT (InvertFlags cmp) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64GT
                        b.SetControl(cmp)
@@ -65878,11 +65635,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65892,11 +65645,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65905,11 +65654,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65918,11 +65663,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65932,11 +65673,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (LT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -65947,11 +65684,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETL cmp) (SETL cmp)) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETL {
@@ -65973,11 +65706,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETL cmp) (SETL cmp)) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETL {
@@ -65999,11 +65728,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETLE cmp) (SETLE cmp)) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETLE {
@@ -66025,11 +65750,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETLE cmp) (SETLE cmp)) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETLE {
@@ -66051,11 +65772,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETG cmp) (SETG cmp)) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETG {
@@ -66077,11 +65794,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETG cmp) (SETG cmp)) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETG {
@@ -66103,11 +65816,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETGE cmp) (SETGE cmp)) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETGE {
@@ -66129,11 +65838,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETGE cmp) (SETGE cmp)) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETGE {
@@ -66155,11 +65860,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETEQ cmp) (SETEQ cmp)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETEQ {
@@ -66181,11 +65882,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETEQ cmp) (SETEQ cmp)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETEQ {
@@ -66207,11 +65904,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETNE cmp) (SETNE cmp)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETNE {
@@ -66233,11 +65926,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETNE cmp) (SETNE cmp)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETNE {
@@ -66259,11 +65948,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETB cmp) (SETB cmp)) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETB {
@@ -66285,11 +65970,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETB cmp) (SETB cmp)) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETB {
@@ -66311,11 +65992,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETBE cmp) (SETBE cmp)) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETBE {
@@ -66337,11 +66014,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETBE cmp) (SETBE cmp)) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETBE {
@@ -66363,11 +66036,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETA cmp) (SETA cmp)) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETA {
@@ -66389,11 +66058,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETA cmp) (SETA cmp)) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETA {
@@ -66415,11 +66080,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETAE cmp) (SETAE cmp)) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETAE {
@@ -66441,11 +66102,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETAE cmp) (SETAE cmp)) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETAE {
@@ -66467,11 +66124,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETO cmp) (SETO cmp)) yes no)
                // cond:
                // result: (OS cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETO {
@@ -66493,11 +66146,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETO cmp) (SETO cmp)) yes no)
                // cond:
                // result: (OS cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETO {
@@ -66519,11 +66168,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTL (SHLL (MOVLconst [1]) x) y))
                // cond: !config.nacl
                // result: (ULT (BTL x y))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        y := v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SHLL {
@@ -66551,11 +66196,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTL y (SHLL (MOVLconst [1]) x)))
                // cond: !config.nacl
                // result: (ULT (BTL x y))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        _ = v.Args[1]
                        y := v.Args[0]
                        v_1 := v.Args[1]
@@ -66584,11 +66225,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ (SHLQ (MOVQconst [1]) x) y))
                // cond: !config.nacl
                // result: (ULT (BTQ x y))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        y := v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SHLQ {
@@ -66616,11 +66253,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ y (SHLQ (MOVQconst [1]) x)))
                // cond: !config.nacl
                // result: (ULT (BTQ x y))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        y := v.Args[0]
                        v_1 := v.Args[1]
@@ -66649,11 +66282,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTLconst [c] x))
                // cond: isUint32PowerOfTwo(c) && !config.nacl
                // result: (ULT (BTLconst [log2uint32(c)] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTLconst {
-                               break
-                       }
+               for v.Op == OpAMD64TESTLconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(isUint32PowerOfTwo(c) && !config.nacl) {
@@ -66670,11 +66299,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQconst [c] x))
                // cond: isUint64PowerOfTwo(c) && !config.nacl
                // result: (ULT (BTQconst [log2(c)] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQconst {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(isUint64PowerOfTwo(c) && !config.nacl) {
@@ -66691,11 +66316,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ (MOVQconst [c]) x))
                // cond: isUint64PowerOfTwo(c) && !config.nacl
                // result: (ULT (BTQconst [log2(c)] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        x := v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64MOVQconst {
@@ -66716,11 +66337,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ x (MOVQconst [c])))
                // cond: isUint64PowerOfTwo(c) && !config.nacl
                // result: (ULT (BTQconst [log2(c)] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        x := v.Args[0]
                        v_1 := v.Args[1]
@@ -66742,11 +66359,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ z1:(SHLQconst [63] (SHRQconst [63] x)) z2))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTQconst [63] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHLQconst {
@@ -66777,11 +66390,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ z2 z1:(SHLQconst [63] (SHRQconst [63] x))))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTQconst [63] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -66813,11 +66422,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTL z1:(SHLLconst [31] (SHRQconst [31] x)) z2))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTQconst [31] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHLLconst {
@@ -66848,11 +66453,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTL z2 z1:(SHLLconst [31] (SHRQconst [31] x))))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTQconst [31] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -66884,11 +66485,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ z1:(SHRQconst [63] (SHLQconst [63] x)) z2))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTQconst [0] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHRQconst {
@@ -66919,11 +66516,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ z2 z1:(SHRQconst [63] (SHLQconst [63] x))))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTQconst [0] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -66955,11 +66548,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTL z1:(SHRLconst [31] (SHLLconst [31] x)) z2))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTLconst [0] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHRLconst {
@@ -66990,11 +66579,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTL z2 z1:(SHRLconst [31] (SHLLconst [31] x))))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTLconst [0] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -67026,11 +66611,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ z1:(SHRQconst [63] x) z2))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTQconst [63] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHRQconst {
@@ -67054,11 +66635,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTQ z2 z1:(SHRQconst [63] x)))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTQconst [63] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTQ {
-                               break
-                       }
+               for v.Op == OpAMD64TESTQ {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -67083,11 +66660,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTL z1:(SHRLconst [31] x) z2))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTLconst [31] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        z2 := v.Args[1]
                        z1 := v.Args[0]
                        if z1.Op != OpAMD64SHRLconst {
@@ -67111,11 +66684,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTL z2 z1:(SHRLconst [31] x)))
                // cond: z1==z2 && !config.nacl
                // result: (ULT (BTLconst [31] x))
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTL {
-                               break
-                       }
+               for v.Op == OpAMD64TESTL {
                        _ = v.Args[1]
                        z2 := v.Args[0]
                        z1 := v.Args[1]
@@ -67140,11 +66709,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETGF cmp) (SETGF cmp)) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETGF {
@@ -67166,11 +66731,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETGF cmp) (SETGF cmp)) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETGF {
@@ -67192,11 +66753,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETGEF cmp) (SETGEF cmp)) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETGEF {
@@ -67218,11 +66775,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETGEF cmp) (SETGEF cmp)) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETGEF {
@@ -67244,11 +66797,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETEQF cmp) (SETEQF cmp)) yes no)
                // cond:
                // result: (EQF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETEQF {
@@ -67270,11 +66819,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETEQF cmp) (SETEQF cmp)) yes no)
                // cond:
                // result: (EQF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETEQF {
@@ -67296,11 +66841,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETNEF cmp) (SETNEF cmp)) yes no)
                // cond:
                // result: (NEF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETNEF {
@@ -67322,11 +66863,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (TESTB (SETNEF cmp) (SETNEF cmp)) yes no)
                // cond:
                // result: (NEF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64TESTB {
-                               break
-                       }
+               for v.Op == OpAMD64TESTB {
                        _ = v.Args[1]
                        v_0 := v.Args[0]
                        if v_0.Op != OpAMD64SETNEF {
@@ -67348,11 +66885,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (InvertFlags cmp) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64NE
                        b.SetControl(cmp)
@@ -67362,11 +66895,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67376,11 +66905,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67389,11 +66914,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67402,11 +66923,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67415,11 +66932,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (NE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67429,11 +66942,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGE (InvertFlags cmp) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64ULE
                        b.SetControl(cmp)
@@ -67443,11 +66952,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67456,11 +66961,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67470,11 +66971,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67483,11 +66980,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67497,11 +66990,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67511,11 +67000,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGT (InvertFlags cmp) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64ULT
                        b.SetControl(cmp)
@@ -67525,11 +67010,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67539,11 +67020,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67553,11 +67030,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67566,11 +67039,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67580,11 +67049,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (UGT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67594,11 +67059,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULE (InvertFlags cmp) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
@@ -67608,11 +67069,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67621,11 +67078,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67634,11 +67087,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67648,11 +67097,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67661,11 +67106,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67676,11 +67117,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULT (InvertFlags cmp) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64InvertFlags {
-                               break
-                       }
+               for v.Op == OpAMD64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
@@ -67690,11 +67127,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagEQ {
-                               break
-                       }
+               for v.Op == OpAMD64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67704,11 +67137,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67717,11 +67146,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67731,11 +67156,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -67744,11 +67165,7 @@ func rewriteBlockAMD64(b *Block) bool {
                // match: (ULT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpAMD64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpAMD64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
index dbd0e031a4b328bc318e2cf31d462e144a391afe..0a0ff2dfbf0a5db33ad7cd07925255012d9a4288 100644 (file)
@@ -218,11 +218,10 @@ func rewriteValueAMD64splitload_OpAMD64CMPWload_0(v *Value) bool {
 }
 func rewriteBlockAMD64splitload(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        }
        return false
index 9d3dbd88f82115c78b28c698b16dff0a2ace7e2e..1cbde5150edb3b83b22b20fa02d60534175deec3 100644 (file)
@@ -21697,21 +21697,16 @@ func rewriteValueARM_OpZeromask_0(v *Value) bool {
 }
 func rewriteBlockARM(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        case BlockARMEQ:
                // match: (EQ (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -21720,11 +21715,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -21734,11 +21725,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -21748,11 +21735,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -21762,11 +21745,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -21776,11 +21755,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (InvertFlags cmp) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMEQ
                        b.SetControl(cmp)
@@ -21790,11 +21765,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(SUB x y)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMP x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -21818,11 +21789,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(MULS x y a)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -21850,11 +21817,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(SUBconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMPconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -21878,11 +21841,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(SUBshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMPshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -21908,11 +21867,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(SUBshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMPshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -21938,11 +21893,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(SUBshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMPshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -21968,11 +21919,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(SUBshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMPshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -21998,11 +21945,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(SUBshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMPshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22028,11 +21971,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(SUBshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMPshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22058,11 +21997,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ADD x y)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22086,11 +22021,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(MULA x y a)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22118,11 +22049,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ADDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMNconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22146,11 +22073,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ADDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMNshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22176,11 +22099,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ADDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMNshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22206,11 +22125,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ADDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMNshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22236,11 +22151,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ADDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMNshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22266,11 +22177,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ADDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMNshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22296,11 +22203,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ADDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (CMNshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22326,11 +22229,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(AND x y)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22354,11 +22253,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ANDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TSTconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22382,11 +22277,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ANDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (TSTshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22412,11 +22303,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ANDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (TSTshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22442,11 +22329,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ANDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (TSTshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22472,11 +22355,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ANDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TSTshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22502,11 +22381,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ANDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TSTshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22532,11 +22407,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(ANDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TSTshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22562,11 +22433,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(XOR x y)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TEQ x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22590,11 +22457,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(XORconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TEQconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22618,11 +22481,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(XORshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (TEQshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22648,11 +22507,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(XORshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (TEQshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22678,11 +22533,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(XORshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (EQ (TEQshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22708,11 +22559,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(XORshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TEQshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22738,11 +22585,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(XORshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TEQshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22768,11 +22611,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (EQ (CMPconst [0] l:(XORshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (EQ (TEQshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22799,11 +22638,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -22812,11 +22647,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -22826,11 +22657,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -22840,11 +22667,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -22853,11 +22676,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -22866,11 +22685,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (InvertFlags cmp) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMLE
                        b.SetControl(cmp)
@@ -22880,11 +22695,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(SUB x y)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMP x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22908,11 +22719,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(MULS x y a)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22940,11 +22747,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(SUBconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMPconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22968,11 +22771,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(SUBshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (CMPshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -22998,11 +22797,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(SUBshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (CMPshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23028,11 +22823,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(SUBshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (CMPshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23058,11 +22849,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(SUBshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMPshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23088,11 +22875,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(SUBshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMPshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23118,11 +22901,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(SUBshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMPshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23148,11 +22927,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ADD x y)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23176,11 +22951,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(MULA x y a)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23208,11 +22979,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ADDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMNconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23236,11 +23003,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ADDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (CMNshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23266,11 +23029,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ADDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (CMNshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23296,11 +23055,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ADDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (CMNshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23326,11 +23081,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ADDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMNshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23356,11 +23107,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ADDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMNshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23386,11 +23133,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ADDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (CMNshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23416,11 +23159,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(AND x y)) yes no)
                // cond: l.Uses==1
                // result: (GE (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23444,11 +23183,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ANDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (GE (TSTconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23472,11 +23207,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ANDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (TSTshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23502,11 +23233,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ANDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (TSTshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23532,11 +23259,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ANDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (TSTshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23562,11 +23285,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ANDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (TSTshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23592,11 +23311,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ANDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (TSTshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23622,11 +23337,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(ANDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (TSTshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23652,11 +23363,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(XOR x y)) yes no)
                // cond: l.Uses==1
                // result: (GE (TEQ x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23680,11 +23387,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(XORconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (GE (TEQconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23708,11 +23411,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(XORshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (TEQshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23738,11 +23437,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(XORshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (TEQshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23768,11 +23463,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(XORshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GE (TEQshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23798,11 +23489,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(XORshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (TEQshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23828,11 +23515,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(XORshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (TEQshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23858,11 +23541,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GE (CMPconst [0] l:(XORshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GE (TEQshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23889,11 +23568,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -23903,11 +23578,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -23917,11 +23588,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -23931,11 +23598,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -23944,11 +23607,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -23957,11 +23616,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (InvertFlags cmp) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMLT
                        b.SetControl(cmp)
@@ -23971,11 +23626,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(SUB x y)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMP x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -23999,11 +23650,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(MULS x y a)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24031,11 +23678,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(SUBconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMPconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24059,11 +23702,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(SUBshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (CMPshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24089,11 +23728,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(SUBshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (CMPshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24119,11 +23754,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(SUBshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (CMPshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24149,11 +23780,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(SUBshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMPshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24179,11 +23806,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(SUBshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMPshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24209,11 +23832,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(SUBshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMPshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24239,11 +23858,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ADD x y)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24267,11 +23882,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ADDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMNconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24295,11 +23906,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ADDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (CMNshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24325,11 +23932,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ADDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (CMNshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24355,11 +23958,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ADDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (CMNshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24385,11 +23984,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ADDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMNshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24415,11 +24010,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ADDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMNshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24445,11 +24036,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ADDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMNshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24475,11 +24062,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(AND x y)) yes no)
                // cond: l.Uses==1
                // result: (GT (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24503,11 +24086,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(MULA x y a)) yes no)
                // cond: l.Uses==1
                // result: (GT (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24535,11 +24114,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ANDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (GT (TSTconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24563,11 +24138,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ANDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (TSTshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24593,11 +24164,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ANDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (TSTshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24623,11 +24190,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ANDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (TSTshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24653,11 +24216,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ANDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (TSTshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24683,11 +24242,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ANDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (TSTshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24713,11 +24268,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(ANDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (TSTshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24743,11 +24294,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(XOR x y)) yes no)
                // cond: l.Uses==1
                // result: (GT (TEQ x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24771,11 +24318,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(XORconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (GT (TEQconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24799,11 +24342,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(XORshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (TEQshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24829,11 +24368,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(XORshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (TEQshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24859,11 +24394,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(XORshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (GT (TEQshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24889,11 +24420,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(XORshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (TEQshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24919,11 +24446,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(XORshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (TEQshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24949,11 +24472,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (GT (CMPconst [0] l:(XORshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (GT (TEQshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -24980,11 +24499,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (Equal cc) yes no)
                // cond:
                // result: (EQ cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMEqual {
-                               break
-                       }
+               for v.Op == OpARMEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARMEQ
                        b.SetControl(cc)
@@ -24994,11 +24509,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (NotEqual cc) yes no)
                // cond:
                // result: (NE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMNotEqual {
-                               break
-                       }
+               for v.Op == OpARMNotEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARMNE
                        b.SetControl(cc)
@@ -25008,11 +24519,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (LessThan cc) yes no)
                // cond:
                // result: (LT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMLessThan {
-                               break
-                       }
+               for v.Op == OpARMLessThan {
                        cc := v.Args[0]
                        b.Kind = BlockARMLT
                        b.SetControl(cc)
@@ -25022,11 +24529,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (LessThanU cc) yes no)
                // cond:
                // result: (ULT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMLessThanU {
-                               break
-                       }
+               for v.Op == OpARMLessThanU {
                        cc := v.Args[0]
                        b.Kind = BlockARMULT
                        b.SetControl(cc)
@@ -25036,11 +24539,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (LessEqual cc) yes no)
                // cond:
                // result: (LE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMLessEqual {
-                               break
-                       }
+               for v.Op == OpARMLessEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARMLE
                        b.SetControl(cc)
@@ -25050,11 +24549,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (LessEqualU cc) yes no)
                // cond:
                // result: (ULE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMLessEqualU {
-                               break
-                       }
+               for v.Op == OpARMLessEqualU {
                        cc := v.Args[0]
                        b.Kind = BlockARMULE
                        b.SetControl(cc)
@@ -25064,11 +24559,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (GreaterThan cc) yes no)
                // cond:
                // result: (GT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMGreaterThan {
-                               break
-                       }
+               for v.Op == OpARMGreaterThan {
                        cc := v.Args[0]
                        b.Kind = BlockARMGT
                        b.SetControl(cc)
@@ -25078,11 +24569,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (GreaterThanU cc) yes no)
                // cond:
                // result: (UGT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMGreaterThanU {
-                               break
-                       }
+               for v.Op == OpARMGreaterThanU {
                        cc := v.Args[0]
                        b.Kind = BlockARMUGT
                        b.SetControl(cc)
@@ -25092,11 +24579,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (GreaterEqual cc) yes no)
                // cond:
                // result: (GE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMGreaterEqual {
-                               break
-                       }
+               for v.Op == OpARMGreaterEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARMGE
                        b.SetControl(cc)
@@ -25106,11 +24589,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (If (GreaterEqualU cc) yes no)
                // cond:
                // result: (UGE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMGreaterEqualU {
-                               break
-                       }
+               for v.Op == OpARMGreaterEqualU {
                        cc := v.Args[0]
                        b.Kind = BlockARMUGE
                        b.SetControl(cc)
@@ -25121,8 +24600,6 @@ func rewriteBlockARM(b *Block) bool {
                // cond:
                // result: (NE (CMPconst [0] cond) yes no)
                for {
-                       v := b.Control
-                       _ = v
                        cond := b.Control
                        b.Kind = BlockARMNE
                        v0 := b.NewValue0(v.Pos, OpARMCMPconst, types.TypeFlags)
@@ -25136,11 +24613,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25149,11 +24622,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25162,11 +24631,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25175,11 +24640,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25189,11 +24650,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -25203,11 +24660,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (InvertFlags cmp) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMGE
                        b.SetControl(cmp)
@@ -25217,11 +24670,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(SUB x y)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMP x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25245,11 +24694,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(MULS x y a)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25277,11 +24722,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(SUBconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMPconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25305,11 +24746,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(SUBshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (CMPshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25335,11 +24772,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(SUBshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (CMPshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25365,11 +24798,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(SUBshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (CMPshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25395,11 +24824,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(SUBshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMPshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25425,11 +24850,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(SUBshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMPshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25455,11 +24876,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(SUBshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMPshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25485,11 +24902,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ADD x y)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25513,11 +24926,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(MULA x y a)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25545,11 +24954,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ADDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMNconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25573,11 +24978,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ADDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (CMNshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25603,11 +25004,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ADDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (CMNshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25633,11 +25030,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ADDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (CMNshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25663,11 +25056,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ADDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMNshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25693,11 +25082,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ADDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMNshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25723,11 +25108,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ADDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (CMNshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25753,11 +25134,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(AND x y)) yes no)
                // cond: l.Uses==1
                // result: (LE (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25781,11 +25158,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ANDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (LE (TSTconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25809,11 +25182,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ANDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (TSTshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25839,11 +25208,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ANDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (TSTshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25869,11 +25234,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ANDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (TSTshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25899,11 +25260,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ANDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (TSTshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25929,11 +25286,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ANDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (TSTshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25959,11 +25312,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(ANDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (TSTshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -25989,11 +25338,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(XOR x y)) yes no)
                // cond: l.Uses==1
                // result: (LE (TEQ x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26017,11 +25362,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(XORconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (LE (TEQconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26045,11 +25386,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(XORshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (TEQshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26075,11 +25412,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(XORshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (TEQshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26105,11 +25438,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(XORshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LE (TEQshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26135,11 +25464,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(XORshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (TEQshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26165,11 +25490,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(XORshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (TEQshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26195,11 +25516,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LE (CMPconst [0] l:(XORshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LE (TEQshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26226,11 +25543,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26240,11 +25553,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26253,11 +25562,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26266,11 +25571,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26280,11 +25581,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -26294,11 +25591,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (InvertFlags cmp) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMGT
                        b.SetControl(cmp)
@@ -26308,11 +25601,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(SUB x y)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMP x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26336,11 +25625,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(MULS x y a)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26368,11 +25653,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(SUBconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMPconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26396,11 +25677,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(SUBshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (CMPshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26426,11 +25703,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(SUBshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (CMPshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26456,11 +25729,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(SUBshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (CMPshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26486,11 +25755,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(SUBshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMPshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26516,11 +25781,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(SUBshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMPshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26546,11 +25807,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(SUBshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMPshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26576,11 +25833,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ADD x y)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26604,11 +25857,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(MULA x y a)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26636,11 +25885,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ADDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMNconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26664,11 +25909,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ADDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (CMNshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26694,11 +25935,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ADDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (CMNshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26724,11 +25961,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ADDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (CMNshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26754,11 +25987,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ADDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMNshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26784,11 +26013,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ADDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMNshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26814,11 +26039,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ADDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (CMNshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26844,11 +26065,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(AND x y)) yes no)
                // cond: l.Uses==1
                // result: (LT (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26872,11 +26089,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ANDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (LT (TSTconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26900,11 +26113,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ANDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (TSTshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26930,11 +26139,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ANDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (TSTshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26960,11 +26165,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ANDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (TSTshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -26990,11 +26191,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ANDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (TSTshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27020,11 +26217,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ANDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (TSTshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27050,11 +26243,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(ANDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (TSTshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27080,11 +26269,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(XOR x y)) yes no)
                // cond: l.Uses==1
                // result: (LT (TEQ x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27108,11 +26293,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(XORconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (LT (TEQconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27136,11 +26317,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(XORshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (TEQshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27166,11 +26343,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(XORshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (TEQshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27196,11 +26369,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(XORshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (LT (TEQshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27226,11 +26395,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(XORshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (TEQshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27256,11 +26421,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(XORshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (TEQshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27286,11 +26447,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (LT (CMPconst [0] l:(XORshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (LT (TEQshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27317,11 +26474,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (Equal cc)) yes no)
                // cond:
                // result: (EQ cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27338,11 +26491,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (NotEqual cc)) yes no)
                // cond:
                // result: (NE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27359,11 +26508,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (LessThan cc)) yes no)
                // cond:
                // result: (LT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27380,11 +26525,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (LessThanU cc)) yes no)
                // cond:
                // result: (ULT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27401,11 +26542,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (LessEqual cc)) yes no)
                // cond:
                // result: (LE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27422,11 +26559,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (LessEqualU cc)) yes no)
                // cond:
                // result: (ULE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27443,11 +26576,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (GreaterThan cc)) yes no)
                // cond:
                // result: (GT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27464,11 +26593,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (GreaterThanU cc)) yes no)
                // cond:
                // result: (UGT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27485,11 +26610,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (GreaterEqual cc)) yes no)
                // cond:
                // result: (GE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27506,11 +26627,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] (GreaterEqualU cc)) yes no)
                // cond:
                // result: (UGE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27527,11 +26644,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -27541,11 +26654,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -27554,11 +26663,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -27567,11 +26672,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -27580,11 +26681,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -27593,11 +26690,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (InvertFlags cmp) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMNE
                        b.SetControl(cmp)
@@ -27607,11 +26700,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(SUB x y)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMP x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27635,11 +26724,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(MULS x y a)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27667,11 +26752,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(SUBconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMPconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27695,11 +26776,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(SUBshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (CMPshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27725,11 +26802,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(SUBshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (CMPshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27755,11 +26828,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(SUBshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (CMPshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27785,11 +26854,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(SUBshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMPshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27815,11 +26880,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(SUBshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMPshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27845,11 +26906,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(SUBshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMPshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27875,11 +26932,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ADD x y)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27903,11 +26956,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(MULA x y a)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27935,11 +26984,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ADDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMNconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27963,11 +27008,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ADDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (CMNshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -27993,11 +27034,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ADDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (CMNshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28023,11 +27060,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ADDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (CMNshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28053,11 +27086,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ADDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMNshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28083,11 +27112,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ADDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMNshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28113,11 +27138,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ADDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (CMNshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28143,11 +27164,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(AND x y)) yes no)
                // cond: l.Uses==1
                // result: (NE (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28171,11 +27188,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ANDconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (NE (TSTconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28199,11 +27212,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ANDshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (TSTshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28229,11 +27238,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ANDshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (TSTshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28259,11 +27264,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ANDshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (TSTshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28289,11 +27290,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ANDshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (TSTshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28319,11 +27316,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ANDshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (TSTshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28349,11 +27342,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(ANDshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (TSTshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28379,11 +27368,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(XOR x y)) yes no)
                // cond: l.Uses==1
                // result: (NE (TEQ x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28407,11 +27392,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(XORconst [c] x)) yes no)
                // cond: l.Uses==1
                // result: (NE (TEQconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28435,11 +27416,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(XORshiftLL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (TEQshiftLL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28465,11 +27442,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(XORshiftRL x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (TEQshiftRL x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28495,11 +27468,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(XORshiftRA x y [c])) yes no)
                // cond: l.Uses==1
                // result: (NE (TEQshiftRA x y [c]) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28525,11 +27494,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(XORshiftLLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (TEQshiftLLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28555,11 +27520,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(XORshiftRLreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (TEQshiftRLreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28585,11 +27546,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (NE (CMPconst [0] l:(XORshiftRAreg x y z)) yes no)
                // cond: l.Uses==1
                // result: (NE (TEQshiftRAreg x y z) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMCMPconst {
-                               break
-                       }
+               for v.Op == OpARMCMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -28616,11 +27573,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28629,11 +27582,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28643,11 +27592,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28656,11 +27601,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28670,11 +27611,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28683,11 +27620,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGE (InvertFlags cmp) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMULE
                        b.SetControl(cmp)
@@ -28698,11 +27631,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28712,11 +27641,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28726,11 +27651,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28739,11 +27660,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28753,11 +27670,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28766,11 +27679,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (UGT (InvertFlags cmp) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMULT
                        b.SetControl(cmp)
@@ -28781,11 +27690,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28794,11 +27699,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28807,11 +27708,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28821,11 +27718,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28834,11 +27727,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28848,11 +27737,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULE (InvertFlags cmp) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMUGE
                        b.SetControl(cmp)
@@ -28863,11 +27748,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagEQ {
-                               break
-                       }
+               for v.Op == OpARMFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28877,11 +27758,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28890,11 +27767,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28904,11 +27777,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28917,11 +27786,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMFlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARMFlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -28931,11 +27796,7 @@ func rewriteBlockARM(b *Block) bool {
                // match: (ULT (InvertFlags cmp) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARMInvertFlags {
-                               break
-                       }
+               for v.Op == OpARMInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARMUGT
                        b.SetControl(cmp)
index 997439ec902867ae3bdf16425f5c40dd76ae5e70..0f55a6f7d80a5c1554e1d05e51b5ac9139cdefe0 100644 (file)
@@ -38083,21 +38083,16 @@ func rewriteValueARM64_OpZeroExt8to64_0(v *Value) bool {
 }
 func rewriteBlockARM64(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        case BlockARM64EQ:
                // match: (EQ (CMPWconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (EQ (TSTWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38121,11 +38116,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (EQ (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38149,11 +38140,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPWconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (EQ (TSTW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38177,11 +38164,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (EQ (TSTconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38205,11 +38188,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (EQ (CMNconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38233,11 +38212,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPWconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (EQ (CMNWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38261,11 +38236,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (EQ (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38289,11 +38260,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPWconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (EQ (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38317,11 +38284,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMP x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (EQ (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMP {
-                               break
-                       }
+               for v.Op == OpARM64CMP {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -38343,11 +38306,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPW x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (EQ (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPW {
-                               break
-                       }
+               for v.Op == OpARM64CMPW {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -38369,11 +38328,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPconst [0] x) yes no)
                // cond:
                // result: (Z x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38386,11 +38341,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPWconst [0] x) yes no)
                // cond:
                // result: (ZW x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38403,11 +38354,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPconst [0] z:(MADD a x y)) yes no)
                // cond: z.Uses==1
                // result: (EQ (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38435,11 +38382,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPconst [0] z:(MSUB a x y)) yes no)
                // cond: z.Uses==1
                // result: (EQ (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38467,11 +38410,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPWconst [0] z:(MADDW a x y)) yes no)
                // cond: z.Uses==1
                // result: (EQ (CMNW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38499,11 +38438,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (CMPWconst [0] z:(MSUBW a x y)) yes no)
                // cond: z.Uses==1
                // result: (EQ (CMPW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38531,11 +38466,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (TSTconst [c] x) yes no)
                // cond: oneBit(c)
                // result: (TBZ {ntz(c)} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64TSTconst {
-                               break
-                       }
+               for v.Op == OpARM64TSTconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(oneBit(c)) {
@@ -38549,11 +38480,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (TSTWconst [c] x) yes no)
                // cond: oneBit(int64(uint32(c)))
                // result: (TBZ {ntz(int64(uint32(c)))} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64TSTWconst {
-                               break
-                       }
+               for v.Op == OpARM64TSTWconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(oneBit(int64(uint32(c)))) {
@@ -38567,11 +38494,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -38580,11 +38503,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -38594,11 +38513,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -38608,11 +38523,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -38622,11 +38533,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -38636,11 +38543,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (EQ (InvertFlags cmp) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64EQ
                        b.SetControl(cmp)
@@ -38651,11 +38554,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (FGE (InvertFlags cmp) yes no)
                // cond:
                // result: (FLE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64FLE
                        b.SetControl(cmp)
@@ -38666,11 +38565,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (FGT (InvertFlags cmp) yes no)
                // cond:
                // result: (FLT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64FLT
                        b.SetControl(cmp)
@@ -38681,11 +38576,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (FLE (InvertFlags cmp) yes no)
                // cond:
                // result: (FGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64FGE
                        b.SetControl(cmp)
@@ -38696,11 +38587,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (FLT (InvertFlags cmp) yes no)
                // cond:
                // result: (FGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64FGT
                        b.SetControl(cmp)
@@ -38711,11 +38598,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPWconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (GE (TSTWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38739,11 +38622,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (GE (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38767,11 +38646,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPWconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (GE (TSTW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38795,11 +38670,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (GE (TSTconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38823,11 +38694,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (GE (CMNconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38851,11 +38718,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPWconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (GE (CMNWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38879,11 +38742,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (GE (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38907,11 +38766,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPWconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (GE (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -38935,11 +38790,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMP x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (GE (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMP {
-                               break
-                       }
+               for v.Op == OpARM64CMP {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -38961,11 +38812,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPW x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (GE (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPW {
-                               break
-                       }
+               for v.Op == OpARM64CMPW {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -38987,11 +38834,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPconst [0] z:(MADD a x y)) yes no)
                // cond: z.Uses==1
                // result: (GE (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39019,11 +38862,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPconst [0] z:(MSUB a x y)) yes no)
                // cond: z.Uses==1
                // result: (GE (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39051,11 +38890,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPWconst [0] z:(MADDW a x y)) yes no)
                // cond: z.Uses==1
                // result: (GE (CMNW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39083,11 +38918,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPWconst [0] z:(MSUBW a x y)) yes no)
                // cond: z.Uses==1
                // result: (GE (CMPW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39115,11 +38946,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPWconst [0] x) yes no)
                // cond:
                // result: (TBZ {int64(31)} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39132,11 +38959,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (CMPconst [0] x) yes no)
                // cond:
                // result: (TBZ {int64(63)} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39149,11 +38972,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39162,11 +38981,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39176,11 +38991,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39190,11 +39001,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39203,11 +39010,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39216,11 +39019,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GE (InvertFlags cmp) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64LE
                        b.SetControl(cmp)
@@ -39231,11 +39030,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPWconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (GT (TSTWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39259,11 +39054,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (GT (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39287,11 +39078,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPWconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (GT (TSTW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39315,11 +39102,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (GT (TSTconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39343,11 +39126,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (GT (CMNconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39371,11 +39150,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPWconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (GT (CMNWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39399,11 +39174,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (GT (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39427,11 +39198,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPWconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (GT (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39455,11 +39222,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMP x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (GT (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMP {
-                               break
-                       }
+               for v.Op == OpARM64CMP {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -39481,11 +39244,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPW x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (GT (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPW {
-                               break
-                       }
+               for v.Op == OpARM64CMPW {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -39507,11 +39266,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPconst [0] z:(MADD a x y)) yes no)
                // cond: z.Uses==1
                // result: (GT (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39539,11 +39294,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPconst [0] z:(MSUB a x y)) yes no)
                // cond: z.Uses==1
                // result: (GT (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39571,11 +39322,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPWconst [0] z:(MADDW a x y)) yes no)
                // cond: z.Uses==1
                // result: (GT (CMNW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39603,11 +39350,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (CMPWconst [0] z:(MSUBW a x y)) yes no)
                // cond: z.Uses==1
                // result: (GT (CMPW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39635,11 +39378,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39649,11 +39388,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39663,11 +39398,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39677,11 +39408,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39690,11 +39417,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -39703,11 +39426,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (GT (InvertFlags cmp) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64LT
                        b.SetControl(cmp)
@@ -39718,11 +39437,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (Equal cc) yes no)
                // cond:
                // result: (EQ cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64Equal {
-                               break
-                       }
+               for v.Op == OpARM64Equal {
                        cc := v.Args[0]
                        b.Kind = BlockARM64EQ
                        b.SetControl(cc)
@@ -39732,11 +39447,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (NotEqual cc) yes no)
                // cond:
                // result: (NE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64NotEqual {
-                               break
-                       }
+               for v.Op == OpARM64NotEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARM64NE
                        b.SetControl(cc)
@@ -39746,11 +39457,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (LessThan cc) yes no)
                // cond:
                // result: (LT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessThan {
-                               break
-                       }
+               for v.Op == OpARM64LessThan {
                        cc := v.Args[0]
                        b.Kind = BlockARM64LT
                        b.SetControl(cc)
@@ -39760,11 +39467,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (LessThanU cc) yes no)
                // cond:
                // result: (ULT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessThanU {
-                               break
-                       }
+               for v.Op == OpARM64LessThanU {
                        cc := v.Args[0]
                        b.Kind = BlockARM64ULT
                        b.SetControl(cc)
@@ -39774,11 +39477,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (LessEqual cc) yes no)
                // cond:
                // result: (LE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessEqual {
-                               break
-                       }
+               for v.Op == OpARM64LessEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARM64LE
                        b.SetControl(cc)
@@ -39788,11 +39487,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (LessEqualU cc) yes no)
                // cond:
                // result: (ULE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessEqualU {
-                               break
-                       }
+               for v.Op == OpARM64LessEqualU {
                        cc := v.Args[0]
                        b.Kind = BlockARM64ULE
                        b.SetControl(cc)
@@ -39802,11 +39497,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (GreaterThan cc) yes no)
                // cond:
                // result: (GT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterThan {
-                               break
-                       }
+               for v.Op == OpARM64GreaterThan {
                        cc := v.Args[0]
                        b.Kind = BlockARM64GT
                        b.SetControl(cc)
@@ -39816,11 +39507,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (GreaterThanU cc) yes no)
                // cond:
                // result: (UGT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterThanU {
-                               break
-                       }
+               for v.Op == OpARM64GreaterThanU {
                        cc := v.Args[0]
                        b.Kind = BlockARM64UGT
                        b.SetControl(cc)
@@ -39830,11 +39517,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (GreaterEqual cc) yes no)
                // cond:
                // result: (GE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterEqual {
-                               break
-                       }
+               for v.Op == OpARM64GreaterEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARM64GE
                        b.SetControl(cc)
@@ -39844,11 +39527,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (GreaterEqualU cc) yes no)
                // cond:
                // result: (UGE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterEqualU {
-                               break
-                       }
+               for v.Op == OpARM64GreaterEqualU {
                        cc := v.Args[0]
                        b.Kind = BlockARM64UGE
                        b.SetControl(cc)
@@ -39858,11 +39537,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (LessThanF cc) yes no)
                // cond:
                // result: (FLT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessThanF {
-                               break
-                       }
+               for v.Op == OpARM64LessThanF {
                        cc := v.Args[0]
                        b.Kind = BlockARM64FLT
                        b.SetControl(cc)
@@ -39872,11 +39547,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (LessEqualF cc) yes no)
                // cond:
                // result: (FLE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessEqualF {
-                               break
-                       }
+               for v.Op == OpARM64LessEqualF {
                        cc := v.Args[0]
                        b.Kind = BlockARM64FLE
                        b.SetControl(cc)
@@ -39886,11 +39557,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (GreaterThanF cc) yes no)
                // cond:
                // result: (FGT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterThanF {
-                               break
-                       }
+               for v.Op == OpARM64GreaterThanF {
                        cc := v.Args[0]
                        b.Kind = BlockARM64FGT
                        b.SetControl(cc)
@@ -39900,11 +39567,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (If (GreaterEqualF cc) yes no)
                // cond:
                // result: (FGE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterEqualF {
-                               break
-                       }
+               for v.Op == OpARM64GreaterEqualF {
                        cc := v.Args[0]
                        b.Kind = BlockARM64FGE
                        b.SetControl(cc)
@@ -39915,8 +39578,6 @@ func rewriteBlockARM64(b *Block) bool {
                // cond:
                // result: (NZ cond yes no)
                for {
-                       v := b.Control
-                       _ = v
                        cond := b.Control
                        b.Kind = BlockARM64NZ
                        b.SetControl(cond)
@@ -39927,11 +39588,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPWconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (LE (TSTWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39955,11 +39612,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (LE (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -39983,11 +39636,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPWconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (LE (TSTW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40011,11 +39660,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (LE (TSTconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40039,11 +39684,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (LE (CMNconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40067,11 +39708,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPWconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (LE (CMNWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40095,11 +39732,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (LE (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40123,11 +39756,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPWconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (LE (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40151,11 +39780,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMP x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (LE (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMP {
-                               break
-                       }
+               for v.Op == OpARM64CMP {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -40177,11 +39802,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPW x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (LE (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPW {
-                               break
-                       }
+               for v.Op == OpARM64CMPW {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -40203,11 +39824,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPconst [0] z:(MADD a x y)) yes no)
                // cond: z.Uses==1
                // result: (LE (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40235,11 +39852,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPconst [0] z:(MSUB a x y)) yes no)
                // cond: z.Uses==1
                // result: (LE (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40267,11 +39880,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPWconst [0] z:(MADDW a x y)) yes no)
                // cond: z.Uses==1
                // result: (LE (CMNW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40299,11 +39908,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (CMPWconst [0] z:(MSUBW a x y)) yes no)
                // cond: z.Uses==1
                // result: (LE (CMPW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40331,11 +39936,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40344,11 +39945,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40357,11 +39954,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40370,11 +39963,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40384,11 +39973,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40398,11 +39983,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LE (InvertFlags cmp) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64GE
                        b.SetControl(cmp)
@@ -40413,11 +39994,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPWconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (LT (TSTWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40441,11 +40018,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (LT (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40469,11 +40042,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPWconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (LT (TSTW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40497,11 +40066,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (LT (TSTconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40525,11 +40090,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (LT (CMNconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40553,11 +40114,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPWconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (LT (CMNWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40581,11 +40138,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (LT (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40609,11 +40162,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPWconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (LT (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40637,11 +40186,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMP x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (LT (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMP {
-                               break
-                       }
+               for v.Op == OpARM64CMP {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -40663,11 +40208,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPW x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (LT (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPW {
-                               break
-                       }
+               for v.Op == OpARM64CMPW {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -40689,11 +40230,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPconst [0] z:(MADD a x y)) yes no)
                // cond: z.Uses==1
                // result: (LT (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40721,11 +40258,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPconst [0] z:(MSUB a x y)) yes no)
                // cond: z.Uses==1
                // result: (LT (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40753,11 +40286,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPWconst [0] z:(MADDW a x y)) yes no)
                // cond: z.Uses==1
                // result: (LT (CMNW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40785,11 +40314,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPWconst [0] z:(MSUBW a x y)) yes no)
                // cond: z.Uses==1
                // result: (LT (CMPW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40817,11 +40342,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPWconst [0] x) yes no)
                // cond:
                // result: (TBNZ {int64(31)} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40834,11 +40355,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (CMPconst [0] x) yes no)
                // cond:
                // result: (TBNZ {int64(63)} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40851,11 +40368,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40865,11 +40378,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40878,11 +40387,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40891,11 +40396,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40905,11 +40406,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40919,11 +40416,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (LT (InvertFlags cmp) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64GT
                        b.SetControl(cmp)
@@ -40934,11 +40427,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPWconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (NE (TSTWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40962,11 +40451,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (NE (TST x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -40990,11 +40475,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPWconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (NE (TSTW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41018,11 +40499,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPconst [0] x:(ANDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (NE (TSTconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41046,11 +40523,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (NE (CMNconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41074,11 +40547,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPWconst [0] x:(ADDconst [c] y)) yes no)
                // cond: x.Uses == 1
                // result: (NE (CMNWconst [c] y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41102,11 +40571,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (NE (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41130,11 +40595,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPWconst [0] z:(ADD x y)) yes no)
                // cond: z.Uses == 1
                // result: (NE (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41158,11 +40619,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMP x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (NE (CMN x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMP {
-                               break
-                       }
+               for v.Op == OpARM64CMP {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -41184,11 +40641,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPW x z:(NEG y)) yes no)
                // cond: z.Uses == 1
                // result: (NE (CMNW x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPW {
-                               break
-                       }
+               for v.Op == OpARM64CMPW {
                        _ = v.Args[1]
                        x := v.Args[0]
                        z := v.Args[1]
@@ -41210,11 +40663,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPconst [0] x) yes no)
                // cond:
                // result: (NZ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41227,11 +40676,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPWconst [0] x) yes no)
                // cond:
                // result: (NZW x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41244,11 +40689,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPconst [0] z:(MADD a x y)) yes no)
                // cond: z.Uses==1
                // result: (NE (CMN a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41276,11 +40717,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPconst [0] z:(MSUB a x y)) yes no)
                // cond: z.Uses==1
                // result: (NE (CMP a (MUL <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41308,11 +40745,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPWconst [0] z:(MADDW a x y)) yes no)
                // cond: z.Uses==1
                // result: (NE (CMNW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41340,11 +40773,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (CMPWconst [0] z:(MSUBW a x y)) yes no)
                // cond: z.Uses==1
                // result: (NE (CMPW a (MULW <x.Type> x y)) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64CMPWconst {
-                               break
-                       }
+               for v.Op == OpARM64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41372,11 +40801,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (TSTconst [c] x) yes no)
                // cond: oneBit(c)
                // result: (TBNZ {ntz(c)} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64TSTconst {
-                               break
-                       }
+               for v.Op == OpARM64TSTconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(oneBit(c)) {
@@ -41390,11 +40815,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (TSTWconst [c] x) yes no)
                // cond: oneBit(int64(uint32(c)))
                // result: (TBNZ {ntz(int64(uint32(c)))} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64TSTWconst {
-                               break
-                       }
+               for v.Op == OpARM64TSTWconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(oneBit(int64(uint32(c)))) {
@@ -41408,11 +40829,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41422,11 +40839,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41435,11 +40848,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41448,11 +40857,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41461,11 +40866,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41474,11 +40875,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NE (InvertFlags cmp) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64NE
                        b.SetControl(cmp)
@@ -41489,11 +40886,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (Equal cc) yes no)
                // cond:
                // result: (EQ cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64Equal {
-                               break
-                       }
+               for v.Op == OpARM64Equal {
                        cc := v.Args[0]
                        b.Kind = BlockARM64EQ
                        b.SetControl(cc)
@@ -41503,11 +40896,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (NotEqual cc) yes no)
                // cond:
                // result: (NE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64NotEqual {
-                               break
-                       }
+               for v.Op == OpARM64NotEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARM64NE
                        b.SetControl(cc)
@@ -41517,11 +40906,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (LessThan cc) yes no)
                // cond:
                // result: (LT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessThan {
-                               break
-                       }
+               for v.Op == OpARM64LessThan {
                        cc := v.Args[0]
                        b.Kind = BlockARM64LT
                        b.SetControl(cc)
@@ -41531,11 +40916,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (LessThanU cc) yes no)
                // cond:
                // result: (ULT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessThanU {
-                               break
-                       }
+               for v.Op == OpARM64LessThanU {
                        cc := v.Args[0]
                        b.Kind = BlockARM64ULT
                        b.SetControl(cc)
@@ -41545,11 +40926,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (LessEqual cc) yes no)
                // cond:
                // result: (LE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessEqual {
-                               break
-                       }
+               for v.Op == OpARM64LessEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARM64LE
                        b.SetControl(cc)
@@ -41559,11 +40936,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (LessEqualU cc) yes no)
                // cond:
                // result: (ULE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessEqualU {
-                               break
-                       }
+               for v.Op == OpARM64LessEqualU {
                        cc := v.Args[0]
                        b.Kind = BlockARM64ULE
                        b.SetControl(cc)
@@ -41573,11 +40946,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (GreaterThan cc) yes no)
                // cond:
                // result: (GT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterThan {
-                               break
-                       }
+               for v.Op == OpARM64GreaterThan {
                        cc := v.Args[0]
                        b.Kind = BlockARM64GT
                        b.SetControl(cc)
@@ -41587,11 +40956,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (GreaterThanU cc) yes no)
                // cond:
                // result: (UGT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterThanU {
-                               break
-                       }
+               for v.Op == OpARM64GreaterThanU {
                        cc := v.Args[0]
                        b.Kind = BlockARM64UGT
                        b.SetControl(cc)
@@ -41601,11 +40966,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (GreaterEqual cc) yes no)
                // cond:
                // result: (GE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterEqual {
-                               break
-                       }
+               for v.Op == OpARM64GreaterEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARM64GE
                        b.SetControl(cc)
@@ -41615,11 +40976,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (GreaterEqualU cc) yes no)
                // cond:
                // result: (UGE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterEqualU {
-                               break
-                       }
+               for v.Op == OpARM64GreaterEqualU {
                        cc := v.Args[0]
                        b.Kind = BlockARM64UGE
                        b.SetControl(cc)
@@ -41629,11 +40986,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (LessThanF cc) yes no)
                // cond:
                // result: (FLT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessThanF {
-                               break
-                       }
+               for v.Op == OpARM64LessThanF {
                        cc := v.Args[0]
                        b.Kind = BlockARM64FLT
                        b.SetControl(cc)
@@ -41643,11 +40996,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (LessEqualF cc) yes no)
                // cond:
                // result: (FLE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64LessEqualF {
-                               break
-                       }
+               for v.Op == OpARM64LessEqualF {
                        cc := v.Args[0]
                        b.Kind = BlockARM64FLE
                        b.SetControl(cc)
@@ -41657,11 +41006,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (GreaterThan cc) yes no)
                // cond:
                // result: (FGT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterThan {
-                               break
-                       }
+               for v.Op == OpARM64GreaterThan {
                        cc := v.Args[0]
                        b.Kind = BlockARM64FGT
                        b.SetControl(cc)
@@ -41671,11 +41016,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (GreaterEqual cc) yes no)
                // cond:
                // result: (FGE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64GreaterEqual {
-                               break
-                       }
+               for v.Op == OpARM64GreaterEqual {
                        cc := v.Args[0]
                        b.Kind = BlockARM64FGE
                        b.SetControl(cc)
@@ -41685,11 +41026,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (ANDconst [c] x) yes no)
                // cond: oneBit(c)
                // result: (TBNZ {ntz(c)} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64ANDconst {
-                               break
-                       }
+               for v.Op == OpARM64ANDconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(oneBit(c)) {
@@ -41703,11 +41040,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (MOVDconst [0]) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64MOVDconst {
-                               break
-                       }
+               for v.Op == OpARM64MOVDconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41720,11 +41053,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZ (MOVDconst [c]) yes no)
                // cond: c != 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64MOVDconst {
-                               break
-                       }
+               for v.Op == OpARM64MOVDconst {
                        c := v.AuxInt
                        if !(c != 0) {
                                break
@@ -41738,11 +41067,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZW (ANDconst [c] x) yes no)
                // cond: oneBit(int64(uint32(c)))
                // result: (TBNZ {ntz(int64(uint32(c)))} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64ANDconst {
-                               break
-                       }
+               for v.Op == OpARM64ANDconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(oneBit(int64(uint32(c)))) {
@@ -41756,11 +41081,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZW (MOVDconst [c]) yes no)
                // cond: int32(c) == 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64MOVDconst {
-                               break
-                       }
+               for v.Op == OpARM64MOVDconst {
                        c := v.AuxInt
                        if !(int32(c) == 0) {
                                break
@@ -41774,11 +41095,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (NZW (MOVDconst [c]) yes no)
                // cond: int32(c) != 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64MOVDconst {
-                               break
-                       }
+               for v.Op == OpARM64MOVDconst {
                        c := v.AuxInt
                        if !(int32(c) != 0) {
                                break
@@ -41792,11 +41109,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41805,11 +41118,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41819,11 +41128,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41832,11 +41137,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41846,11 +41147,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41859,11 +41156,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGE (InvertFlags cmp) yes no)
                // cond:
                // result: (ULE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64ULE
                        b.SetControl(cmp)
@@ -41874,11 +41167,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41888,11 +41177,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41902,11 +41187,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41915,11 +41196,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41929,11 +41206,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41942,11 +41215,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (UGT (InvertFlags cmp) yes no)
                // cond:
                // result: (ULT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64ULT
                        b.SetControl(cmp)
@@ -41957,11 +41226,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41970,11 +41235,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULE (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41983,11 +41244,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULE (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41997,11 +41254,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULE (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -42010,11 +41263,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULE (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -42024,11 +41273,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULE (InvertFlags cmp) yes no)
                // cond:
                // result: (UGE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64UGE
                        b.SetControl(cmp)
@@ -42039,11 +41284,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagEQ {
-                               break
-                       }
+               for v.Op == OpARM64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -42053,11 +41294,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULT (FlagLT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -42066,11 +41303,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULT (FlagLT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagLT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagLT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -42080,11 +41313,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULT (FlagGT_ULT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_ULT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_ULT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -42093,11 +41322,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULT (FlagGT_UGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64FlagGT_UGT {
-                               break
-                       }
+               for v.Op == OpARM64FlagGT_UGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -42107,11 +41332,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ULT (InvertFlags cmp) yes no)
                // cond:
                // result: (UGT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64InvertFlags {
-                               break
-                       }
+               for v.Op == OpARM64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockARM64UGT
                        b.SetControl(cmp)
@@ -42122,11 +41343,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (Z (ANDconst [c] x) yes no)
                // cond: oneBit(c)
                // result: (TBZ {ntz(c)} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64ANDconst {
-                               break
-                       }
+               for v.Op == OpARM64ANDconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(oneBit(c)) {
@@ -42140,11 +41357,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (Z (MOVDconst [0]) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64MOVDconst {
-                               break
-                       }
+               for v.Op == OpARM64MOVDconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -42156,11 +41369,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (Z (MOVDconst [c]) yes no)
                // cond: c != 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64MOVDconst {
-                               break
-                       }
+               for v.Op == OpARM64MOVDconst {
                        c := v.AuxInt
                        if !(c != 0) {
                                break
@@ -42175,11 +41384,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ZW (ANDconst [c] x) yes no)
                // cond: oneBit(int64(uint32(c)))
                // result: (TBZ {ntz(int64(uint32(c)))} x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64ANDconst {
-                               break
-                       }
+               for v.Op == OpARM64ANDconst {
                        c := v.AuxInt
                        x := v.Args[0]
                        if !(oneBit(int64(uint32(c)))) {
@@ -42193,11 +41398,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ZW (MOVDconst [c]) yes no)
                // cond: int32(c) == 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64MOVDconst {
-                               break
-                       }
+               for v.Op == OpARM64MOVDconst {
                        c := v.AuxInt
                        if !(int32(c) == 0) {
                                break
@@ -42210,11 +41411,7 @@ func rewriteBlockARM64(b *Block) bool {
                // match: (ZW (MOVDconst [c]) yes no)
                // cond: int32(c) != 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpARM64MOVDconst {
-                               break
-                       }
+               for v.Op == OpARM64MOVDconst {
                        c := v.AuxInt
                        if !(int32(c) != 0) {
                                break
index 4c11640616e985fa36ad5d8dccd285790013db2a..b597d7c899e6fd63137c333a900043c88042194f 100644 (file)
@@ -9317,21 +9317,16 @@ func rewriteValueMIPS_OpZeromask_0(v *Value) bool {
 }
 func rewriteBlockMIPS(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        case BlockMIPSEQ:
                // match: (EQ (FPFlagTrue cmp) yes no)
                // cond:
                // result: (FPF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSFPFlagTrue {
-                               break
-                       }
+               for v.Op == OpMIPSFPFlagTrue {
                        cmp := v.Args[0]
                        b.Kind = BlockMIPSFPF
                        b.SetControl(cmp)
@@ -9341,11 +9336,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (FPFlagFalse cmp) yes no)
                // cond:
                // result: (FPT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSFPFlagFalse {
-                               break
-                       }
+               for v.Op == OpMIPSFPFlagFalse {
                        cmp := v.Args[0]
                        b.Kind = BlockMIPSFPT
                        b.SetControl(cmp)
@@ -9355,11 +9346,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGT _ _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9376,11 +9363,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGTU _ _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9397,11 +9380,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGTconst _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9417,11 +9396,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGTUconst _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9437,11 +9412,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGTzero _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9457,11 +9428,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGTUzero _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9477,11 +9444,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (SGTUconst [1] x) yes no)
                // cond:
                // result: (NE x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSSGTUconst {
-                               break
-                       }
+               for v.Op == OpMIPSSGTUconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9494,11 +9457,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (SGTUzero x) yes no)
                // cond:
                // result: (EQ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSSGTUzero {
-                               break
-                       }
+               for v.Op == OpMIPSSGTUzero {
                        x := v.Args[0]
                        b.Kind = BlockMIPSEQ
                        b.SetControl(x)
@@ -9508,11 +9467,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (SGTconst [0] x) yes no)
                // cond:
                // result: (GEZ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSSGTconst {
-                               break
-                       }
+               for v.Op == OpMIPSSGTconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -9525,11 +9480,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (SGTzero x) yes no)
                // cond:
                // result: (LEZ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSSGTzero {
-                               break
-                       }
+               for v.Op == OpMIPSSGTzero {
                        x := v.Args[0]
                        b.Kind = BlockMIPSLEZ
                        b.SetControl(x)
@@ -9539,11 +9490,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (MOVWconst [0]) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -9555,11 +9502,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (EQ (MOVWconst [c]) yes no)
                // cond: c != 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(c != 0) {
                                break
@@ -9574,11 +9517,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (GEZ (MOVWconst [c]) yes no)
                // cond: int32(c) >= 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(int32(c) >= 0) {
                                break
@@ -9591,11 +9530,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (GEZ (MOVWconst [c]) yes no)
                // cond: int32(c) < 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(int32(c) < 0) {
                                break
@@ -9610,11 +9545,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (GTZ (MOVWconst [c]) yes no)
                // cond: int32(c) > 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(int32(c) > 0) {
                                break
@@ -9627,11 +9558,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (GTZ (MOVWconst [c]) yes no)
                // cond: int32(c) <= 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(int32(c) <= 0) {
                                break
@@ -9647,8 +9574,6 @@ func rewriteBlockMIPS(b *Block) bool {
                // cond:
                // result: (NE cond yes no)
                for {
-                       v := b.Control
-                       _ = v
                        cond := b.Control
                        b.Kind = BlockMIPSNE
                        b.SetControl(cond)
@@ -9659,11 +9584,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (LEZ (MOVWconst [c]) yes no)
                // cond: int32(c) <= 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(int32(c) <= 0) {
                                break
@@ -9676,11 +9597,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (LEZ (MOVWconst [c]) yes no)
                // cond: int32(c) > 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(int32(c) > 0) {
                                break
@@ -9695,11 +9612,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (LTZ (MOVWconst [c]) yes no)
                // cond: int32(c) < 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(int32(c) < 0) {
                                break
@@ -9712,11 +9625,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (LTZ (MOVWconst [c]) yes no)
                // cond: int32(c) >= 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(int32(c) >= 0) {
                                break
@@ -9731,11 +9640,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (FPFlagTrue cmp) yes no)
                // cond:
                // result: (FPT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSFPFlagTrue {
-                               break
-                       }
+               for v.Op == OpMIPSFPFlagTrue {
                        cmp := v.Args[0]
                        b.Kind = BlockMIPSFPT
                        b.SetControl(cmp)
@@ -9745,11 +9650,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (FPFlagFalse cmp) yes no)
                // cond:
                // result: (FPF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSFPFlagFalse {
-                               break
-                       }
+               for v.Op == OpMIPSFPFlagFalse {
                        cmp := v.Args[0]
                        b.Kind = BlockMIPSFPF
                        b.SetControl(cmp)
@@ -9759,11 +9660,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGT _ _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9780,11 +9677,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGTU _ _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9801,11 +9694,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGTconst _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9821,11 +9710,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGTUconst _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9841,11 +9726,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGTzero _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9861,11 +9742,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGTUzero _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSXORconst {
-                               break
-                       }
+               for v.Op == OpMIPSXORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9881,11 +9758,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (SGTUconst [1] x) yes no)
                // cond:
                // result: (EQ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSSGTUconst {
-                               break
-                       }
+               for v.Op == OpMIPSSGTUconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -9898,11 +9771,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (SGTUzero x) yes no)
                // cond:
                // result: (NE x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSSGTUzero {
-                               break
-                       }
+               for v.Op == OpMIPSSGTUzero {
                        x := v.Args[0]
                        b.Kind = BlockMIPSNE
                        b.SetControl(x)
@@ -9912,11 +9781,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (SGTconst [0] x) yes no)
                // cond:
                // result: (LTZ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSSGTconst {
-                               break
-                       }
+               for v.Op == OpMIPSSGTconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -9929,11 +9794,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (SGTzero x) yes no)
                // cond:
                // result: (GTZ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSSGTzero {
-                               break
-                       }
+               for v.Op == OpMIPSSGTzero {
                        x := v.Args[0]
                        b.Kind = BlockMIPSGTZ
                        b.SetControl(x)
@@ -9943,11 +9804,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (MOVWconst [0]) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -9960,11 +9817,7 @@ func rewriteBlockMIPS(b *Block) bool {
                // match: (NE (MOVWconst [c]) yes no)
                // cond: c != 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPSMOVWconst {
-                               break
-                       }
+               for v.Op == OpMIPSMOVWconst {
                        c := v.AuxInt
                        if !(c != 0) {
                                break
index d9efa99261a9f2d85d55dce650cd4ef21791d001..453b81e75f99f6dbaaded66d284ac3fb44ebf281 100644 (file)
@@ -10036,21 +10036,16 @@ func rewriteValueMIPS64_OpZeroExt8to64_0(v *Value) bool {
 }
 func rewriteBlockMIPS64(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        case BlockMIPS64EQ:
                // match: (EQ (FPFlagTrue cmp) yes no)
                // cond:
                // result: (FPF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64FPFlagTrue {
-                               break
-                       }
+               for v.Op == OpMIPS64FPFlagTrue {
                        cmp := v.Args[0]
                        b.Kind = BlockMIPS64FPF
                        b.SetControl(cmp)
@@ -10060,11 +10055,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (FPFlagFalse cmp) yes no)
                // cond:
                // result: (FPT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64FPFlagFalse {
-                               break
-                       }
+               for v.Op == OpMIPS64FPFlagFalse {
                        cmp := v.Args[0]
                        b.Kind = BlockMIPS64FPT
                        b.SetControl(cmp)
@@ -10074,11 +10065,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGT _ _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64XORconst {
-                               break
-                       }
+               for v.Op == OpMIPS64XORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10095,11 +10082,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGTU _ _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64XORconst {
-                               break
-                       }
+               for v.Op == OpMIPS64XORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10116,11 +10099,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGTconst _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64XORconst {
-                               break
-                       }
+               for v.Op == OpMIPS64XORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10136,11 +10115,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (XORconst [1] cmp:(SGTUconst _)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64XORconst {
-                               break
-                       }
+               for v.Op == OpMIPS64XORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10156,11 +10131,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (SGTUconst [1] x) yes no)
                // cond:
                // result: (NE x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64SGTUconst {
-                               break
-                       }
+               for v.Op == OpMIPS64SGTUconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10173,11 +10144,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (SGTU x (MOVVconst [0])) yes no)
                // cond:
                // result: (EQ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64SGTU {
-                               break
-                       }
+               for v.Op == OpMIPS64SGTU {
                        _ = v.Args[1]
                        x := v.Args[0]
                        v_1 := v.Args[1]
@@ -10195,11 +10162,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (SGTconst [0] x) yes no)
                // cond:
                // result: (GEZ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64SGTconst {
-                               break
-                       }
+               for v.Op == OpMIPS64SGTconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -10212,11 +10175,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (SGT x (MOVVconst [0])) yes no)
                // cond:
                // result: (LEZ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64SGT {
-                               break
-                       }
+               for v.Op == OpMIPS64SGT {
                        _ = v.Args[1]
                        x := v.Args[0]
                        v_1 := v.Args[1]
@@ -10234,11 +10193,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (MOVVconst [0]) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -10250,11 +10205,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (EQ (MOVVconst [c]) yes no)
                // cond: c != 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c != 0) {
                                break
@@ -10269,11 +10220,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (GEZ (MOVVconst [c]) yes no)
                // cond: c >= 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c >= 0) {
                                break
@@ -10286,11 +10233,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (GEZ (MOVVconst [c]) yes no)
                // cond: c < 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c < 0) {
                                break
@@ -10305,11 +10248,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (GTZ (MOVVconst [c]) yes no)
                // cond: c > 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c > 0) {
                                break
@@ -10322,11 +10261,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (GTZ (MOVVconst [c]) yes no)
                // cond: c <= 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c <= 0) {
                                break
@@ -10342,8 +10277,6 @@ func rewriteBlockMIPS64(b *Block) bool {
                // cond:
                // result: (NE cond yes no)
                for {
-                       v := b.Control
-                       _ = v
                        cond := b.Control
                        b.Kind = BlockMIPS64NE
                        b.SetControl(cond)
@@ -10354,11 +10287,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (LEZ (MOVVconst [c]) yes no)
                // cond: c <= 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c <= 0) {
                                break
@@ -10371,11 +10300,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (LEZ (MOVVconst [c]) yes no)
                // cond: c > 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c > 0) {
                                break
@@ -10390,11 +10315,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (LTZ (MOVVconst [c]) yes no)
                // cond: c < 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c < 0) {
                                break
@@ -10407,11 +10328,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (LTZ (MOVVconst [c]) yes no)
                // cond: c >= 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c >= 0) {
                                break
@@ -10426,11 +10343,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (FPFlagTrue cmp) yes no)
                // cond:
                // result: (FPT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64FPFlagTrue {
-                               break
-                       }
+               for v.Op == OpMIPS64FPFlagTrue {
                        cmp := v.Args[0]
                        b.Kind = BlockMIPS64FPT
                        b.SetControl(cmp)
@@ -10440,11 +10353,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (FPFlagFalse cmp) yes no)
                // cond:
                // result: (FPF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64FPFlagFalse {
-                               break
-                       }
+               for v.Op == OpMIPS64FPFlagFalse {
                        cmp := v.Args[0]
                        b.Kind = BlockMIPS64FPF
                        b.SetControl(cmp)
@@ -10454,11 +10363,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGT _ _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64XORconst {
-                               break
-                       }
+               for v.Op == OpMIPS64XORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10475,11 +10380,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGTU _ _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64XORconst {
-                               break
-                       }
+               for v.Op == OpMIPS64XORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10496,11 +10397,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGTconst _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64XORconst {
-                               break
-                       }
+               for v.Op == OpMIPS64XORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10516,11 +10413,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (XORconst [1] cmp:(SGTUconst _)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64XORconst {
-                               break
-                       }
+               for v.Op == OpMIPS64XORconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10536,11 +10429,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (SGTUconst [1] x) yes no)
                // cond:
                // result: (EQ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64SGTUconst {
-                               break
-                       }
+               for v.Op == OpMIPS64SGTUconst {
                        if v.AuxInt != 1 {
                                break
                        }
@@ -10553,11 +10442,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (SGTU x (MOVVconst [0])) yes no)
                // cond:
                // result: (NE x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64SGTU {
-                               break
-                       }
+               for v.Op == OpMIPS64SGTU {
                        _ = v.Args[1]
                        x := v.Args[0]
                        v_1 := v.Args[1]
@@ -10575,11 +10460,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (SGTconst [0] x) yes no)
                // cond:
                // result: (LTZ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64SGTconst {
-                               break
-                       }
+               for v.Op == OpMIPS64SGTconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -10592,11 +10473,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (SGT x (MOVVconst [0])) yes no)
                // cond:
                // result: (GTZ x yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64SGT {
-                               break
-                       }
+               for v.Op == OpMIPS64SGT {
                        _ = v.Args[1]
                        x := v.Args[0]
                        v_1 := v.Args[1]
@@ -10614,11 +10491,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (MOVVconst [0]) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -10631,11 +10504,7 @@ func rewriteBlockMIPS64(b *Block) bool {
                // match: (NE (MOVVconst [c]) yes no)
                // cond: c != 0
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpMIPS64MOVVconst {
-                               break
-                       }
+               for v.Op == OpMIPS64MOVVconst {
                        c := v.AuxInt
                        if !(c != 0) {
                                break
index 4c25c39707228e541974a2b703fa0182aae57c5f..3b1b7e2a54bdc7bbaebc1aa45665642dbc72e2d7 100644 (file)
@@ -30173,21 +30173,16 @@ func rewriteValuePPC64_OpZeroExt8to64_0(v *Value) bool {
 }
 func rewriteBlockPPC64(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        case BlockPPC64EQ:
                // match: (EQ (CMPconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (EQ (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30208,11 +30203,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (CMPWconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (EQ (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30233,11 +30224,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagEQ {
-                               break
-                       }
+               for v.Op == OpPPC64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30246,11 +30233,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (FlagLT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagLT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30260,11 +30243,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (FlagGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagGT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30274,11 +30253,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (InvertFlags cmp) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64InvertFlags {
-                               break
-                       }
+               for v.Op == OpPPC64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockPPC64EQ
                        b.SetControl(cmp)
@@ -30288,11 +30263,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (CMPconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (EQ (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30313,11 +30284,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (CMPWconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (EQ (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30338,11 +30305,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (EQ (ANDCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30366,11 +30329,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (CMPconst [0] z:(OR x y)) yes no)
                // cond: z.Uses == 1
                // result: (EQ (ORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30394,11 +30353,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (EQ (CMPconst [0] z:(XOR x y)) yes no)
                // cond: z.Uses == 1
                // result: (EQ (XORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30423,11 +30378,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagEQ {
-                               break
-                       }
+               for v.Op == OpPPC64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30436,11 +30387,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GE (FlagLT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagLT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30450,11 +30397,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GE (FlagGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagGT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30463,11 +30406,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GE (InvertFlags cmp) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64InvertFlags {
-                               break
-                       }
+               for v.Op == OpPPC64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockPPC64LE
                        b.SetControl(cmp)
@@ -30477,11 +30416,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GE (CMPconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (GE (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30502,11 +30437,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GE (CMPWconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (GE (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30527,11 +30458,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GE (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (GE (ANDCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30555,11 +30482,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GE (CMPconst [0] z:(OR x y)) yes no)
                // cond: z.Uses == 1
                // result: (GE (ORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30583,11 +30506,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GE (CMPconst [0] z:(XOR x y)) yes no)
                // cond: z.Uses == 1
                // result: (GE (XORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30612,11 +30531,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagEQ {
-                               break
-                       }
+               for v.Op == OpPPC64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30626,11 +30541,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GT (FlagLT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagLT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30640,11 +30551,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GT (FlagGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagGT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30653,11 +30560,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GT (InvertFlags cmp) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64InvertFlags {
-                               break
-                       }
+               for v.Op == OpPPC64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockPPC64LT
                        b.SetControl(cmp)
@@ -30667,11 +30570,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GT (CMPconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (GT (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30692,11 +30591,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GT (CMPWconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (GT (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30717,11 +30612,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GT (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (GT (ANDCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30745,11 +30636,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GT (CMPconst [0] z:(OR x y)) yes no)
                // cond: z.Uses == 1
                // result: (GT (ORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30773,11 +30660,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (GT (CMPconst [0] z:(XOR x y)) yes no)
                // cond: z.Uses == 1
                // result: (GT (XORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -30802,11 +30685,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (Equal cc) yes no)
                // cond:
                // result: (EQ cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64Equal {
-                               break
-                       }
+               for v.Op == OpPPC64Equal {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64EQ
                        b.SetControl(cc)
@@ -30816,11 +30695,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (NotEqual cc) yes no)
                // cond:
                // result: (NE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64NotEqual {
-                               break
-                       }
+               for v.Op == OpPPC64NotEqual {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64NE
                        b.SetControl(cc)
@@ -30830,11 +30705,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (LessThan cc) yes no)
                // cond:
                // result: (LT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64LessThan {
-                               break
-                       }
+               for v.Op == OpPPC64LessThan {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64LT
                        b.SetControl(cc)
@@ -30844,11 +30715,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (LessEqual cc) yes no)
                // cond:
                // result: (LE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64LessEqual {
-                               break
-                       }
+               for v.Op == OpPPC64LessEqual {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64LE
                        b.SetControl(cc)
@@ -30858,11 +30725,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (GreaterThan cc) yes no)
                // cond:
                // result: (GT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64GreaterThan {
-                               break
-                       }
+               for v.Op == OpPPC64GreaterThan {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64GT
                        b.SetControl(cc)
@@ -30872,11 +30735,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (GreaterEqual cc) yes no)
                // cond:
                // result: (GE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64GreaterEqual {
-                               break
-                       }
+               for v.Op == OpPPC64GreaterEqual {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64GE
                        b.SetControl(cc)
@@ -30886,11 +30745,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (FLessThan cc) yes no)
                // cond:
                // result: (FLT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FLessThan {
-                               break
-                       }
+               for v.Op == OpPPC64FLessThan {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64FLT
                        b.SetControl(cc)
@@ -30900,11 +30755,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (FLessEqual cc) yes no)
                // cond:
                // result: (FLE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FLessEqual {
-                               break
-                       }
+               for v.Op == OpPPC64FLessEqual {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64FLE
                        b.SetControl(cc)
@@ -30914,11 +30765,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (FGreaterThan cc) yes no)
                // cond:
                // result: (FGT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FGreaterThan {
-                               break
-                       }
+               for v.Op == OpPPC64FGreaterThan {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64FGT
                        b.SetControl(cc)
@@ -30928,11 +30775,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (If (FGreaterEqual cc) yes no)
                // cond:
                // result: (FGE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FGreaterEqual {
-                               break
-                       }
+               for v.Op == OpPPC64FGreaterEqual {
                        cc := v.Args[0]
                        b.Kind = BlockPPC64FGE
                        b.SetControl(cc)
@@ -30943,8 +30786,6 @@ func rewriteBlockPPC64(b *Block) bool {
                // cond:
                // result: (NE (CMPWconst [0] cond) yes no)
                for {
-                       v := b.Control
-                       _ = v
                        cond := b.Control
                        b.Kind = BlockPPC64NE
                        v0 := b.NewValue0(v.Pos, OpPPC64CMPWconst, types.TypeFlags)
@@ -30958,11 +30799,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagEQ {
-                               break
-                       }
+               for v.Op == OpPPC64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30971,11 +30808,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LE (FlagLT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagLT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30984,11 +30817,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LE (FlagGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagGT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -30998,11 +30827,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LE (InvertFlags cmp) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64InvertFlags {
-                               break
-                       }
+               for v.Op == OpPPC64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockPPC64GE
                        b.SetControl(cmp)
@@ -31012,11 +30837,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LE (CMPconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (LE (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31037,11 +30858,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LE (CMPWconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (LE (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31062,11 +30879,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LE (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (LE (ANDCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31090,11 +30903,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LE (CMPconst [0] z:(OR x y)) yes no)
                // cond: z.Uses == 1
                // result: (LE (ORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31118,11 +30927,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LE (CMPconst [0] z:(XOR x y)) yes no)
                // cond: z.Uses == 1
                // result: (LE (XORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31147,11 +30952,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagEQ {
-                               break
-                       }
+               for v.Op == OpPPC64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -31161,11 +30962,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LT (FlagLT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagLT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -31174,11 +30971,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LT (FlagGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagGT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -31188,11 +30981,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LT (InvertFlags cmp) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64InvertFlags {
-                               break
-                       }
+               for v.Op == OpPPC64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockPPC64GT
                        b.SetControl(cmp)
@@ -31202,11 +30991,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LT (CMPconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (LT (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31227,11 +31012,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LT (CMPWconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (LT (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31252,11 +31033,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LT (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (LT (ANDCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31280,11 +31057,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LT (CMPconst [0] z:(OR x y)) yes no)
                // cond: z.Uses == 1
                // result: (LT (ORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31308,11 +31081,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (LT (CMPconst [0] z:(XOR x y)) yes no)
                // cond: z.Uses == 1
                // result: (LT (XORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31337,11 +31106,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (Equal cc)) yes no)
                // cond:
                // result: (EQ cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31358,11 +31123,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (NotEqual cc)) yes no)
                // cond:
                // result: (NE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31379,11 +31140,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (LessThan cc)) yes no)
                // cond:
                // result: (LT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31400,11 +31157,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (LessEqual cc)) yes no)
                // cond:
                // result: (LE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31421,11 +31174,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (GreaterThan cc)) yes no)
                // cond:
                // result: (GT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31442,11 +31191,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (GreaterEqual cc)) yes no)
                // cond:
                // result: (GE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31463,11 +31208,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (FLessThan cc)) yes no)
                // cond:
                // result: (FLT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31484,11 +31225,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (FLessEqual cc)) yes no)
                // cond:
                // result: (FLE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31505,11 +31242,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (FGreaterThan cc)) yes no)
                // cond:
                // result: (FGT cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31526,11 +31259,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (FGreaterEqual cc)) yes no)
                // cond:
                // result: (FGE cc yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31547,11 +31276,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (NE (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31572,11 +31297,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (NE (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31597,11 +31318,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagEQ {
-                               break
-                       }
+               for v.Op == OpPPC64FlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -31611,11 +31328,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (FlagLT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagLT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -31624,11 +31337,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (FlagGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64FlagGT {
-                               break
-                       }
+               for v.Op == OpPPC64FlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -31637,11 +31346,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (InvertFlags cmp) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64InvertFlags {
-                               break
-                       }
+               for v.Op == OpPPC64InvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockPPC64NE
                        b.SetControl(cmp)
@@ -31651,11 +31356,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (NE (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31676,11 +31377,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPWconst [0] (ANDconst [c] x)) yes no)
                // cond:
                // result: (NE (ANDCCconst [c] x) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPWconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31701,11 +31398,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPconst [0] z:(AND x y)) yes no)
                // cond: z.Uses == 1
                // result: (NE (ANDCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31729,11 +31422,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPconst [0] z:(OR x y)) yes no)
                // cond: z.Uses == 1
                // result: (NE (ORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -31757,11 +31446,7 @@ func rewriteBlockPPC64(b *Block) bool {
                // match: (NE (CMPconst [0] z:(XOR x y)) yes no)
                // cond: z.Uses == 1
                // result: (NE (XORCC x y) yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpPPC64CMPconst {
-                               break
-                       }
+               for v.Op == OpPPC64CMPconst {
                        if v.AuxInt != 0 {
                                break
                        }
index 78fa5c5c96051fdda8d33124632b1b76c99d2b08..6c457199274fbb7134975b87017c7001c8779786 100644 (file)
@@ -40897,21 +40897,16 @@ func rewriteValueS390X_OpZeroExt8to64_0(v *Value) bool {
 }
 func rewriteBlockS390X(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        case BlockS390XEQ:
                // match: (EQ (InvertFlags cmp) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XInvertFlags {
-                               break
-                       }
+               for v.Op == OpS390XInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockS390XEQ
                        b.SetControl(cmp)
@@ -40921,11 +40916,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (EQ (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagEQ {
-                               break
-                       }
+               for v.Op == OpS390XFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40934,11 +40925,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (EQ (FlagLT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagLT {
-                               break
-                       }
+               for v.Op == OpS390XFlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40948,11 +40935,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (EQ (FlagGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagGT {
-                               break
-                       }
+               for v.Op == OpS390XFlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40963,11 +40946,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (GE (InvertFlags cmp) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XInvertFlags {
-                               break
-                       }
+               for v.Op == OpS390XInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockS390XLE
                        b.SetControl(cmp)
@@ -40977,11 +40956,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (GE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagEQ {
-                               break
-                       }
+               for v.Op == OpS390XFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -40990,11 +40965,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (GE (FlagLT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagLT {
-                               break
-                       }
+               for v.Op == OpS390XFlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41004,11 +40975,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (GE (FlagGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagGT {
-                               break
-                       }
+               for v.Op == OpS390XFlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41018,11 +40985,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (GT (InvertFlags cmp) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XInvertFlags {
-                               break
-                       }
+               for v.Op == OpS390XInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockS390XLT
                        b.SetControl(cmp)
@@ -41032,11 +40995,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (GT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagEQ {
-                               break
-                       }
+               for v.Op == OpS390XFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41046,11 +41005,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (GT (FlagLT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagLT {
-                               break
-                       }
+               for v.Op == OpS390XFlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41060,11 +41015,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (GT (FlagGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagGT {
-                               break
-                       }
+               for v.Op == OpS390XFlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41074,11 +41025,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (If (MOVDLT (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XMOVDLT {
-                               break
-                       }
+               for v.Op == OpS390XMOVDLT {
                        cmp := v.Args[2]
                        v_0 := v.Args[0]
                        if v_0.Op != OpS390XMOVDconst {
@@ -41102,11 +41049,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (If (MOVDLE (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XMOVDLE {
-                               break
-                       }
+               for v.Op == OpS390XMOVDLE {
                        cmp := v.Args[2]
                        v_0 := v.Args[0]
                        if v_0.Op != OpS390XMOVDconst {
@@ -41130,11 +41073,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (If (MOVDGT (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XMOVDGT {
-                               break
-                       }
+               for v.Op == OpS390XMOVDGT {
                        cmp := v.Args[2]
                        v_0 := v.Args[0]
                        if v_0.Op != OpS390XMOVDconst {
@@ -41158,11 +41097,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (If (MOVDGE (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XMOVDGE {
-                               break
-                       }
+               for v.Op == OpS390XMOVDGE {
                        cmp := v.Args[2]
                        v_0 := v.Args[0]
                        if v_0.Op != OpS390XMOVDconst {
@@ -41186,11 +41121,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (If (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XMOVDEQ {
-                               break
-                       }
+               for v.Op == OpS390XMOVDEQ {
                        cmp := v.Args[2]
                        v_0 := v.Args[0]
                        if v_0.Op != OpS390XMOVDconst {
@@ -41214,11 +41145,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (If (MOVDNE (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XMOVDNE {
-                               break
-                       }
+               for v.Op == OpS390XMOVDNE {
                        cmp := v.Args[2]
                        v_0 := v.Args[0]
                        if v_0.Op != OpS390XMOVDconst {
@@ -41242,11 +41169,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (If (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                // cond:
                // result: (GTF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XMOVDGTnoinv {
-                               break
-                       }
+               for v.Op == OpS390XMOVDGTnoinv {
                        cmp := v.Args[2]
                        v_0 := v.Args[0]
                        if v_0.Op != OpS390XMOVDconst {
@@ -41270,11 +41193,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (If (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                // cond:
                // result: (GEF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XMOVDGEnoinv {
-                               break
-                       }
+               for v.Op == OpS390XMOVDGEnoinv {
                        cmp := v.Args[2]
                        v_0 := v.Args[0]
                        if v_0.Op != OpS390XMOVDconst {
@@ -41299,8 +41218,6 @@ func rewriteBlockS390X(b *Block) bool {
                // cond:
                // result: (NE (CMPWconst [0] (MOVBZreg <typ.Bool> cond)) yes no)
                for {
-                       v := b.Control
-                       _ = v
                        cond := b.Control
                        b.Kind = BlockS390XNE
                        v0 := b.NewValue0(v.Pos, OpS390XCMPWconst, types.TypeFlags)
@@ -41316,11 +41233,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (LE (InvertFlags cmp) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XInvertFlags {
-                               break
-                       }
+               for v.Op == OpS390XInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockS390XGE
                        b.SetControl(cmp)
@@ -41330,11 +41243,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (LE (FlagEQ) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagEQ {
-                               break
-                       }
+               for v.Op == OpS390XFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41343,11 +41252,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (LE (FlagLT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagLT {
-                               break
-                       }
+               for v.Op == OpS390XFlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41356,11 +41261,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (LE (FlagGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagGT {
-                               break
-                       }
+               for v.Op == OpS390XFlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41371,11 +41272,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (LT (InvertFlags cmp) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XInvertFlags {
-                               break
-                       }
+               for v.Op == OpS390XInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockS390XGT
                        b.SetControl(cmp)
@@ -41385,11 +41282,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (LT (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagEQ {
-                               break
-                       }
+               for v.Op == OpS390XFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41399,11 +41292,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (LT (FlagLT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagLT {
-                               break
-                       }
+               for v.Op == OpS390XFlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41412,11 +41301,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (LT (FlagGT) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagGT {
-                               break
-                       }
+               for v.Op == OpS390XFlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41427,11 +41312,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (CMPWconst [0] (MOVDLT (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                // cond:
                // result: (LT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XCMPWconst {
-                               break
-                       }
+               for v.Op == OpS390XCMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41462,11 +41343,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (CMPWconst [0] (MOVDLE (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                // cond:
                // result: (LE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XCMPWconst {
-                               break
-                       }
+               for v.Op == OpS390XCMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41497,11 +41374,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (CMPWconst [0] (MOVDGT (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                // cond:
                // result: (GT cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XCMPWconst {
-                               break
-                       }
+               for v.Op == OpS390XCMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41532,11 +41405,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (CMPWconst [0] (MOVDGE (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                // cond:
                // result: (GE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XCMPWconst {
-                               break
-                       }
+               for v.Op == OpS390XCMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41567,11 +41436,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (CMPWconst [0] (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                // cond:
                // result: (EQ cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XCMPWconst {
-                               break
-                       }
+               for v.Op == OpS390XCMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41602,11 +41467,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (CMPWconst [0] (MOVDNE (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XCMPWconst {
-                               break
-                       }
+               for v.Op == OpS390XCMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41637,11 +41498,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (CMPWconst [0] (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                // cond:
                // result: (GTF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XCMPWconst {
-                               break
-                       }
+               for v.Op == OpS390XCMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41672,11 +41529,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (CMPWconst [0] (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                // cond:
                // result: (GEF cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XCMPWconst {
-                               break
-                       }
+               for v.Op == OpS390XCMPWconst {
                        if v.AuxInt != 0 {
                                break
                        }
@@ -41707,11 +41560,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (InvertFlags cmp) yes no)
                // cond:
                // result: (NE cmp yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XInvertFlags {
-                               break
-                       }
+               for v.Op == OpS390XInvertFlags {
                        cmp := v.Args[0]
                        b.Kind = BlockS390XNE
                        b.SetControl(cmp)
@@ -41721,11 +41570,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (FlagEQ) yes no)
                // cond:
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagEQ {
-                               break
-                       }
+               for v.Op == OpS390XFlagEQ {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41735,11 +41580,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (FlagLT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagLT {
-                               break
-                       }
+               for v.Op == OpS390XFlagLT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
@@ -41748,11 +41589,7 @@ func rewriteBlockS390X(b *Block) bool {
                // match: (NE (FlagGT) yes no)
                // cond:
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpS390XFlagGT {
-                               break
-                       }
+               for v.Op == OpS390XFlagGT {
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.Aux = nil
index c5fc8c815f171683fdd612daf941af8116ace851..7796548ee427246ce3f397c747d398423db03054 100644 (file)
@@ -6382,11 +6382,10 @@ func rewriteValueWasm_OpZeroExt8to64_0(v *Value) bool {
 }
 func rewriteBlockWasm(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        }
        return false
index b61886c98955eec5ac4070d25838c66d99646cab..fe135821ebb96268f46bcba738700c6aca5e80fa 100644 (file)
@@ -493,11 +493,10 @@ func rewriteValuedec_OpStringPtr_0(v *Value) bool {
 }
 func rewriteBlockdec(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        }
        return false
index 5a143a92a75a3cd2475a4189e8c1850cb6c8f4dd..a67ae1ed52c1a302dc22396142d50e91df87ce5c 100644 (file)
@@ -2727,11 +2727,10 @@ func rewriteValuedec64_OpZeroExt8to64_0(v *Value) bool {
 }
 func rewriteBlockdec64(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        }
        return false
index 633c0fa8b5a7ebe24a54e12c03d709d392c04062..6b811297b384a8c17b1daa93b33e02849fe65599 100644 (file)
@@ -271,11 +271,10 @@ func rewriteValuedecArgs_OpArg_10(v *Value) bool {
 }
 func rewriteBlockdecArgs(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        }
        return false
index 543664c8bcbcfc5f4dc46004a05421aa5c453658..7bb446cf35c44a7d495f4ea537d6be6adcd1bb1b 100644 (file)
@@ -32620,21 +32620,16 @@ func rewriteValuegeneric_OpZeroExt8to64_0(v *Value) bool {
 }
 func rewriteBlockgeneric(b *Block) bool {
        config := b.Func.Config
-       _ = config
-       fe := b.Func.fe
-       _ = fe
        typ := &config.Types
        _ = typ
+       v := b.Control
+       _ = v
        switch b.Kind {
        case BlockIf:
                // match: (If (Not cond) yes no)
                // cond:
                // result: (If cond no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpNot {
-                               break
-                       }
+               for v.Op == OpNot {
                        cond := v.Args[0]
                        b.Kind = BlockIf
                        b.SetControl(cond)
@@ -32645,11 +32640,7 @@ func rewriteBlockgeneric(b *Block) bool {
                // match: (If (ConstBool [c]) yes no)
                // cond: c == 1
                // result: (First nil yes no)
-               for {
-                       v := b.Control
-                       if v.Op != OpConstBool {
-                               break
-                       }
+               for v.Op == OpConstBool {
                        c := v.AuxInt
                        if !(c == 1) {
                                break
@@ -32662,11 +32653,7 @@ func rewriteBlockgeneric(b *Block) bool {
                // match: (If (ConstBool [c]) yes no)
                // cond: c == 0
                // result: (First nil no yes)
-               for {
-                       v := b.Control
-                       if v.Op != OpConstBool {
-                               break
-                       }
+               for v.Op == OpConstBool {
                        c := v.AuxInt
                        if !(c == 0) {
                                break