}
                        }
 
-                       // assign successor names
-                       succs := s[2:]
-                       for i, a := range succs {
-                               if a != "_" {
-                                       fmt.Fprintf(w, "%s := b.Succs[%d]\n", a, i)
-                               }
-                       }
-
                        if cond != "" {
                                fmt.Fprintf(w, "if !(%s) {\nbreak\n}\n", cond)
                        }
                        newsuccs := t[2:]
 
                        // Check if newsuccs is the same set as succs.
+                       succs := s[2:]
                        m := map[string]bool{}
                        for _, succ := range succs {
                                if m[succ] {
                                }
                                fmt.Fprintln(w, "b.swapSuccessors()")
                        }
-                       for i := 0; i < len(succs); i++ {
-                               fmt.Fprintf(w, "_ = %s\n", newsuccs[i])
-                       }
 
                        if *genLog {
                                fmt.Fprintf(w, "logRule(\"%s\")\n", rule.loc)
 
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case Block386GE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case Block386GT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockIf:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETLE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETG cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETGE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETEQ cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETNE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETB cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386ULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETBE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386ULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETA cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETAE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETGF cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETGEF cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETEQF cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386EQF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETNEF cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386NEF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If cond yes no)
                        v := b.Control
                        _ = v
                        cond := b.Control
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386NE
                        v0 := b.NewValue0(v.Pos, Op386TESTB, TypeFlags)
                        v0.AddArg(cond)
                        v0.AddArg(cond)
                        b.SetControl(v0)
-                       _ = yes
-                       _ = no
                        return true
                }
        case Block386LE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LE (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case Block386LT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case Block386NE:
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETL cmp) (SETL cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETLE cmp) (SETLE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETLE cmp) (SETLE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETG cmp) (SETG cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETG cmp) (SETG cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGE cmp) (SETGE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGE cmp) (SETGE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETEQ cmp) (SETEQ cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETEQ cmp) (SETEQ cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETNE cmp) (SETNE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETNE cmp) (SETNE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETB cmp) (SETB cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386ULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETB cmp) (SETB cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386ULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETBE cmp) (SETBE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386ULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETBE cmp) (SETBE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386ULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETA cmp) (SETA cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETA cmp) (SETA cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETAE cmp) (SETAE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETAE cmp) (SETAE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGF cmp) (SETGF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGF cmp) (SETGF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGEF cmp) (SETGEF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGEF cmp) (SETGEF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETEQF cmp) (SETEQF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386EQF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETEQF cmp) (SETEQF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386EQF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETNEF cmp) (SETNEF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386NEF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETNEF cmp) (SETNEF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386NEF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NE (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case Block386UGE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386ULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGE (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGE (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case Block386UGT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386ULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGT (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGT (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case Block386ULE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULE (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case Block386ULT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = Block386UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagEQ) yes no)
                        if v.Op != Op386FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (FlagLT_ULT) yes no)
                        if v.Op != Op386FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagLT_UGT) yes no)
                        if v.Op != Op386FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (FlagGT_ULT) yes no)
                        if v.Op != Op386FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagGT_UGT) yes no)
                        if v.Op != Op386FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        }
 
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockAMD64GE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockAMD64GT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockIf:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETLE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETG cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETGE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETEQ cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETNE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETB cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64ULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETBE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64ULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETA cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETAE cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETGF cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETGEF cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETEQF cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64EQF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (SETNEF cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64NEF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If cond yes no)
                        v := b.Control
                        _ = v
                        cond := b.Control
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64NE
                        v0 := b.NewValue0(v.Pos, OpAMD64TESTB, TypeFlags)
                        v0.AddArg(cond)
                        v0.AddArg(cond)
                        b.SetControl(v0)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockAMD64LE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LE (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockAMD64LT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockAMD64NE:
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETL cmp) (SETL cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETLE cmp) (SETLE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETLE cmp) (SETLE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETG cmp) (SETG cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETG cmp) (SETG cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGE cmp) (SETGE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGE cmp) (SETGE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETEQ cmp) (SETEQ cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETEQ cmp) (SETEQ cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETNE cmp) (SETNE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETNE cmp) (SETNE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETB cmp) (SETB cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64ULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETB cmp) (SETB cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64ULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETBE cmp) (SETBE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64ULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETBE cmp) (SETBE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64ULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETA cmp) (SETA cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETA cmp) (SETA cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETAE cmp) (SETAE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETAE cmp) (SETAE cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTL (SHLL (MOVLconst [1]) x) y))
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGF cmp) (SETGF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGEF cmp) (SETGEF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETGEF cmp) (SETGEF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETEQF cmp) (SETEQF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64EQF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETEQF cmp) (SETEQF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64EQF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETNEF cmp) (SETNEF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64NEF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (TESTB (SETNEF cmp) (SETNEF cmp)) yes no)
                        if cmp != v_1.Args[0] {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64NEF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NE (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockAMD64UGE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64ULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGE (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGE (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockAMD64UGT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64ULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGT (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGT (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockAMD64ULE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULE (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockAMD64ULT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockAMD64UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagEQ) yes no)
                        if v.Op != OpAMD64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (FlagLT_ULT) yes no)
                        if v.Op != OpAMD64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagLT_UGT) yes no)
                        if v.Op != OpAMD64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (FlagGT_ULT) yes no)
                        if v.Op != OpAMD64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagGT_UGT) yes no)
                        if v.Op != OpAMD64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        }
 
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARMGE:
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMLE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARMGT:
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMLT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockIf:
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMEQ
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (NotEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMNE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMLT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessThanU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMULT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMLE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessEqualU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMULE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMGT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterThanU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMUGT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMGE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterEqualU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMUGE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If cond yes no)
                        v := b.Control
                        _ = v
                        cond := b.Control
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMNE
                        v0 := b.NewValue0(v.Pos, OpARMCMPconst, TypeFlags)
                        v0.AuxInt = 0
                        v0.AddArg(cond)
                        b.SetControl(v0)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARMLE:
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LE (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARMLT:
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARMNE:
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMEQ
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (NotEqual cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMNE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (LessThan cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMLT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (LessThanU cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMULT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (LessEqual cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMLE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (LessEqualU cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMULE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (GreaterThan cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMGT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (GreaterThanU cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMUGT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (GreaterEqual cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMGE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (GreaterEqualU cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMUGE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagEQ) yes no)
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NE (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARMUGE:
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGE (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGE (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARMUGT:
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGT (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARMULE:
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULE (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMUGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARMULT:
                        if v.Op != OpARMFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (FlagLT_ULT) yes no)
                        if v.Op != OpARMFlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagLT_UGT) yes no)
                        if v.Op != OpARMFlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (FlagGT_ULT) yes no)
                        if v.Op != OpARMFlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagGT_UGT) yes no)
                        if v.Op != OpARMFlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARMUGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        }
 
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64Z
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (CMPWconst [0] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64ZW
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagEQ) yes no)
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64GE:
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64GT:
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockIf:
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64EQ
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (NotEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64NE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64LT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessThanU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64ULT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64LE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessEqualU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64ULE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64GT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterThanU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64UGT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64GE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterEqualU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64UGE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If cond yes no)
                        v := b.Control
                        _ = v
                        cond := b.Control
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64NZ
                        b.SetControl(cond)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64LE:
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LE (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64LT:
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64NE:
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64NZ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64NZW
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagEQ) yes no)
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NE (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64NZ:
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64EQ
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (NotEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64NE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (LessThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64LT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (LessThanU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64ULT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (LessEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64LE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (LessEqualU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64ULE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (GreaterThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64GT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (GreaterThanU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64UGT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (GreaterEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64GE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (GreaterEqualU cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64UGE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NZ (MOVDconst [0]) yes no)
                        if v.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NZ (MOVDconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c != 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64NZW:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) == 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NZW (MOVDconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) != 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64UGE:
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGE (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGE (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64ULE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64UGT:
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGT (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (UGT (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (UGT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64ULT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64ULE:
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULE (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULE (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64UGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64ULT:
                        if v.Op != OpARM64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (FlagLT_ULT) yes no)
                        if v.Op != OpARM64FlagLT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagLT_UGT) yes no)
                        if v.Op != OpARM64FlagLT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (FlagGT_ULT) yes no)
                        if v.Op != OpARM64FlagGT_ULT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ULT (FlagGT_UGT) yes no)
                        if v.Op != OpARM64FlagGT_UGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (ULT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockARM64UGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockARM64Z:
                        if v.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (Z (MOVDconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c != 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockARM64ZW:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) == 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (ZW (MOVDconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) != 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        }
 
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSFPF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FPFlagFalse cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSFPT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGT _ _)) yes no)
                        if cmp.Op != OpMIPSSGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGTU _ _)) yes no)
                        if cmp.Op != OpMIPSSGTU {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGTconst _)) yes no)
                        if cmp.Op != OpMIPSSGTconst {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGTUconst _)) yes no)
                        if cmp.Op != OpMIPSSGTUconst {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGTzero _)) yes no)
                        if cmp.Op != OpMIPSSGTzero {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGTUzero _)) yes no)
                        if cmp.Op != OpMIPSSGTUzero {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (SGTUconst [1] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSNE
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (SGTUzero x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSEQ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (SGTconst [0] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSGEZ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (SGTzero x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSLEZ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (MOVWconst [0]) yes no)
                        if v.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (MOVWconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c != 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockMIPSGEZ:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) >= 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GEZ (MOVWconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) < 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockMIPSGTZ:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) > 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GTZ (MOVWconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) <= 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockIf:
                        v := b.Control
                        _ = v
                        cond := b.Control
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSNE
                        b.SetControl(cond)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockMIPSLEZ:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) <= 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LEZ (MOVWconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) > 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockMIPSLTZ:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) < 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LTZ (MOVWconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(int32(c) >= 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockMIPSNE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSFPT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FPFlagFalse cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSFPF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGT _ _)) yes no)
                        if cmp.Op != OpMIPSSGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGTU _ _)) yes no)
                        if cmp.Op != OpMIPSSGTU {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGTconst _)) yes no)
                        if cmp.Op != OpMIPSSGTconst {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGTUconst _)) yes no)
                        if cmp.Op != OpMIPSSGTUconst {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGTzero _)) yes no)
                        if cmp.Op != OpMIPSSGTzero {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGTUzero _)) yes no)
                        if cmp.Op != OpMIPSSGTUzero {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (SGTUconst [1] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSEQ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (SGTUzero x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSNE
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (SGTconst [0] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSLTZ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (SGTzero x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPSGTZ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (MOVWconst [0]) yes no)
                        if v.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NE (MOVWconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c != 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        }
 
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64FPF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FPFlagFalse cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64FPT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGT _ _)) yes no)
                        if cmp.Op != OpMIPS64SGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGTU _ _)) yes no)
                        if cmp.Op != OpMIPS64SGTU {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGTconst _)) yes no)
                        if cmp.Op != OpMIPS64SGTconst {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (XORconst [1] cmp:(SGTUconst _)) yes no)
                        if cmp.Op != OpMIPS64SGTUconst {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (SGTUconst [1] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64NE
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (SGTU x (MOVVconst [0])) yes no)
                        if v_1.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64EQ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (SGTconst [0] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64GEZ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (SGT x (MOVVconst [0])) yes no)
                        if v_1.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64LEZ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (MOVVconst [0]) yes no)
                        if v.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (MOVVconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c != 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockMIPS64GEZ:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c >= 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GEZ (MOVVconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c < 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockMIPS64GTZ:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c > 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GTZ (MOVVconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c <= 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockIf:
                        v := b.Control
                        _ = v
                        cond := b.Control
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64NE
                        b.SetControl(cond)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockMIPS64LEZ:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c <= 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LEZ (MOVVconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c > 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockMIPS64LTZ:
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c < 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LTZ (MOVVconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c >= 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockMIPS64NE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64FPT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FPFlagFalse cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64FPF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGT _ _)) yes no)
                        if cmp.Op != OpMIPS64SGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGTU _ _)) yes no)
                        if cmp.Op != OpMIPS64SGTU {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGTconst _)) yes no)
                        if cmp.Op != OpMIPS64SGTconst {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (XORconst [1] cmp:(SGTUconst _)) yes no)
                        if cmp.Op != OpMIPS64SGTUconst {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (SGTUconst [1] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64EQ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (SGTU x (MOVVconst [0])) yes no)
                        if v_1.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64NE
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (SGTconst [0] x) yes no)
                                break
                        }
                        x := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64LTZ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (SGT x (MOVVconst [0])) yes no)
                        if v_1.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockMIPS64GTZ
                        b.SetControl(x)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (MOVVconst [0]) yes no)
                        if v.AuxInt != 0 {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NE (MOVVconst [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c != 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        }
 
                        }
                        c := v_0.AuxInt
                        x := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64EQ
                        v0 := b.NewValue0(v.Pos, OpPPC64ANDCCconst, TypeFlags)
                        v0.AuxInt = c
                        v0.AddArg(x)
                        b.SetControl(v0)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (CMPWconst [0] (ANDconst [c] x)) yes no)
                        }
                        c := v_0.AuxInt
                        x := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64EQ
                        v0 := b.NewValue0(v.Pos, OpPPC64ANDCCconst, TypeFlags)
                        v0.AuxInt = c
                        v0.AddArg(x)
                        b.SetControl(v0)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagEQ) yes no)
                        if v.Op != OpPPC64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagLT) yes no)
                        if v.Op != OpPPC64FlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT) yes no)
                        if v.Op != OpPPC64FlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64EQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockPPC64GE:
                        if v.Op != OpPPC64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagLT) yes no)
                        if v.Op != OpPPC64FlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagGT) yes no)
                        if v.Op != OpPPC64FlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64LE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockPPC64GT:
                        if v.Op != OpPPC64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT) yes no)
                        if v.Op != OpPPC64FlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagGT) yes no)
                        if v.Op != OpPPC64FlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64LT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockIf:
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64EQ
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (NotEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64NE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64LT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (LessEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64LE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64GT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (GreaterEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64GE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (FLessThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64FLT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (FLessEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64FLE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (FGreaterThan cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64FGT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (FGreaterEqual cc) yes no)
                                break
                        }
                        cc := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64FGE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If cond yes no)
                        v := b.Control
                        _ = v
                        cond := b.Control
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64NE
                        v0 := b.NewValue0(v.Pos, OpPPC64CMPWconst, TypeFlags)
                        v0.AuxInt = 0
                        v0.AddArg(cond)
                        b.SetControl(v0)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockPPC64LE:
                        if v.Op != OpPPC64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT) yes no)
                        if v.Op != OpPPC64FlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagGT) yes no)
                        if v.Op != OpPPC64FlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64GE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockPPC64LT:
                        if v.Op != OpPPC64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagLT) yes no)
                        if v.Op != OpPPC64FlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagGT) yes no)
                        if v.Op != OpPPC64FlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64GT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockPPC64NE:
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64EQ
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (NotEqual cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64NE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (LessThan cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64LT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (LessEqual cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64LE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (GreaterThan cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64GT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (GreaterEqual cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64GE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (FLessThan cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64FLT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (FLessEqual cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64FLE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (FGreaterThan cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64FGT
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (FGreaterEqual cc)) yes no)
                                break
                        }
                        cc := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64FGE
                        b.SetControl(cc)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPconst [0] (ANDconst [c] x)) yes no)
                        }
                        c := v_0.AuxInt
                        x := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64NE
                        v0 := b.NewValue0(v.Pos, OpPPC64ANDCCconst, TypeFlags)
                        v0.AuxInt = c
                        v0.AddArg(x)
                        b.SetControl(v0)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (ANDconst [c] x)) yes no)
                        }
                        c := v_0.AuxInt
                        x := v_0.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64NE
                        v0 := b.NewValue0(v.Pos, OpPPC64ANDCCconst, TypeFlags)
                        v0.AuxInt = c
                        v0.AddArg(x)
                        b.SetControl(v0)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagEQ) yes no)
                        if v.Op != OpPPC64FlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NE (FlagLT) yes no)
                        if v.Op != OpPPC64FlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT) yes no)
                        if v.Op != OpPPC64FlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockPPC64NE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
        }
 
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagEQ) yes no)
                        if v.Op != OpS390XFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (EQ (FlagLT) yes no)
                        if v.Op != OpS390XFlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (EQ (FlagGT) yes no)
                        if v.Op != OpS390XFlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockS390XGE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XLE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagEQ) yes no)
                        if v.Op != OpS390XFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GE (FlagLT) yes no)
                        if v.Op != OpS390XFlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GE (FlagGT) yes no)
                        if v.Op != OpS390XFlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockS390XGT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XLT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (GT (FlagEQ) yes no)
                        if v.Op != OpS390XFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagLT) yes no)
                        if v.Op != OpS390XFlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (GT (FlagGT) yes no)
                        if v.Op != OpS390XFlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockIf:
                                break
                        }
                        cmp := v.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XLT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (MOVDLE (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                                break
                        }
                        cmp := v.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XLE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (MOVDGT (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                                break
                        }
                        cmp := v.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (MOVDGE (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                                break
                        }
                        cmp := v.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                                break
                        }
                        cmp := v.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (MOVDNE (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                                break
                        }
                        cmp := v.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                                break
                        }
                        cmp := v.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGTF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) cmp) yes no)
                                break
                        }
                        cmp := v.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGEF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If cond yes no)
                        v := b.Control
                        _ = v
                        cond := b.Control
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XNE
                        v0 := b.NewValue0(v.Pos, OpS390XCMPWconst, TypeFlags)
                        v0.AuxInt = 0
                        v1.AddArg(cond)
                        v0.AddArg(v1)
                        b.SetControl(v0)
-                       _ = yes
-                       _ = no
                        return true
                }
        case BlockS390XLE:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagEQ) yes no)
                        if v.Op != OpS390XFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagLT) yes no)
                        if v.Op != OpS390XFlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LE (FlagGT) yes no)
                        if v.Op != OpS390XFlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockS390XLT:
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagEQ) yes no)
                        if v.Op != OpS390XFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (LT (FlagLT) yes no)
                        if v.Op != OpS390XFlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (LT (FlagGT) yes no)
                        if v.Op != OpS390XFlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        case BlockS390XNE:
                                break
                        }
                        cmp := v_0.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XLT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (MOVDLE (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                                break
                        }
                        cmp := v_0.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XLE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (MOVDGT (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                                break
                        }
                        cmp := v_0.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGT
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (MOVDGE (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                                break
                        }
                        cmp := v_0.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                                break
                        }
                        cmp := v_0.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XEQ
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (MOVDNE (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                                break
                        }
                        cmp := v_0.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                                break
                        }
                        cmp := v_0.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGTF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (CMPWconst [0] (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) cmp)) yes no)
                                break
                        }
                        cmp := v_0.Args[2]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XGEF
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (InvertFlags cmp) yes no)
                                break
                        }
                        cmp := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockS390XNE
                        b.SetControl(cmp)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagEQ) yes no)
                        if v.Op != OpS390XFlagEQ {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (NE (FlagLT) yes no)
                        if v.Op != OpS390XFlagLT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (NE (FlagGT) yes no)
                        if v.Op != OpS390XFlagGT {
                                break
                        }
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
        }
 
                                break
                        }
                        cond := v.Args[0]
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        b.Kind = BlockIf
                        b.SetControl(cond)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
                // match: (If (ConstBool [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c == 1) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
-                       _ = yes
-                       _ = no
                        return true
                }
                // match: (If (ConstBool [c]) yes no)
                                break
                        }
                        c := v.AuxInt
-                       yes := b.Succs[0]
-                       no := b.Succs[1]
                        if !(c == 0) {
                                break
                        }
                        b.Kind = BlockFirst
                        b.SetControl(nil)
                        b.swapSuccessors()
-                       _ = no
-                       _ = yes
                        return true
                }
        }