From 0543447597d54de911bd1e02369a0b191849b4bd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexandru=20Mo=C8=99oi?= Date: Thu, 4 Feb 2016 19:52:10 +0100 Subject: [PATCH] [dev.ssa] cmd/compile/internal/ssa/gen: enclose rules' code in a for loop * Enclose each rule's code in a for with no condition * The loop is ran at most once because it's always terminated by a return. * Use break when matching condition fails * Drop rule hashes * Shaves about 3 lines of code per rule The binary size is not afected. Change-Id: I27c3e40dc8cae98dcd50739342dc38db2ef9c247 Reviewed-on: https://go-review.googlesource.com/19220 Reviewed-by: Keith Randall --- src/cmd/compile/internal/ssa/gen/rulegen.go | 57 +- src/cmd/compile/internal/ssa/rewriteAMD64.go | 5378 +++++------------ .../compile/internal/ssa/rewritegeneric.go | 2291 +++---- 3 files changed, 2253 insertions(+), 5473 deletions(-) diff --git a/src/cmd/compile/internal/ssa/gen/rulegen.go b/src/cmd/compile/internal/ssa/gen/rulegen.go index c39271eaa6..1a0f5d4b1e 100644 --- a/src/cmd/compile/internal/ssa/gen/rulegen.go +++ b/src/cmd/compile/internal/ssa/gen/rulegen.go @@ -12,7 +12,6 @@ package main import ( "bufio" "bytes" - "crypto/md5" "flag" "fmt" "go/format" @@ -59,10 +58,6 @@ func (r Rule) String() string { return fmt.Sprintf("rule %q at line %d", r.rule, r.lineno) } -func (r Rule) hash() string { - return fmt.Sprintf("%02x", md5.Sum([]byte(r.rule))) -} - // parse returns the matching part of the rule, additional conditions, and the result. func (r Rule) parse() (match, cond, result string) { s := strings.Split(r.rule, "->") @@ -170,24 +165,16 @@ func genRules(arch arch) { fmt.Fprintln(w, "b := v.Block") fmt.Fprintln(w, "_ = b") for _, rule := range oprules[op] { - // Note: we use a hash to identify the rule so that its - // identity is invariant to adding/removing rules elsewhere - // in the rules file. This is useful to squash spurious - // diffs that would occur if we used rule index. - rulehash := rule.hash() - match, cond, result := rule.parse() fmt.Fprintf(w, "// match: %s\n", match) fmt.Fprintf(w, "// cond: %s\n", cond) fmt.Fprintf(w, "// result: %s\n", result) - fail := fmt.Sprintf("{\ngoto end%s\n}\n", rulehash) - - fmt.Fprintf(w, "{\n") - genMatch(w, arch, match, fail) + fmt.Fprintf(w, "for {\n") + genMatch(w, arch, match) if cond != "" { - fmt.Fprintf(w, "if !(%s) %s", cond, fail) + fmt.Fprintf(w, "if !(%s) {\nbreak\n}\n", cond) } genResult(w, arch, result) @@ -197,8 +184,6 @@ func genRules(arch arch) { fmt.Fprintf(w, "return true\n") fmt.Fprintf(w, "}\n") - fmt.Fprintf(w, "goto end%s\n", rulehash) // use label - fmt.Fprintf(w, "end%s:;\n", rulehash) } fmt.Fprintf(w, "return false\n") fmt.Fprintf(w, "}\n") @@ -216,23 +201,19 @@ func genRules(arch arch) { for _, op := range ops { fmt.Fprintf(w, "case %s:\n", blockName(op, arch)) for _, rule := range blockrules[op] { - rulehash := rule.hash() - match, cond, result := rule.parse() fmt.Fprintf(w, "// match: %s\n", match) fmt.Fprintf(w, "// cond: %s\n", cond) fmt.Fprintf(w, "// result: %s\n", result) - fail := fmt.Sprintf("{\ngoto end%s\n}\n", rulehash) - - fmt.Fprintf(w, "{\n") + fmt.Fprintf(w, "for {\n") s := split(match[1 : len(match)-1]) // remove parens, then split // check match of control value if s[1] != "nil" { fmt.Fprintf(w, "v := b.Control\n") - genMatch0(w, arch, s[1], "v", fail, map[string]string{}, false) + genMatch0(w, arch, s[1], "v", map[string]string{}, false) } // assign successor names @@ -244,7 +225,7 @@ func genRules(arch arch) { } if cond != "" { - fmt.Fprintf(w, "if !(%s) %s", cond, fail) + fmt.Fprintf(w, "if !(%s) {\nbreak\n}\n", cond) } // Rule matches. Generate result. @@ -306,8 +287,6 @@ func genRules(arch arch) { fmt.Fprintf(w, "return true\n") fmt.Fprintf(w, "}\n") - fmt.Fprintf(w, "goto end%s\n", rulehash) // use label - fmt.Fprintf(w, "end%s:;\n", rulehash) } } fmt.Fprintf(w, "}\n") @@ -329,18 +308,18 @@ func genRules(arch arch) { } } -func genMatch(w io.Writer, arch arch, match, fail string) { - genMatch0(w, arch, match, "v", fail, map[string]string{}, true) +func genMatch(w io.Writer, arch arch, match string) { + genMatch0(w, arch, match, "v", map[string]string{}, true) } -func genMatch0(w io.Writer, arch arch, match, v, fail string, m map[string]string, top bool) { +func genMatch0(w io.Writer, arch arch, match, v string, m map[string]string, top bool) { if match[0] != '(' { if _, ok := m[match]; ok { // variable already has a definition. Check whether // the old definition and the new definition match. // For example, (add x x). Equality is just pointer equality // on Values (so cse is important to do before lowering). - fmt.Fprintf(w, "if %s != %s %s", v, match, fail) + fmt.Fprintf(w, "if %s != %s {\nbreak\n}\n", v, match) return } // remember that this variable references the given value @@ -358,7 +337,7 @@ func genMatch0(w io.Writer, arch arch, match, v, fail string, m map[string]strin // check op if !top { - fmt.Fprintf(w, "if %s.Op != %s %s", v, opName(s[0], arch), fail) + fmt.Fprintf(w, "if %s.Op != %s {\nbreak\n}\n", v, opName(s[0], arch)) } // check type/aux/args @@ -369,12 +348,12 @@ func genMatch0(w io.Writer, arch arch, match, v, fail string, m map[string]strin t := a[1 : len(a)-1] // remove <> if !isVariable(t) { // code. We must match the results of this code. - fmt.Fprintf(w, "if %s.Type != %s %s", v, t, fail) + fmt.Fprintf(w, "if %s.Type != %s {\nbreak\n}\n", v, t) } else { // variable if u, ok := m[t]; ok { // must match previous variable - fmt.Fprintf(w, "if %s.Type != %s %s", v, u, fail) + fmt.Fprintf(w, "if %s.Type != %s {\nbreak\n}\n", v, u) } else { m[t] = v + ".Type" fmt.Fprintf(w, "%s := %s.Type\n", t, v) @@ -385,11 +364,11 @@ func genMatch0(w io.Writer, arch arch, match, v, fail string, m map[string]strin x := a[1 : len(a)-1] // remove [] if !isVariable(x) { // code - fmt.Fprintf(w, "if %s.AuxInt != %s %s", v, x, fail) + fmt.Fprintf(w, "if %s.AuxInt != %s {\nbreak\n}\n", v, x) } else { // variable if y, ok := m[x]; ok { - fmt.Fprintf(w, "if %s.AuxInt != %s %s", v, y, fail) + fmt.Fprintf(w, "if %s.AuxInt != %s {\nbreak\n}\n", v, y) } else { m[x] = v + ".AuxInt" fmt.Fprintf(w, "%s := %s.AuxInt\n", x, v) @@ -400,11 +379,11 @@ func genMatch0(w io.Writer, arch arch, match, v, fail string, m map[string]strin x := a[1 : len(a)-1] // remove {} if !isVariable(x) { // code - fmt.Fprintf(w, "if %s.Aux != %s %s", v, x, fail) + fmt.Fprintf(w, "if %s.Aux != %s {\nbreak\n}\n", v, x) } else { // variable if y, ok := m[x]; ok { - fmt.Fprintf(w, "if %s.Aux != %s %s", v, y, fail) + fmt.Fprintf(w, "if %s.Aux != %s {\nbreak\n}\n", v, y) } else { m[x] = v + ".Aux" fmt.Fprintf(w, "%s := %s.Aux\n", x, v) @@ -412,7 +391,7 @@ func genMatch0(w io.Writer, arch arch, match, v, fail string, m map[string]strin } } else { // variable or sexpr - genMatch0(w, arch, a, fmt.Sprintf("%s.Args[%d]", v, argnum), fail, m, false) + genMatch0(w, arch, a, fmt.Sprintf("%s.Args[%d]", v, argnum), m, false) argnum++ } } diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index beaf0acc7f..25bbbcdeb1 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -740,10 +740,10 @@ func rewriteValueAMD64_OpAMD64ADDB(v *Value, config *Config) bool { // match: (ADDB x (MOVBconst [c])) // cond: // result: (ADDBconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto endab690db69bfd8192eea57a2f9f76bf84 + break } c := v.Args[1].AuxInt v.reset(OpAMD64ADDBconst) @@ -751,15 +751,12 @@ func rewriteValueAMD64_OpAMD64ADDB(v *Value, config *Config) bool { v.AddArg(x) return true } - goto endab690db69bfd8192eea57a2f9f76bf84 -endab690db69bfd8192eea57a2f9f76bf84: - ; // match: (ADDB (MOVBconst [c]) x) // cond: // result: (ADDBconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto end28aa1a4abe7e1abcdd64135e9967d39d + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -768,16 +765,13 @@ endab690db69bfd8192eea57a2f9f76bf84: v.AddArg(x) return true } - goto end28aa1a4abe7e1abcdd64135e9967d39d -end28aa1a4abe7e1abcdd64135e9967d39d: - ; // match: (ADDB x (NEGB y)) // cond: // result: (SUBB x y) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64NEGB { - goto end9464509b8874ffb00b43b843da01f0bc + break } y := v.Args[1].Args[0] v.reset(OpAMD64SUBB) @@ -785,9 +779,6 @@ end28aa1a4abe7e1abcdd64135e9967d39d: v.AddArg(y) return true } - goto end9464509b8874ffb00b43b843da01f0bc -end9464509b8874ffb00b43b843da01f0bc: - ; return false } func rewriteValueAMD64_OpAMD64ADDBconst(v *Value, config *Config) bool { @@ -796,43 +787,37 @@ func rewriteValueAMD64_OpAMD64ADDBconst(v *Value, config *Config) bool { // match: (ADDBconst [c] x) // cond: int8(c)==0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int8(c) == 0) { - goto end3fbe38dfc1de8f48c755862c4c8b6bac + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end3fbe38dfc1de8f48c755862c4c8b6bac -end3fbe38dfc1de8f48c755862c4c8b6bac: - ; // match: (ADDBconst [c] (MOVBconst [d])) // cond: // result: (MOVBconst [c+d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVBconst { - goto enda9b1e9e31ccdf0af5f4fe57bf4b1343f + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = c + d return true } - goto enda9b1e9e31ccdf0af5f4fe57bf4b1343f -enda9b1e9e31ccdf0af5f4fe57bf4b1343f: - ; // match: (ADDBconst [c] (ADDBconst [d] x)) // cond: // result: (ADDBconst [c+d] x) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64ADDBconst { - goto end9b1e6890adbf9d9e447d591b4148cbd0 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -841,9 +826,6 @@ enda9b1e9e31ccdf0af5f4fe57bf4b1343f: v.AddArg(x) return true } - goto end9b1e6890adbf9d9e447d591b4148cbd0 -end9b1e6890adbf9d9e447d591b4148cbd0: - ; return false } func rewriteValueAMD64_OpAMD64ADDL(v *Value, config *Config) bool { @@ -852,10 +834,10 @@ func rewriteValueAMD64_OpAMD64ADDL(v *Value, config *Config) bool { // match: (ADDL x (MOVLconst [c])) // cond: // result: (ADDLconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end8d6d3b99a7be8da6b7a254b7e709cc95 + break } c := v.Args[1].AuxInt v.reset(OpAMD64ADDLconst) @@ -863,15 +845,12 @@ func rewriteValueAMD64_OpAMD64ADDL(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end8d6d3b99a7be8da6b7a254b7e709cc95 -end8d6d3b99a7be8da6b7a254b7e709cc95: - ; // match: (ADDL (MOVLconst [c]) x) // cond: // result: (ADDLconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto end739561e08a561e26ce3634dc0d5ec733 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -880,16 +859,13 @@ end8d6d3b99a7be8da6b7a254b7e709cc95: v.AddArg(x) return true } - goto end739561e08a561e26ce3634dc0d5ec733 -end739561e08a561e26ce3634dc0d5ec733: - ; // match: (ADDL x (NEGL y)) // cond: // result: (SUBL x y) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64NEGL { - goto end9596df31f2685a49df67c6fb912a521d + break } y := v.Args[1].Args[0] v.reset(OpAMD64SUBL) @@ -897,9 +873,6 @@ end739561e08a561e26ce3634dc0d5ec733: v.AddArg(y) return true } - goto end9596df31f2685a49df67c6fb912a521d -end9596df31f2685a49df67c6fb912a521d: - ; return false } func rewriteValueAMD64_OpAMD64ADDLconst(v *Value, config *Config) bool { @@ -908,43 +881,37 @@ func rewriteValueAMD64_OpAMD64ADDLconst(v *Value, config *Config) bool { // match: (ADDLconst [c] x) // cond: int32(c)==0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int32(c) == 0) { - goto endf04fb6232fbd3b460bb0d1bdcdc57d65 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endf04fb6232fbd3b460bb0d1bdcdc57d65 -endf04fb6232fbd3b460bb0d1bdcdc57d65: - ; // match: (ADDLconst [c] (MOVLconst [d])) // cond: // result: (MOVLconst [c+d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVLconst { - goto ende04850e987890abf1d66199042a19c23 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVLconst) v.AuxInt = c + d return true } - goto ende04850e987890abf1d66199042a19c23 -ende04850e987890abf1d66199042a19c23: - ; // match: (ADDLconst [c] (ADDLconst [d] x)) // cond: // result: (ADDLconst [c+d] x) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64ADDLconst { - goto endf1dd8673b2fef4950aec87aa7523a236 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -953,9 +920,6 @@ ende04850e987890abf1d66199042a19c23: v.AddArg(x) return true } - goto endf1dd8673b2fef4950aec87aa7523a236 -endf1dd8673b2fef4950aec87aa7523a236: - ; return false } func rewriteValueAMD64_OpAMD64ADDQ(v *Value, config *Config) bool { @@ -964,53 +928,47 @@ func rewriteValueAMD64_OpAMD64ADDQ(v *Value, config *Config) bool { // match: (ADDQ x (MOVQconst [c])) // cond: is32Bit(c) // result: (ADDQconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end1de8aeb1d043e0dadcffd169a99ce5c0 + break } c := v.Args[1].AuxInt if !(is32Bit(c)) { - goto end1de8aeb1d043e0dadcffd169a99ce5c0 + break } v.reset(OpAMD64ADDQconst) v.AuxInt = c v.AddArg(x) return true } - goto end1de8aeb1d043e0dadcffd169a99ce5c0 -end1de8aeb1d043e0dadcffd169a99ce5c0: - ; // match: (ADDQ (MOVQconst [c]) x) // cond: is32Bit(c) // result: (ADDQconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto endca635e3bdecd9e3aeb892f841021dfaa + break } c := v.Args[0].AuxInt x := v.Args[1] if !(is32Bit(c)) { - goto endca635e3bdecd9e3aeb892f841021dfaa + break } v.reset(OpAMD64ADDQconst) v.AuxInt = c v.AddArg(x) return true } - goto endca635e3bdecd9e3aeb892f841021dfaa -endca635e3bdecd9e3aeb892f841021dfaa: - ; // match: (ADDQ x (SHLQconst [3] y)) // cond: // result: (LEAQ8 x y) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64SHLQconst { - goto endc02313d35a0525d1d680cd58992e820d + break } if v.Args[1].AuxInt != 3 { - goto endc02313d35a0525d1d680cd58992e820d + break } y := v.Args[1].Args[0] v.reset(OpAMD64LEAQ8) @@ -1018,19 +976,16 @@ endca635e3bdecd9e3aeb892f841021dfaa: v.AddArg(y) return true } - goto endc02313d35a0525d1d680cd58992e820d -endc02313d35a0525d1d680cd58992e820d: - ; // match: (ADDQ x (SHLQconst [2] y)) // cond: // result: (LEAQ4 x y) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64SHLQconst { - goto end153955fe292c5ecb20b76bba7da8f451 + break } if v.Args[1].AuxInt != 2 { - goto end153955fe292c5ecb20b76bba7da8f451 + break } y := v.Args[1].Args[0] v.reset(OpAMD64LEAQ4) @@ -1038,19 +993,16 @@ endc02313d35a0525d1d680cd58992e820d: v.AddArg(y) return true } - goto end153955fe292c5ecb20b76bba7da8f451 -end153955fe292c5ecb20b76bba7da8f451: - ; // match: (ADDQ x (SHLQconst [1] y)) // cond: // result: (LEAQ2 x y) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64SHLQconst { - goto enda863d175a7a59f03d4306df57e8351f6 + break } if v.Args[1].AuxInt != 1 { - goto enda863d175a7a59f03d4306df57e8351f6 + break } y := v.Args[1].Args[0] v.reset(OpAMD64LEAQ2) @@ -1058,39 +1010,33 @@ end153955fe292c5ecb20b76bba7da8f451: v.AddArg(y) return true } - goto enda863d175a7a59f03d4306df57e8351f6 -enda863d175a7a59f03d4306df57e8351f6: - ; // match: (ADDQ x (ADDQ y y)) // cond: // result: (LEAQ2 x y) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64ADDQ { - goto endf7dd9841c41eec66eddd351ee39cfbf3 + break } y := v.Args[1].Args[0] if v.Args[1].Args[1] != y { - goto endf7dd9841c41eec66eddd351ee39cfbf3 + break } v.reset(OpAMD64LEAQ2) v.AddArg(x) v.AddArg(y) return true } - goto endf7dd9841c41eec66eddd351ee39cfbf3 -endf7dd9841c41eec66eddd351ee39cfbf3: - ; // match: (ADDQ x (ADDQ x y)) // cond: // result: (LEAQ2 y x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64ADDQ { - goto end5547794ce29adef7d31260653a56bcb5 + break } if v.Args[1].Args[0] != x { - goto end5547794ce29adef7d31260653a56bcb5 + break } y := v.Args[1].Args[1] v.reset(OpAMD64LEAQ2) @@ -1098,42 +1044,36 @@ endf7dd9841c41eec66eddd351ee39cfbf3: v.AddArg(x) return true } - goto end5547794ce29adef7d31260653a56bcb5 -end5547794ce29adef7d31260653a56bcb5: - ; // match: (ADDQ x (ADDQ y x)) // cond: // result: (LEAQ2 y x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64ADDQ { - goto end0ef5fb7590c377b6274991aaea41fae2 + break } y := v.Args[1].Args[0] if v.Args[1].Args[1] != x { - goto end0ef5fb7590c377b6274991aaea41fae2 + break } v.reset(OpAMD64LEAQ2) v.AddArg(y) v.AddArg(x) return true } - goto end0ef5fb7590c377b6274991aaea41fae2 -end0ef5fb7590c377b6274991aaea41fae2: - ; // match: (ADDQ x (LEAQ [c] {s} y)) // cond: x.Op != OpSB && y.Op != OpSB // result: (LEAQ1 [c] {s} x y) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64LEAQ { - goto endadc48e1a7f3d0a3505b68ffc771bb086 + break } c := v.Args[1].AuxInt s := v.Args[1].Aux y := v.Args[1].Args[0] if !(x.Op != OpSB && y.Op != OpSB) { - goto endadc48e1a7f3d0a3505b68ffc771bb086 + break } v.reset(OpAMD64LEAQ1) v.AuxInt = c @@ -1142,22 +1082,19 @@ end0ef5fb7590c377b6274991aaea41fae2: v.AddArg(y) return true } - goto endadc48e1a7f3d0a3505b68ffc771bb086 -endadc48e1a7f3d0a3505b68ffc771bb086: - ; // match: (ADDQ (LEAQ [c] {s} x) y) // cond: x.Op != OpSB && y.Op != OpSB // result: (LEAQ1 [c] {s} x y) - { + for { if v.Args[0].Op != OpAMD64LEAQ { - goto end2696de9ef8f27dbc96dd4ad5878b0779 + break } c := v.Args[0].AuxInt s := v.Args[0].Aux x := v.Args[0].Args[0] y := v.Args[1] if !(x.Op != OpSB && y.Op != OpSB) { - goto end2696de9ef8f27dbc96dd4ad5878b0779 + break } v.reset(OpAMD64LEAQ1) v.AuxInt = c @@ -1166,16 +1103,13 @@ endadc48e1a7f3d0a3505b68ffc771bb086: v.AddArg(y) return true } - goto end2696de9ef8f27dbc96dd4ad5878b0779 -end2696de9ef8f27dbc96dd4ad5878b0779: - ; // match: (ADDQ x (NEGQ y)) // cond: // result: (SUBQ x y) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64NEGQ { - goto endec8f899c6e175a0147a90750f9bfe0a2 + break } y := v.Args[1].Args[0] v.reset(OpAMD64SUBQ) @@ -1183,9 +1117,6 @@ end2696de9ef8f27dbc96dd4ad5878b0779: v.AddArg(y) return true } - goto endec8f899c6e175a0147a90750f9bfe0a2 -endec8f899c6e175a0147a90750f9bfe0a2: - ; return false } func rewriteValueAMD64_OpAMD64ADDQconst(v *Value, config *Config) bool { @@ -1194,10 +1125,10 @@ func rewriteValueAMD64_OpAMD64ADDQconst(v *Value, config *Config) bool { // match: (ADDQconst [c] (LEAQ [d] {s} x)) // cond: // result: (LEAQ [c+d] {s} x) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64LEAQ { - goto end5bfebc265098e6e57905269bb95daa3f + break } d := v.Args[0].AuxInt s := v.Args[0].Aux @@ -1208,16 +1139,13 @@ func rewriteValueAMD64_OpAMD64ADDQconst(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end5bfebc265098e6e57905269bb95daa3f -end5bfebc265098e6e57905269bb95daa3f: - ; // match: (ADDQconst [c] (LEAQ1 [d] {s} x y)) // cond: // result: (LEAQ1 [c+d] {s} x y) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64LEAQ1 { - goto end71505b5ee2217f51c50569efc37499e7 + break } d := v.Args[0].AuxInt s := v.Args[0].Aux @@ -1230,16 +1158,13 @@ end5bfebc265098e6e57905269bb95daa3f: v.AddArg(y) return true } - goto end71505b5ee2217f51c50569efc37499e7 -end71505b5ee2217f51c50569efc37499e7: - ; // match: (ADDQconst [c] (LEAQ2 [d] {s} x y)) // cond: // result: (LEAQ2 [c+d] {s} x y) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64LEAQ2 { - goto end9f155ec07598aec52f602a92a5d719a9 + break } d := v.Args[0].AuxInt s := v.Args[0].Aux @@ -1252,16 +1177,13 @@ end71505b5ee2217f51c50569efc37499e7: v.AddArg(y) return true } - goto end9f155ec07598aec52f602a92a5d719a9 -end9f155ec07598aec52f602a92a5d719a9: - ; // match: (ADDQconst [c] (LEAQ4 [d] {s} x y)) // cond: // result: (LEAQ4 [c+d] {s} x y) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64LEAQ4 { - goto end95f58aac9e8ea7efaef2bec6400cf7f8 + break } d := v.Args[0].AuxInt s := v.Args[0].Aux @@ -1274,16 +1196,13 @@ end9f155ec07598aec52f602a92a5d719a9: v.AddArg(y) return true } - goto end95f58aac9e8ea7efaef2bec6400cf7f8 -end95f58aac9e8ea7efaef2bec6400cf7f8: - ; // match: (ADDQconst [c] (LEAQ8 [d] {s} x y)) // cond: // result: (LEAQ8 [c+d] {s} x y) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64LEAQ8 { - goto end9d4328824aff954a1f47f1109500e826 + break } d := v.Args[0].AuxInt s := v.Args[0].Aux @@ -1296,15 +1215,12 @@ end95f58aac9e8ea7efaef2bec6400cf7f8: v.AddArg(y) return true } - goto end9d4328824aff954a1f47f1109500e826 -end9d4328824aff954a1f47f1109500e826: - ; // match: (ADDQconst [0] x) // cond: // result: x - { + for { if v.AuxInt != 0 { - goto end03d9f5a3e153048b0afa781401e2a849 + break } x := v.Args[0] v.reset(OpCopy) @@ -1312,32 +1228,26 @@ end9d4328824aff954a1f47f1109500e826: v.AddArg(x) return true } - goto end03d9f5a3e153048b0afa781401e2a849 -end03d9f5a3e153048b0afa781401e2a849: - ; // match: (ADDQconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [c+d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto end09dc54395b4e96e8332cf8e4e7481c52 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = c + d return true } - goto end09dc54395b4e96e8332cf8e4e7481c52 -end09dc54395b4e96e8332cf8e4e7481c52: - ; // match: (ADDQconst [c] (ADDQconst [d] x)) // cond: // result: (ADDQconst [c+d] x) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64ADDQconst { - goto endd4cb539641f0dc40bfd0cb7fbb9b0405 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -1346,9 +1256,6 @@ end09dc54395b4e96e8332cf8e4e7481c52: v.AddArg(x) return true } - goto endd4cb539641f0dc40bfd0cb7fbb9b0405 -endd4cb539641f0dc40bfd0cb7fbb9b0405: - ; return false } func rewriteValueAMD64_OpAMD64ADDW(v *Value, config *Config) bool { @@ -1357,10 +1264,10 @@ func rewriteValueAMD64_OpAMD64ADDW(v *Value, config *Config) bool { // match: (ADDW x (MOVWconst [c])) // cond: // result: (ADDWconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end1aabd2317de77c7dfc4876fd7e4c5011 + break } c := v.Args[1].AuxInt v.reset(OpAMD64ADDWconst) @@ -1368,15 +1275,12 @@ func rewriteValueAMD64_OpAMD64ADDW(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end1aabd2317de77c7dfc4876fd7e4c5011 -end1aabd2317de77c7dfc4876fd7e4c5011: - ; // match: (ADDW (MOVWconst [c]) x) // cond: // result: (ADDWconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto ende3aede99966f388afc624f9e86676fd2 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -1385,16 +1289,13 @@ end1aabd2317de77c7dfc4876fd7e4c5011: v.AddArg(x) return true } - goto ende3aede99966f388afc624f9e86676fd2 -ende3aede99966f388afc624f9e86676fd2: - ; // match: (ADDW x (NEGW y)) // cond: // result: (SUBW x y) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64NEGW { - goto end55cf2af0d75f3ec413528eeb799e94d5 + break } y := v.Args[1].Args[0] v.reset(OpAMD64SUBW) @@ -1402,9 +1303,6 @@ ende3aede99966f388afc624f9e86676fd2: v.AddArg(y) return true } - goto end55cf2af0d75f3ec413528eeb799e94d5 -end55cf2af0d75f3ec413528eeb799e94d5: - ; return false } func rewriteValueAMD64_OpAMD64ADDWconst(v *Value, config *Config) bool { @@ -1413,43 +1311,37 @@ func rewriteValueAMD64_OpAMD64ADDWconst(v *Value, config *Config) bool { // match: (ADDWconst [c] x) // cond: int16(c)==0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int16(c) == 0) { - goto end8564670ff18b2a91eb92d5e5775464cd + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end8564670ff18b2a91eb92d5e5775464cd -end8564670ff18b2a91eb92d5e5775464cd: - ; // match: (ADDWconst [c] (MOVWconst [d])) // cond: // result: (MOVWconst [c+d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVWconst { - goto end32541920f2f5a920dfae41d8ebbef00f + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVWconst) v.AuxInt = c + d return true } - goto end32541920f2f5a920dfae41d8ebbef00f -end32541920f2f5a920dfae41d8ebbef00f: - ; // match: (ADDWconst [c] (ADDWconst [d] x)) // cond: // result: (ADDWconst [c+d] x) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64ADDWconst { - goto end73944f6ddda7e4c050f11d17484ff9a5 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -1458,9 +1350,6 @@ end32541920f2f5a920dfae41d8ebbef00f: v.AddArg(x) return true } - goto end73944f6ddda7e4c050f11d17484ff9a5 -end73944f6ddda7e4c050f11d17484ff9a5: - ; return false } func rewriteValueAMD64_OpAMD64ANDB(v *Value, config *Config) bool { @@ -1469,10 +1358,10 @@ func rewriteValueAMD64_OpAMD64ANDB(v *Value, config *Config) bool { // match: (ANDB x (MOVLconst [c])) // cond: // result: (ANDBconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end01100cd255396e29bfdb130f4fbc9bbc + break } c := v.Args[1].AuxInt v.reset(OpAMD64ANDBconst) @@ -1480,15 +1369,12 @@ func rewriteValueAMD64_OpAMD64ANDB(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end01100cd255396e29bfdb130f4fbc9bbc -end01100cd255396e29bfdb130f4fbc9bbc: - ; // match: (ANDB (MOVLconst [c]) x) // cond: // result: (ANDBconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto end70830ce2834dc5f8d786fa6789460926 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -1497,16 +1383,13 @@ end01100cd255396e29bfdb130f4fbc9bbc: v.AddArg(x) return true } - goto end70830ce2834dc5f8d786fa6789460926 -end70830ce2834dc5f8d786fa6789460926: - ; // match: (ANDB x (MOVBconst [c])) // cond: // result: (ANDBconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto endd275ec2e73768cb3d201478fc934e06c + break } c := v.Args[1].AuxInt v.reset(OpAMD64ANDBconst) @@ -1514,15 +1397,12 @@ end70830ce2834dc5f8d786fa6789460926: v.AddArg(x) return true } - goto endd275ec2e73768cb3d201478fc934e06c -endd275ec2e73768cb3d201478fc934e06c: - ; // match: (ANDB (MOVBconst [c]) x) // cond: // result: (ANDBconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto end4068edac2ae0f354cf581db210288b98 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -1531,25 +1411,19 @@ endd275ec2e73768cb3d201478fc934e06c: v.AddArg(x) return true } - goto end4068edac2ae0f354cf581db210288b98 -end4068edac2ae0f354cf581db210288b98: - ; // match: (ANDB x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto endb8ff272a1456513da708603abe37541c + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endb8ff272a1456513da708603abe37541c -endb8ff272a1456513da708603abe37541c: - ; return false } func rewriteValueAMD64_OpAMD64ANDBconst(v *Value, config *Config) bool { @@ -1558,51 +1432,42 @@ func rewriteValueAMD64_OpAMD64ANDBconst(v *Value, config *Config) bool { // match: (ANDBconst [c] _) // cond: int8(c)==0 // result: (MOVBconst [0]) - { + for { c := v.AuxInt if !(int8(c) == 0) { - goto end2106d410c949da14d7c00041f40eca76 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end2106d410c949da14d7c00041f40eca76 -end2106d410c949da14d7c00041f40eca76: - ; // match: (ANDBconst [c] x) // cond: int8(c)==-1 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int8(c) == -1) { - goto enda0b78503c204c8225de1433949a71fe4 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto enda0b78503c204c8225de1433949a71fe4 -enda0b78503c204c8225de1433949a71fe4: - ; // match: (ANDBconst [c] (MOVBconst [d])) // cond: // result: (MOVBconst [c&d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVBconst { - goto end946312b1f216933da86febe293eb956f + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = c & d return true } - goto end946312b1f216933da86febe293eb956f -end946312b1f216933da86febe293eb956f: - ; return false } func rewriteValueAMD64_OpAMD64ANDL(v *Value, config *Config) bool { @@ -1611,10 +1476,10 @@ func rewriteValueAMD64_OpAMD64ANDL(v *Value, config *Config) bool { // match: (ANDL x (MOVLconst [c])) // cond: // result: (ANDLconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end0a4c49d9a26759c0fd21369dafcd7abb + break } c := v.Args[1].AuxInt v.reset(OpAMD64ANDLconst) @@ -1622,15 +1487,12 @@ func rewriteValueAMD64_OpAMD64ANDL(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end0a4c49d9a26759c0fd21369dafcd7abb -end0a4c49d9a26759c0fd21369dafcd7abb: - ; // match: (ANDL (MOVLconst [c]) x) // cond: // result: (ANDLconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto end0529ba323d9b6f15c41add401ef67959 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -1639,25 +1501,19 @@ end0a4c49d9a26759c0fd21369dafcd7abb: v.AddArg(x) return true } - goto end0529ba323d9b6f15c41add401ef67959 -end0529ba323d9b6f15c41add401ef67959: - ; // match: (ANDL x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto enddfb08a0d0c262854db3905cb323388c7 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto enddfb08a0d0c262854db3905cb323388c7 -enddfb08a0d0c262854db3905cb323388c7: - ; return false } func rewriteValueAMD64_OpAMD64ANDLconst(v *Value, config *Config) bool { @@ -1666,51 +1522,42 @@ func rewriteValueAMD64_OpAMD64ANDLconst(v *Value, config *Config) bool { // match: (ANDLconst [c] _) // cond: int32(c)==0 // result: (MOVLconst [0]) - { + for { c := v.AuxInt if !(int32(c) == 0) { - goto end5efb241208aef28c950b7bcf8d85d5de + break } v.reset(OpAMD64MOVLconst) v.AuxInt = 0 return true } - goto end5efb241208aef28c950b7bcf8d85d5de -end5efb241208aef28c950b7bcf8d85d5de: - ; // match: (ANDLconst [c] x) // cond: int32(c)==-1 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int32(c) == -1) { - goto end0e852ae30bb8289d6ffee0c9267e3e0c + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end0e852ae30bb8289d6ffee0c9267e3e0c -end0e852ae30bb8289d6ffee0c9267e3e0c: - ; // match: (ANDLconst [c] (MOVLconst [d])) // cond: // result: (MOVLconst [c&d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVLconst { - goto end7bfd24059369753eadd235f07e2dd7b8 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVLconst) v.AuxInt = c & d return true } - goto end7bfd24059369753eadd235f07e2dd7b8 -end7bfd24059369753eadd235f07e2dd7b8: - ; return false } func rewriteValueAMD64_OpAMD64ANDQ(v *Value, config *Config) bool { @@ -1719,59 +1566,50 @@ func rewriteValueAMD64_OpAMD64ANDQ(v *Value, config *Config) bool { // match: (ANDQ x (MOVQconst [c])) // cond: is32Bit(c) // result: (ANDQconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end048fadc69e81103480015b84b9cafff7 + break } c := v.Args[1].AuxInt if !(is32Bit(c)) { - goto end048fadc69e81103480015b84b9cafff7 + break } v.reset(OpAMD64ANDQconst) v.AuxInt = c v.AddArg(x) return true } - goto end048fadc69e81103480015b84b9cafff7 -end048fadc69e81103480015b84b9cafff7: - ; // match: (ANDQ (MOVQconst [c]) x) // cond: is32Bit(c) // result: (ANDQconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto end3035a3bf650b708705fd27dd857ab0a4 + break } c := v.Args[0].AuxInt x := v.Args[1] if !(is32Bit(c)) { - goto end3035a3bf650b708705fd27dd857ab0a4 + break } v.reset(OpAMD64ANDQconst) v.AuxInt = c v.AddArg(x) return true } - goto end3035a3bf650b708705fd27dd857ab0a4 -end3035a3bf650b708705fd27dd857ab0a4: - ; // match: (ANDQ x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto end06b5ec19efdd4e79f03a5e4a2c3c3427 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end06b5ec19efdd4e79f03a5e4a2c3c3427 -end06b5ec19efdd4e79f03a5e4a2c3c3427: - ; return false } func rewriteValueAMD64_OpAMD64ANDQconst(v *Value, config *Config) bool { @@ -1780,23 +1618,20 @@ func rewriteValueAMD64_OpAMD64ANDQconst(v *Value, config *Config) bool { // match: (ANDQconst [0] _) // cond: // result: (MOVQconst [0]) - { + for { if v.AuxInt != 0 { - goto end57018c1d0f54fd721521095b4832bab2 + break } v.reset(OpAMD64MOVQconst) v.AuxInt = 0 return true } - goto end57018c1d0f54fd721521095b4832bab2 -end57018c1d0f54fd721521095b4832bab2: - ; // match: (ANDQconst [-1] x) // cond: // result: x - { + for { if v.AuxInt != -1 { - goto endb542c4b42ab94a7bedb32dec8f610d67 + break } x := v.Args[0] v.reset(OpCopy) @@ -1804,25 +1639,19 @@ end57018c1d0f54fd721521095b4832bab2: v.AddArg(x) return true } - goto endb542c4b42ab94a7bedb32dec8f610d67 -endb542c4b42ab94a7bedb32dec8f610d67: - ; // match: (ANDQconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [c&d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto end67ca66494705b0345a5f22c710225292 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = c & d return true } - goto end67ca66494705b0345a5f22c710225292 -end67ca66494705b0345a5f22c710225292: - ; return false } func rewriteValueAMD64_OpAMD64ANDW(v *Value, config *Config) bool { @@ -1831,10 +1660,10 @@ func rewriteValueAMD64_OpAMD64ANDW(v *Value, config *Config) bool { // match: (ANDW x (MOVLconst [c])) // cond: // result: (ANDWconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto endce6f557823ee2fdd7a8f47b6f925fc7c + break } c := v.Args[1].AuxInt v.reset(OpAMD64ANDWconst) @@ -1842,15 +1671,12 @@ func rewriteValueAMD64_OpAMD64ANDW(v *Value, config *Config) bool { v.AddArg(x) return true } - goto endce6f557823ee2fdd7a8f47b6f925fc7c -endce6f557823ee2fdd7a8f47b6f925fc7c: - ; // match: (ANDW (MOVLconst [c]) x) // cond: // result: (ANDWconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto endc46af0d9265c08b09f1f1fba24feda80 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -1859,16 +1685,13 @@ endce6f557823ee2fdd7a8f47b6f925fc7c: v.AddArg(x) return true } - goto endc46af0d9265c08b09f1f1fba24feda80 -endc46af0d9265c08b09f1f1fba24feda80: - ; // match: (ANDW x (MOVWconst [c])) // cond: // result: (ANDWconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto enda77a39f65a5eb3436a5842eab69a3103 + break } c := v.Args[1].AuxInt v.reset(OpAMD64ANDWconst) @@ -1876,15 +1699,12 @@ endc46af0d9265c08b09f1f1fba24feda80: v.AddArg(x) return true } - goto enda77a39f65a5eb3436a5842eab69a3103 -enda77a39f65a5eb3436a5842eab69a3103: - ; // match: (ANDW (MOVWconst [c]) x) // cond: // result: (ANDWconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto endea2a25eb525a5dbf6d5132d84ea4e7a5 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -1893,25 +1713,19 @@ enda77a39f65a5eb3436a5842eab69a3103: v.AddArg(x) return true } - goto endea2a25eb525a5dbf6d5132d84ea4e7a5 -endea2a25eb525a5dbf6d5132d84ea4e7a5: - ; // match: (ANDW x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto end3a26cf52dd1b77f07cc9e005760dbb11 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end3a26cf52dd1b77f07cc9e005760dbb11 -end3a26cf52dd1b77f07cc9e005760dbb11: - ; return false } func rewriteValueAMD64_OpAMD64ANDWconst(v *Value, config *Config) bool { @@ -1920,51 +1734,42 @@ func rewriteValueAMD64_OpAMD64ANDWconst(v *Value, config *Config) bool { // match: (ANDWconst [c] _) // cond: int16(c)==0 // result: (MOVWconst [0]) - { + for { c := v.AuxInt if !(int16(c) == 0) { - goto end336ece33b4f0fb44dfe1f24981df7b74 + break } v.reset(OpAMD64MOVWconst) v.AuxInt = 0 return true } - goto end336ece33b4f0fb44dfe1f24981df7b74 -end336ece33b4f0fb44dfe1f24981df7b74: - ; // match: (ANDWconst [c] x) // cond: int16(c)==-1 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int16(c) == -1) { - goto endfb111c3afa8c5c4040fa6000fadee810 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endfb111c3afa8c5c4040fa6000fadee810 -endfb111c3afa8c5c4040fa6000fadee810: - ; // match: (ANDWconst [c] (MOVWconst [d])) // cond: // result: (MOVWconst [c&d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVWconst { - goto end250eb27fcac10bf6c0d96ce66a21726e + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVWconst) v.AuxInt = c & d return true } - goto end250eb27fcac10bf6c0d96ce66a21726e -end250eb27fcac10bf6c0d96ce66a21726e: - ; return false } func rewriteValueAMD64_OpAdd16(v *Value, config *Config) bool { @@ -1973,7 +1778,7 @@ func rewriteValueAMD64_OpAdd16(v *Value, config *Config) bool { // match: (Add16 x y) // cond: // result: (ADDW x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ADDW) @@ -1981,9 +1786,6 @@ func rewriteValueAMD64_OpAdd16(v *Value, config *Config) bool { v.AddArg(y) return true } - goto ende604481c6de9fe4574cb2954ba2ddc67 -ende604481c6de9fe4574cb2954ba2ddc67: - ; return false } func rewriteValueAMD64_OpAdd32(v *Value, config *Config) bool { @@ -1992,7 +1794,7 @@ func rewriteValueAMD64_OpAdd32(v *Value, config *Config) bool { // match: (Add32 x y) // cond: // result: (ADDL x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ADDL) @@ -2000,9 +1802,6 @@ func rewriteValueAMD64_OpAdd32(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endc445ea2a65385445676cd684ae9a42b5 -endc445ea2a65385445676cd684ae9a42b5: - ; return false } func rewriteValueAMD64_OpAdd32F(v *Value, config *Config) bool { @@ -2011,7 +1810,7 @@ func rewriteValueAMD64_OpAdd32F(v *Value, config *Config) bool { // match: (Add32F x y) // cond: // result: (ADDSS x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ADDSS) @@ -2019,9 +1818,6 @@ func rewriteValueAMD64_OpAdd32F(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end5d82e1c10823774894c036b7c5b8fed4 -end5d82e1c10823774894c036b7c5b8fed4: - ; return false } func rewriteValueAMD64_OpAdd64(v *Value, config *Config) bool { @@ -2030,7 +1826,7 @@ func rewriteValueAMD64_OpAdd64(v *Value, config *Config) bool { // match: (Add64 x y) // cond: // result: (ADDQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ADDQ) @@ -2038,9 +1834,6 @@ func rewriteValueAMD64_OpAdd64(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endd88f18b3f39e3ccc201477a616f0abc0 -endd88f18b3f39e3ccc201477a616f0abc0: - ; return false } func rewriteValueAMD64_OpAdd64F(v *Value, config *Config) bool { @@ -2049,7 +1842,7 @@ func rewriteValueAMD64_OpAdd64F(v *Value, config *Config) bool { // match: (Add64F x y) // cond: // result: (ADDSD x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ADDSD) @@ -2057,9 +1850,6 @@ func rewriteValueAMD64_OpAdd64F(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end62f2de6c70abd214e6987ee37976653a -end62f2de6c70abd214e6987ee37976653a: - ; return false } func rewriteValueAMD64_OpAdd8(v *Value, config *Config) bool { @@ -2068,7 +1858,7 @@ func rewriteValueAMD64_OpAdd8(v *Value, config *Config) bool { // match: (Add8 x y) // cond: // result: (ADDB x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ADDB) @@ -2076,9 +1866,6 @@ func rewriteValueAMD64_OpAdd8(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end6117c84a6b75c1b816b3fb095bc5f656 -end6117c84a6b75c1b816b3fb095bc5f656: - ; return false } func rewriteValueAMD64_OpAddPtr(v *Value, config *Config) bool { @@ -2087,7 +1874,7 @@ func rewriteValueAMD64_OpAddPtr(v *Value, config *Config) bool { // match: (AddPtr x y) // cond: // result: (ADDQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ADDQ) @@ -2095,9 +1882,6 @@ func rewriteValueAMD64_OpAddPtr(v *Value, config *Config) bool { v.AddArg(y) return true } - goto enda1d5640788c7157996f9d4af602dec1c -enda1d5640788c7157996f9d4af602dec1c: - ; return false } func rewriteValueAMD64_OpAddr(v *Value, config *Config) bool { @@ -2106,7 +1890,7 @@ func rewriteValueAMD64_OpAddr(v *Value, config *Config) bool { // match: (Addr {sym} base) // cond: // result: (LEAQ {sym} base) - { + for { sym := v.Aux base := v.Args[0] v.reset(OpAMD64LEAQ) @@ -2114,9 +1898,6 @@ func rewriteValueAMD64_OpAddr(v *Value, config *Config) bool { v.AddArg(base) return true } - goto end53cad0c3c9daa5575680e77c14e05e72 -end53cad0c3c9daa5575680e77c14e05e72: - ; return false } func rewriteValueAMD64_OpAnd16(v *Value, config *Config) bool { @@ -2125,7 +1906,7 @@ func rewriteValueAMD64_OpAnd16(v *Value, config *Config) bool { // match: (And16 x y) // cond: // result: (ANDW x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ANDW) @@ -2133,9 +1914,6 @@ func rewriteValueAMD64_OpAnd16(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end1c01f04a173d86ce1a6d1ef59e753014 -end1c01f04a173d86ce1a6d1ef59e753014: - ; return false } func rewriteValueAMD64_OpAnd32(v *Value, config *Config) bool { @@ -2144,7 +1922,7 @@ func rewriteValueAMD64_OpAnd32(v *Value, config *Config) bool { // match: (And32 x y) // cond: // result: (ANDL x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ANDL) @@ -2152,9 +1930,6 @@ func rewriteValueAMD64_OpAnd32(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end6b9eb9375b3a859028a6ba6bf6b8ec88 -end6b9eb9375b3a859028a6ba6bf6b8ec88: - ; return false } func rewriteValueAMD64_OpAnd64(v *Value, config *Config) bool { @@ -2163,7 +1938,7 @@ func rewriteValueAMD64_OpAnd64(v *Value, config *Config) bool { // match: (And64 x y) // cond: // result: (ANDQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ANDQ) @@ -2171,9 +1946,6 @@ func rewriteValueAMD64_OpAnd64(v *Value, config *Config) bool { v.AddArg(y) return true } - goto enda0bde5853819d05fa2b7d3b723629552 -enda0bde5853819d05fa2b7d3b723629552: - ; return false } func rewriteValueAMD64_OpAnd8(v *Value, config *Config) bool { @@ -2182,7 +1954,7 @@ func rewriteValueAMD64_OpAnd8(v *Value, config *Config) bool { // match: (And8 x y) // cond: // result: (ANDB x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ANDB) @@ -2190,9 +1962,6 @@ func rewriteValueAMD64_OpAnd8(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end0f53bee6291f1229b43aa1b5f977b4f2 -end0f53bee6291f1229b43aa1b5f977b4f2: - ; return false } func rewriteValueAMD64_OpAMD64CMPB(v *Value, config *Config) bool { @@ -2201,10 +1970,10 @@ func rewriteValueAMD64_OpAMD64CMPB(v *Value, config *Config) bool { // match: (CMPB x (MOVBconst [c])) // cond: // result: (CMPBconst x [c]) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end52190c0b8759133aa6c540944965c4c0 + break } c := v.Args[1].AuxInt v.reset(OpAMD64CMPBconst) @@ -2212,15 +1981,12 @@ func rewriteValueAMD64_OpAMD64CMPB(v *Value, config *Config) bool { v.AuxInt = c return true } - goto end52190c0b8759133aa6c540944965c4c0 -end52190c0b8759133aa6c540944965c4c0: - ; // match: (CMPB (MOVBconst [c]) x) // cond: // result: (InvertFlags (CMPBconst x [c])) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto end25ab646f9eb8749ea58c8fbbb4bf6bcd + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -2231,9 +1997,6 @@ end52190c0b8759133aa6c540944965c4c0: v.AddArg(v0) return true } - goto end25ab646f9eb8749ea58c8fbbb4bf6bcd -end25ab646f9eb8749ea58c8fbbb4bf6bcd: - ; return false } func rewriteValueAMD64_OpAMD64CMPBconst(v *Value, config *Config) bool { @@ -2242,151 +2005,127 @@ func rewriteValueAMD64_OpAMD64CMPBconst(v *Value, config *Config) bool { // match: (CMPBconst (MOVBconst [x]) [y]) // cond: int8(x)==int8(y) // result: (FlagEQ) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto end1be300bd80b7d8cd0fa37e1907c75a77 + break } x := v.Args[0].AuxInt y := v.AuxInt if !(int8(x) == int8(y)) { - goto end1be300bd80b7d8cd0fa37e1907c75a77 + break } v.reset(OpAMD64FlagEQ) return true } - goto end1be300bd80b7d8cd0fa37e1907c75a77 -end1be300bd80b7d8cd0fa37e1907c75a77: - ; // match: (CMPBconst (MOVBconst [x]) [y]) // cond: int8(x)uint8(y) // result: (FlagLT_UGT) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto endbfa2ca974f69ec9ceb8a24ad6db45efb + break } x := v.Args[0].AuxInt y := v.AuxInt if !(int8(x) < int8(y) && uint8(x) > uint8(y)) { - goto endbfa2ca974f69ec9ceb8a24ad6db45efb + break } v.reset(OpAMD64FlagLT_UGT) return true } - goto endbfa2ca974f69ec9ceb8a24ad6db45efb -endbfa2ca974f69ec9ceb8a24ad6db45efb: - ; // match: (CMPBconst (MOVBconst [x]) [y]) // cond: int8(x)>int8(y) && uint8(x) int8(y) && uint8(x) < uint8(y)) { - goto end68ac2e7dcb3704e235e1c292669320ed + break } v.reset(OpAMD64FlagGT_ULT) return true } - goto end68ac2e7dcb3704e235e1c292669320ed -end68ac2e7dcb3704e235e1c292669320ed: - ; // match: (CMPBconst (MOVBconst [x]) [y]) // cond: int8(x)>int8(y) && uint8(x)>uint8(y) // result: (FlagGT_UGT) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto endac1c49c82fb6b76dd324042c4588973c + break } x := v.Args[0].AuxInt y := v.AuxInt if !(int8(x) > int8(y) && uint8(x) > uint8(y)) { - goto endac1c49c82fb6b76dd324042c4588973c + break } v.reset(OpAMD64FlagGT_UGT) return true } - goto endac1c49c82fb6b76dd324042c4588973c -endac1c49c82fb6b76dd324042c4588973c: - ; // match: (CMPBconst (ANDBconst _ [m]) [n]) // cond: int8(m)+1==int8(n) && isPowerOfTwo(int64(int8(n))) // result: (FlagLT_ULT) - { + for { if v.Args[0].Op != OpAMD64ANDBconst { - goto end82aa9d89330cb5dc58592048bfc16ebc + break } m := v.Args[0].AuxInt n := v.AuxInt if !(int8(m)+1 == int8(n) && isPowerOfTwo(int64(int8(n)))) { - goto end82aa9d89330cb5dc58592048bfc16ebc + break } v.reset(OpAMD64FlagLT_ULT) return true } - goto end82aa9d89330cb5dc58592048bfc16ebc -end82aa9d89330cb5dc58592048bfc16ebc: - ; // match: (CMPBconst (ANDB x y) [0]) // cond: // result: (TESTB x y) - { + for { if v.Args[0].Op != OpAMD64ANDB { - goto endc1dd0adee6d97d0f2644600fa5247db5 + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.AuxInt != 0 { - goto endc1dd0adee6d97d0f2644600fa5247db5 + break } v.reset(OpAMD64TESTB) v.AddArg(x) v.AddArg(y) return true } - goto endc1dd0adee6d97d0f2644600fa5247db5 -endc1dd0adee6d97d0f2644600fa5247db5: - ; // match: (CMPBconst (ANDBconst [c] x) [0]) // cond: // result: (TESTBconst [c] x) - { + for { if v.Args[0].Op != OpAMD64ANDBconst { - goto end575fd7ac1086d0c37e6946db5bbc7e94 + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] if v.AuxInt != 0 { - goto end575fd7ac1086d0c37e6946db5bbc7e94 + break } v.reset(OpAMD64TESTBconst) v.AuxInt = c v.AddArg(x) return true } - goto end575fd7ac1086d0c37e6946db5bbc7e94 -end575fd7ac1086d0c37e6946db5bbc7e94: - ; return false } func rewriteValueAMD64_OpAMD64CMPL(v *Value, config *Config) bool { @@ -2395,10 +2134,10 @@ func rewriteValueAMD64_OpAMD64CMPL(v *Value, config *Config) bool { // match: (CMPL x (MOVLconst [c])) // cond: // result: (CMPLconst x [c]) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end49ff4559c4bdecb2aef0c905e2d9a6cf + break } c := v.Args[1].AuxInt v.reset(OpAMD64CMPLconst) @@ -2406,15 +2145,12 @@ func rewriteValueAMD64_OpAMD64CMPL(v *Value, config *Config) bool { v.AuxInt = c return true } - goto end49ff4559c4bdecb2aef0c905e2d9a6cf -end49ff4559c4bdecb2aef0c905e2d9a6cf: - ; // match: (CMPL (MOVLconst [c]) x) // cond: // result: (InvertFlags (CMPLconst x [c])) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto end7d89230086678ab4ed5cc96a3ae358d6 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -2425,9 +2161,6 @@ end49ff4559c4bdecb2aef0c905e2d9a6cf: v.AddArg(v0) return true } - goto end7d89230086678ab4ed5cc96a3ae358d6 -end7d89230086678ab4ed5cc96a3ae358d6: - ; return false } func rewriteValueAMD64_OpAMD64CMPLconst(v *Value, config *Config) bool { @@ -2436,151 +2169,127 @@ func rewriteValueAMD64_OpAMD64CMPLconst(v *Value, config *Config) bool { // match: (CMPLconst (MOVLconst [x]) [y]) // cond: int32(x)==int32(y) // result: (FlagEQ) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto end7c53f3fc20f710e60f327bf63b4c8d4e + break } x := v.Args[0].AuxInt y := v.AuxInt if !(int32(x) == int32(y)) { - goto end7c53f3fc20f710e60f327bf63b4c8d4e + break } v.reset(OpAMD64FlagEQ) return true } - goto end7c53f3fc20f710e60f327bf63b4c8d4e -end7c53f3fc20f710e60f327bf63b4c8d4e: - ; // match: (CMPLconst (MOVLconst [x]) [y]) // cond: int32(x)uint32(y) // result: (FlagLT_UGT) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto end66603988bfeb71e410328b40425c3418 + break } x := v.Args[0].AuxInt y := v.AuxInt if !(int32(x) < int32(y) && uint32(x) > uint32(y)) { - goto end66603988bfeb71e410328b40425c3418 + break } v.reset(OpAMD64FlagLT_UGT) return true } - goto end66603988bfeb71e410328b40425c3418 -end66603988bfeb71e410328b40425c3418: - ; // match: (CMPLconst (MOVLconst [x]) [y]) // cond: int32(x)>int32(y) && uint32(x) int32(y) && uint32(x) < uint32(y)) { - goto endb1b0b14302e765637328dade12e1ce87 + break } v.reset(OpAMD64FlagGT_ULT) return true } - goto endb1b0b14302e765637328dade12e1ce87 -endb1b0b14302e765637328dade12e1ce87: - ; // match: (CMPLconst (MOVLconst [x]) [y]) // cond: int32(x)>int32(y) && uint32(x)>uint32(y) // result: (FlagGT_UGT) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto endc7b8e86e537d6e106e237023dc2c9a7b + break } x := v.Args[0].AuxInt y := v.AuxInt if !(int32(x) > int32(y) && uint32(x) > uint32(y)) { - goto endc7b8e86e537d6e106e237023dc2c9a7b + break } v.reset(OpAMD64FlagGT_UGT) return true } - goto endc7b8e86e537d6e106e237023dc2c9a7b -endc7b8e86e537d6e106e237023dc2c9a7b: - ; // match: (CMPLconst (ANDLconst _ [m]) [n]) // cond: int32(m)+1==int32(n) && isPowerOfTwo(int64(int32(n))) // result: (FlagLT_ULT) - { + for { if v.Args[0].Op != OpAMD64ANDLconst { - goto endf202b9830a1e45f3888f2598c762c702 + break } m := v.Args[0].AuxInt n := v.AuxInt if !(int32(m)+1 == int32(n) && isPowerOfTwo(int64(int32(n)))) { - goto endf202b9830a1e45f3888f2598c762c702 + break } v.reset(OpAMD64FlagLT_ULT) return true } - goto endf202b9830a1e45f3888f2598c762c702 -endf202b9830a1e45f3888f2598c762c702: - ; // match: (CMPLconst (ANDL x y) [0]) // cond: // result: (TESTL x y) - { + for { if v.Args[0].Op != OpAMD64ANDL { - goto endc99c55b2fd4bbe4f6eba9675087f215d + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.AuxInt != 0 { - goto endc99c55b2fd4bbe4f6eba9675087f215d + break } v.reset(OpAMD64TESTL) v.AddArg(x) v.AddArg(y) return true } - goto endc99c55b2fd4bbe4f6eba9675087f215d -endc99c55b2fd4bbe4f6eba9675087f215d: - ; // match: (CMPLconst (ANDLconst [c] x) [0]) // cond: // result: (TESTLconst [c] x) - { + for { if v.Args[0].Op != OpAMD64ANDLconst { - goto end218077662043c7cfb0b92334ec8d691f + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] if v.AuxInt != 0 { - goto end218077662043c7cfb0b92334ec8d691f + break } v.reset(OpAMD64TESTLconst) v.AuxInt = c v.AddArg(x) return true } - goto end218077662043c7cfb0b92334ec8d691f -end218077662043c7cfb0b92334ec8d691f: - ; return false } func rewriteValueAMD64_OpAMD64CMPQ(v *Value, config *Config) bool { @@ -2589,34 +2298,31 @@ func rewriteValueAMD64_OpAMD64CMPQ(v *Value, config *Config) bool { // match: (CMPQ x (MOVQconst [c])) // cond: is32Bit(c) // result: (CMPQconst x [c]) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end3bbb2c6caa57853a7561738ce3c0c630 + break } c := v.Args[1].AuxInt if !(is32Bit(c)) { - goto end3bbb2c6caa57853a7561738ce3c0c630 + break } v.reset(OpAMD64CMPQconst) v.AddArg(x) v.AuxInt = c return true } - goto end3bbb2c6caa57853a7561738ce3c0c630 -end3bbb2c6caa57853a7561738ce3c0c630: - ; // match: (CMPQ (MOVQconst [c]) x) // cond: is32Bit(c) // result: (InvertFlags (CMPQconst x [c])) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto end153e951c4d9890ee40bf6f189ff6280e + break } c := v.Args[0].AuxInt x := v.Args[1] if !(is32Bit(c)) { - goto end153e951c4d9890ee40bf6f189ff6280e + break } v.reset(OpAMD64InvertFlags) v0 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeFlags) @@ -2625,9 +2331,6 @@ end3bbb2c6caa57853a7561738ce3c0c630: v.AddArg(v0) return true } - goto end153e951c4d9890ee40bf6f189ff6280e -end153e951c4d9890ee40bf6f189ff6280e: - ; return false } func rewriteValueAMD64_OpAMD64CMPQconst(v *Value, config *Config) bool { @@ -2636,151 +2339,127 @@ func rewriteValueAMD64_OpAMD64CMPQconst(v *Value, config *Config) bool { // match: (CMPQconst (MOVQconst [x]) [y]) // cond: x==y // result: (FlagEQ) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto enda7a434ec055a51246d67ff14b48e455d + break } x := v.Args[0].AuxInt y := v.AuxInt if !(x == y) { - goto enda7a434ec055a51246d67ff14b48e455d + break } v.reset(OpAMD64FlagEQ) return true } - goto enda7a434ec055a51246d67ff14b48e455d -enda7a434ec055a51246d67ff14b48e455d: - ; // match: (CMPQconst (MOVQconst [x]) [y]) // cond: xuint64(y) // result: (FlagLT_UGT) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto end38a2207ac4547f3f0cfb2bc48748e033 + break } x := v.Args[0].AuxInt y := v.AuxInt if !(x < y && uint64(x) > uint64(y)) { - goto end38a2207ac4547f3f0cfb2bc48748e033 + break } v.reset(OpAMD64FlagLT_UGT) return true } - goto end38a2207ac4547f3f0cfb2bc48748e033 -end38a2207ac4547f3f0cfb2bc48748e033: - ; // match: (CMPQconst (MOVQconst [x]) [y]) // cond: x>y && uint64(x) y && uint64(x) < uint64(y)) { - goto end0adaa13f82a881b97095d7a210b96f3c + break } v.reset(OpAMD64FlagGT_ULT) return true } - goto end0adaa13f82a881b97095d7a210b96f3c -end0adaa13f82a881b97095d7a210b96f3c: - ; // match: (CMPQconst (MOVQconst [x]) [y]) // cond: x>y && uint64(x)>uint64(y) // result: (FlagGT_UGT) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto end1248b87e4a141c78bc8eff05d3fac70e + break } x := v.Args[0].AuxInt y := v.AuxInt if !(x > y && uint64(x) > uint64(y)) { - goto end1248b87e4a141c78bc8eff05d3fac70e + break } v.reset(OpAMD64FlagGT_UGT) return true } - goto end1248b87e4a141c78bc8eff05d3fac70e -end1248b87e4a141c78bc8eff05d3fac70e: - ; // match: (CMPQconst (ANDQconst _ [m]) [n]) // cond: m+1==n && isPowerOfTwo(n) // result: (FlagLT_ULT) - { + for { if v.Args[0].Op != OpAMD64ANDQconst { - goto end934098fb12e383829b654938269abc12 + break } m := v.Args[0].AuxInt n := v.AuxInt if !(m+1 == n && isPowerOfTwo(n)) { - goto end934098fb12e383829b654938269abc12 + break } v.reset(OpAMD64FlagLT_ULT) return true } - goto end934098fb12e383829b654938269abc12 -end934098fb12e383829b654938269abc12: - ; // match: (CMPQconst (ANDQ x y) [0]) // cond: // result: (TESTQ x y) - { + for { if v.Args[0].Op != OpAMD64ANDQ { - goto endd253b271c624b83def50b061d8a945a1 + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.AuxInt != 0 { - goto endd253b271c624b83def50b061d8a945a1 + break } v.reset(OpAMD64TESTQ) v.AddArg(x) v.AddArg(y) return true } - goto endd253b271c624b83def50b061d8a945a1 -endd253b271c624b83def50b061d8a945a1: - ; // match: (CMPQconst (ANDQconst [c] x) [0]) // cond: // result: (TESTQconst [c] x) - { + for { if v.Args[0].Op != OpAMD64ANDQconst { - goto endcf00c5ad714d2152d72184b163c8d57c + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] if v.AuxInt != 0 { - goto endcf00c5ad714d2152d72184b163c8d57c + break } v.reset(OpAMD64TESTQconst) v.AuxInt = c v.AddArg(x) return true } - goto endcf00c5ad714d2152d72184b163c8d57c -endcf00c5ad714d2152d72184b163c8d57c: - ; return false } func rewriteValueAMD64_OpAMD64CMPW(v *Value, config *Config) bool { @@ -2789,10 +2468,10 @@ func rewriteValueAMD64_OpAMD64CMPW(v *Value, config *Config) bool { // match: (CMPW x (MOVWconst [c])) // cond: // result: (CMPWconst x [c]) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end310a9ba58ac35c97587e08c63fe8a46c + break } c := v.Args[1].AuxInt v.reset(OpAMD64CMPWconst) @@ -2800,15 +2479,12 @@ func rewriteValueAMD64_OpAMD64CMPW(v *Value, config *Config) bool { v.AuxInt = c return true } - goto end310a9ba58ac35c97587e08c63fe8a46c -end310a9ba58ac35c97587e08c63fe8a46c: - ; // match: (CMPW (MOVWconst [c]) x) // cond: // result: (InvertFlags (CMPWconst x [c])) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto end3c52d0ae6e3d186bf131b41276c21889 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -2819,9 +2495,6 @@ end310a9ba58ac35c97587e08c63fe8a46c: v.AddArg(v0) return true } - goto end3c52d0ae6e3d186bf131b41276c21889 -end3c52d0ae6e3d186bf131b41276c21889: - ; return false } func rewriteValueAMD64_OpAMD64CMPWconst(v *Value, config *Config) bool { @@ -2830,151 +2503,127 @@ func rewriteValueAMD64_OpAMD64CMPWconst(v *Value, config *Config) bool { // match: (CMPWconst (MOVWconst [x]) [y]) // cond: int16(x)==int16(y) // result: (FlagEQ) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto endff7e81d2095a9997513cae77cd245b43 + break } x := v.Args[0].AuxInt y := v.AuxInt if !(int16(x) == int16(y)) { - goto endff7e81d2095a9997513cae77cd245b43 + break } v.reset(OpAMD64FlagEQ) return true } - goto endff7e81d2095a9997513cae77cd245b43 -endff7e81d2095a9997513cae77cd245b43: - ; // match: (CMPWconst (MOVWconst [x]) [y]) // cond: int16(x)uint16(y) // result: (FlagLT_UGT) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto ended901a2a49e592c431e45ffc17ca213d + break } x := v.Args[0].AuxInt y := v.AuxInt if !(int16(x) < int16(y) && uint16(x) > uint16(y)) { - goto ended901a2a49e592c431e45ffc17ca213d + break } v.reset(OpAMD64FlagLT_UGT) return true } - goto ended901a2a49e592c431e45ffc17ca213d -ended901a2a49e592c431e45ffc17ca213d: - ; // match: (CMPWconst (MOVWconst [x]) [y]) // cond: int16(x)>int16(y) && uint16(x) int16(y) && uint16(x) < uint16(y)) { - goto end66b1d55596a00cdc04ad83bfdeb6be8b + break } v.reset(OpAMD64FlagGT_ULT) return true } - goto end66b1d55596a00cdc04ad83bfdeb6be8b -end66b1d55596a00cdc04ad83bfdeb6be8b: - ; // match: (CMPWconst (MOVWconst [x]) [y]) // cond: int16(x)>int16(y) && uint16(x)>uint16(y) // result: (FlagGT_UGT) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto end4493f5af38d242ebb4bc2f64055a0854 + break } x := v.Args[0].AuxInt y := v.AuxInt if !(int16(x) > int16(y) && uint16(x) > uint16(y)) { - goto end4493f5af38d242ebb4bc2f64055a0854 + break } v.reset(OpAMD64FlagGT_UGT) return true } - goto end4493f5af38d242ebb4bc2f64055a0854 -end4493f5af38d242ebb4bc2f64055a0854: - ; // match: (CMPWconst (ANDWconst _ [m]) [n]) // cond: int16(m)+1==int16(n) && isPowerOfTwo(int64(int16(n))) // result: (FlagLT_ULT) - { + for { if v.Args[0].Op != OpAMD64ANDWconst { - goto endfcea07d93ded49b0e02d5fa0059309a4 + break } m := v.Args[0].AuxInt n := v.AuxInt if !(int16(m)+1 == int16(n) && isPowerOfTwo(int64(int16(n)))) { - goto endfcea07d93ded49b0e02d5fa0059309a4 + break } v.reset(OpAMD64FlagLT_ULT) return true } - goto endfcea07d93ded49b0e02d5fa0059309a4 -endfcea07d93ded49b0e02d5fa0059309a4: - ; // match: (CMPWconst (ANDW x y) [0]) // cond: // result: (TESTW x y) - { + for { if v.Args[0].Op != OpAMD64ANDW { - goto end390cbc150fec59cbf63a209c485ef8b2 + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.AuxInt != 0 { - goto end390cbc150fec59cbf63a209c485ef8b2 + break } v.reset(OpAMD64TESTW) v.AddArg(x) v.AddArg(y) return true } - goto end390cbc150fec59cbf63a209c485ef8b2 -end390cbc150fec59cbf63a209c485ef8b2: - ; // match: (CMPWconst (ANDWconst [c] x) [0]) // cond: // result: (TESTWconst [c] x) - { + for { if v.Args[0].Op != OpAMD64ANDWconst { - goto end1bde0fea3dcffeb66b314bc6b4c9aae5 + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] if v.AuxInt != 0 { - goto end1bde0fea3dcffeb66b314bc6b4c9aae5 + break } v.reset(OpAMD64TESTWconst) v.AuxInt = c v.AddArg(x) return true } - goto end1bde0fea3dcffeb66b314bc6b4c9aae5 -end1bde0fea3dcffeb66b314bc6b4c9aae5: - ; return false } func rewriteValueAMD64_OpClosureCall(v *Value, config *Config) bool { @@ -2983,7 +2632,7 @@ func rewriteValueAMD64_OpClosureCall(v *Value, config *Config) bool { // match: (ClosureCall [argwid] entry closure mem) // cond: // result: (CALLclosure [argwid] entry closure mem) - { + for { argwid := v.AuxInt entry := v.Args[0] closure := v.Args[1] @@ -2995,9 +2644,6 @@ func rewriteValueAMD64_OpClosureCall(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endfd75d26316012d86cb71d0dd1214259b -endfd75d26316012d86cb71d0dd1214259b: - ; return false } func rewriteValueAMD64_OpCom16(v *Value, config *Config) bool { @@ -3006,15 +2652,12 @@ func rewriteValueAMD64_OpCom16(v *Value, config *Config) bool { // match: (Com16 x) // cond: // result: (NOTW x) - { + for { x := v.Args[0] v.reset(OpAMD64NOTW) v.AddArg(x) return true } - goto end1b14ba8d7d7aa585ec0a211827f280ae -end1b14ba8d7d7aa585ec0a211827f280ae: - ; return false } func rewriteValueAMD64_OpCom32(v *Value, config *Config) bool { @@ -3023,15 +2666,12 @@ func rewriteValueAMD64_OpCom32(v *Value, config *Config) bool { // match: (Com32 x) // cond: // result: (NOTL x) - { + for { x := v.Args[0] v.reset(OpAMD64NOTL) v.AddArg(x) return true } - goto end6eb124ba3bdb3fd6031414370852feb6 -end6eb124ba3bdb3fd6031414370852feb6: - ; return false } func rewriteValueAMD64_OpCom64(v *Value, config *Config) bool { @@ -3040,15 +2680,12 @@ func rewriteValueAMD64_OpCom64(v *Value, config *Config) bool { // match: (Com64 x) // cond: // result: (NOTQ x) - { + for { x := v.Args[0] v.reset(OpAMD64NOTQ) v.AddArg(x) return true } - goto endf5f3b355a87779c347e305719dddda05 -endf5f3b355a87779c347e305719dddda05: - ; return false } func rewriteValueAMD64_OpCom8(v *Value, config *Config) bool { @@ -3057,15 +2694,12 @@ func rewriteValueAMD64_OpCom8(v *Value, config *Config) bool { // match: (Com8 x) // cond: // result: (NOTB x) - { + for { x := v.Args[0] v.reset(OpAMD64NOTB) v.AddArg(x) return true } - goto end1c7c5c055d663ccf1f05fbc4883030c6 -end1c7c5c055d663ccf1f05fbc4883030c6: - ; return false } func rewriteValueAMD64_OpConst16(v *Value, config *Config) bool { @@ -3074,15 +2708,12 @@ func rewriteValueAMD64_OpConst16(v *Value, config *Config) bool { // match: (Const16 [val]) // cond: // result: (MOVWconst [val]) - { + for { val := v.AuxInt v.reset(OpAMD64MOVWconst) v.AuxInt = val return true } - goto end2c6c92f297873b8ac12bd035d56d001e -end2c6c92f297873b8ac12bd035d56d001e: - ; return false } func rewriteValueAMD64_OpConst32(v *Value, config *Config) bool { @@ -3091,15 +2722,12 @@ func rewriteValueAMD64_OpConst32(v *Value, config *Config) bool { // match: (Const32 [val]) // cond: // result: (MOVLconst [val]) - { + for { val := v.AuxInt v.reset(OpAMD64MOVLconst) v.AuxInt = val return true } - goto enddae5807662af67143a3ac3ad9c63bae5 -enddae5807662af67143a3ac3ad9c63bae5: - ; return false } func rewriteValueAMD64_OpConst32F(v *Value, config *Config) bool { @@ -3108,15 +2736,12 @@ func rewriteValueAMD64_OpConst32F(v *Value, config *Config) bool { // match: (Const32F [val]) // cond: // result: (MOVSSconst [val]) - { + for { val := v.AuxInt v.reset(OpAMD64MOVSSconst) v.AuxInt = val return true } - goto endfabcef2d57a8f36eaa6041de6f112b89 -endfabcef2d57a8f36eaa6041de6f112b89: - ; return false } func rewriteValueAMD64_OpConst64(v *Value, config *Config) bool { @@ -3125,15 +2750,12 @@ func rewriteValueAMD64_OpConst64(v *Value, config *Config) bool { // match: (Const64 [val]) // cond: // result: (MOVQconst [val]) - { + for { val := v.AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = val return true } - goto endc630434ae7f143ab69d5f482a9b52b5f -endc630434ae7f143ab69d5f482a9b52b5f: - ; return false } func rewriteValueAMD64_OpConst64F(v *Value, config *Config) bool { @@ -3142,15 +2764,12 @@ func rewriteValueAMD64_OpConst64F(v *Value, config *Config) bool { // match: (Const64F [val]) // cond: // result: (MOVSDconst [val]) - { + for { val := v.AuxInt v.reset(OpAMD64MOVSDconst) v.AuxInt = val return true } - goto endae6cf7189e464bbde17b98635a20f0ff -endae6cf7189e464bbde17b98635a20f0ff: - ; return false } func rewriteValueAMD64_OpConst8(v *Value, config *Config) bool { @@ -3159,15 +2778,12 @@ func rewriteValueAMD64_OpConst8(v *Value, config *Config) bool { // match: (Const8 [val]) // cond: // result: (MOVBconst [val]) - { + for { val := v.AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = val return true } - goto end200524c722ed14ca935ba47f8f30327d -end200524c722ed14ca935ba47f8f30327d: - ; return false } func rewriteValueAMD64_OpConstBool(v *Value, config *Config) bool { @@ -3176,15 +2792,12 @@ func rewriteValueAMD64_OpConstBool(v *Value, config *Config) bool { // match: (ConstBool [b]) // cond: // result: (MOVBconst [b]) - { + for { b := v.AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = b return true } - goto end6d919011283330dcbcb3826f0adc6793 -end6d919011283330dcbcb3826f0adc6793: - ; return false } func rewriteValueAMD64_OpConstNil(v *Value, config *Config) bool { @@ -3193,14 +2806,11 @@ func rewriteValueAMD64_OpConstNil(v *Value, config *Config) bool { // match: (ConstNil) // cond: // result: (MOVQconst [0]) - { + for { v.reset(OpAMD64MOVQconst) v.AuxInt = 0 return true } - goto endea557d921056c25b945a49649e4b9b91 -endea557d921056c25b945a49649e4b9b91: - ; return false } func rewriteValueAMD64_OpConvert(v *Value, config *Config) bool { @@ -3209,7 +2819,7 @@ func rewriteValueAMD64_OpConvert(v *Value, config *Config) bool { // match: (Convert x mem) // cond: // result: (MOVQconvert x mem) - { + for { t := v.Type x := v.Args[0] mem := v.Args[1] @@ -3219,9 +2829,6 @@ func rewriteValueAMD64_OpConvert(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end0aa5cd28888761ffab21bce45db361c8 -end0aa5cd28888761ffab21bce45db361c8: - ; return false } func rewriteValueAMD64_OpCvt32Fto32(v *Value, config *Config) bool { @@ -3230,15 +2837,12 @@ func rewriteValueAMD64_OpCvt32Fto32(v *Value, config *Config) bool { // match: (Cvt32Fto32 x) // cond: // result: (CVTTSS2SL x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTTSS2SL) v.AddArg(x) return true } - goto enda410209d31804e1bce7bdc235fc62342 -enda410209d31804e1bce7bdc235fc62342: - ; return false } func rewriteValueAMD64_OpCvt32Fto64(v *Value, config *Config) bool { @@ -3247,15 +2851,12 @@ func rewriteValueAMD64_OpCvt32Fto64(v *Value, config *Config) bool { // match: (Cvt32Fto64 x) // cond: // result: (CVTTSS2SQ x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTTSS2SQ) v.AddArg(x) return true } - goto enddb02fa4f3230a14d557d6c90cdadd523 -enddb02fa4f3230a14d557d6c90cdadd523: - ; return false } func rewriteValueAMD64_OpCvt32Fto64F(v *Value, config *Config) bool { @@ -3264,15 +2865,12 @@ func rewriteValueAMD64_OpCvt32Fto64F(v *Value, config *Config) bool { // match: (Cvt32Fto64F x) // cond: // result: (CVTSS2SD x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTSS2SD) v.AddArg(x) return true } - goto end0bf5d6f8d182ee2b3ab7d7c2f8ff7790 -end0bf5d6f8d182ee2b3ab7d7c2f8ff7790: - ; return false } func rewriteValueAMD64_OpCvt32to32F(v *Value, config *Config) bool { @@ -3281,15 +2879,12 @@ func rewriteValueAMD64_OpCvt32to32F(v *Value, config *Config) bool { // match: (Cvt32to32F x) // cond: // result: (CVTSL2SS x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTSL2SS) v.AddArg(x) return true } - goto ende0bdea2b21aecdb8399d6fd80ddc97d6 -ende0bdea2b21aecdb8399d6fd80ddc97d6: - ; return false } func rewriteValueAMD64_OpCvt32to64F(v *Value, config *Config) bool { @@ -3298,15 +2893,12 @@ func rewriteValueAMD64_OpCvt32to64F(v *Value, config *Config) bool { // match: (Cvt32to64F x) // cond: // result: (CVTSL2SD x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTSL2SD) v.AddArg(x) return true } - goto ende06cbe745112bcf0e6612788ef71c958 -ende06cbe745112bcf0e6612788ef71c958: - ; return false } func rewriteValueAMD64_OpCvt64Fto32(v *Value, config *Config) bool { @@ -3315,15 +2907,12 @@ func rewriteValueAMD64_OpCvt64Fto32(v *Value, config *Config) bool { // match: (Cvt64Fto32 x) // cond: // result: (CVTTSD2SL x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTTSD2SL) v.AddArg(x) return true } - goto endc213dd690dfe568607dec717b2c385b7 -endc213dd690dfe568607dec717b2c385b7: - ; return false } func rewriteValueAMD64_OpCvt64Fto32F(v *Value, config *Config) bool { @@ -3332,15 +2921,12 @@ func rewriteValueAMD64_OpCvt64Fto32F(v *Value, config *Config) bool { // match: (Cvt64Fto32F x) // cond: // result: (CVTSD2SS x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTSD2SS) v.AddArg(x) return true } - goto endfd70158a96824ced99712d606c607d94 -endfd70158a96824ced99712d606c607d94: - ; return false } func rewriteValueAMD64_OpCvt64Fto64(v *Value, config *Config) bool { @@ -3349,15 +2935,12 @@ func rewriteValueAMD64_OpCvt64Fto64(v *Value, config *Config) bool { // match: (Cvt64Fto64 x) // cond: // result: (CVTTSD2SQ x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTTSD2SQ) v.AddArg(x) return true } - goto end0bf3e4468047fd20714266ff05797454 -end0bf3e4468047fd20714266ff05797454: - ; return false } func rewriteValueAMD64_OpCvt64to32F(v *Value, config *Config) bool { @@ -3366,15 +2949,12 @@ func rewriteValueAMD64_OpCvt64to32F(v *Value, config *Config) bool { // match: (Cvt64to32F x) // cond: // result: (CVTSQ2SS x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTSQ2SS) v.AddArg(x) return true } - goto endfecc08b8a8cbd2bf3be21a077c4d0d40 -endfecc08b8a8cbd2bf3be21a077c4d0d40: - ; return false } func rewriteValueAMD64_OpCvt64to64F(v *Value, config *Config) bool { @@ -3383,15 +2963,12 @@ func rewriteValueAMD64_OpCvt64to64F(v *Value, config *Config) bool { // match: (Cvt64to64F x) // cond: // result: (CVTSQ2SD x) - { + for { x := v.Args[0] v.reset(OpAMD64CVTSQ2SD) v.AddArg(x) return true } - goto endf74ce5df659f385f75c61187b515a5d0 -endf74ce5df659f385f75c61187b515a5d0: - ; return false } func rewriteValueAMD64_OpDeferCall(v *Value, config *Config) bool { @@ -3400,7 +2977,7 @@ func rewriteValueAMD64_OpDeferCall(v *Value, config *Config) bool { // match: (DeferCall [argwid] mem) // cond: // result: (CALLdefer [argwid] mem) - { + for { argwid := v.AuxInt mem := v.Args[0] v.reset(OpAMD64CALLdefer) @@ -3408,9 +2985,6 @@ func rewriteValueAMD64_OpDeferCall(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end1c408581037450df959dd1fb7554a022 -end1c408581037450df959dd1fb7554a022: - ; return false } func rewriteValueAMD64_OpDiv16(v *Value, config *Config) bool { @@ -3419,7 +2993,7 @@ func rewriteValueAMD64_OpDiv16(v *Value, config *Config) bool { // match: (Div16 x y) // cond: // result: (DIVW x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVW) @@ -3427,9 +3001,6 @@ func rewriteValueAMD64_OpDiv16(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endb60a86e606726640c84d3e1e5a5ce890 -endb60a86e606726640c84d3e1e5a5ce890: - ; return false } func rewriteValueAMD64_OpDiv16u(v *Value, config *Config) bool { @@ -3438,7 +3009,7 @@ func rewriteValueAMD64_OpDiv16u(v *Value, config *Config) bool { // match: (Div16u x y) // cond: // result: (DIVWU x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVWU) @@ -3446,9 +3017,6 @@ func rewriteValueAMD64_OpDiv16u(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end6af9e212a865593e506bfdf7db67c9ec -end6af9e212a865593e506bfdf7db67c9ec: - ; return false } func rewriteValueAMD64_OpDiv32(v *Value, config *Config) bool { @@ -3457,7 +3025,7 @@ func rewriteValueAMD64_OpDiv32(v *Value, config *Config) bool { // match: (Div32 x y) // cond: // result: (DIVL x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVL) @@ -3465,9 +3033,6 @@ func rewriteValueAMD64_OpDiv32(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endf20ac71407e57c2904684d3cc33cf697 -endf20ac71407e57c2904684d3cc33cf697: - ; return false } func rewriteValueAMD64_OpDiv32F(v *Value, config *Config) bool { @@ -3476,7 +3041,7 @@ func rewriteValueAMD64_OpDiv32F(v *Value, config *Config) bool { // match: (Div32F x y) // cond: // result: (DIVSS x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVSS) @@ -3484,9 +3049,6 @@ func rewriteValueAMD64_OpDiv32F(v *Value, config *Config) bool { v.AddArg(y) return true } - goto enddca0462c7b176c4138854d7d5627ab5b -enddca0462c7b176c4138854d7d5627ab5b: - ; return false } func rewriteValueAMD64_OpDiv32u(v *Value, config *Config) bool { @@ -3495,7 +3057,7 @@ func rewriteValueAMD64_OpDiv32u(v *Value, config *Config) bool { // match: (Div32u x y) // cond: // result: (DIVLU x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVLU) @@ -3503,9 +3065,6 @@ func rewriteValueAMD64_OpDiv32u(v *Value, config *Config) bool { v.AddArg(y) return true } - goto enda22604d23eeb1298008c97b817f60bbd -enda22604d23eeb1298008c97b817f60bbd: - ; return false } func rewriteValueAMD64_OpDiv64(v *Value, config *Config) bool { @@ -3514,7 +3073,7 @@ func rewriteValueAMD64_OpDiv64(v *Value, config *Config) bool { // match: (Div64 x y) // cond: // result: (DIVQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVQ) @@ -3522,9 +3081,6 @@ func rewriteValueAMD64_OpDiv64(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end86490d9b337333dfc09a413e1e0120a9 -end86490d9b337333dfc09a413e1e0120a9: - ; return false } func rewriteValueAMD64_OpDiv64F(v *Value, config *Config) bool { @@ -3533,7 +3089,7 @@ func rewriteValueAMD64_OpDiv64F(v *Value, config *Config) bool { // match: (Div64F x y) // cond: // result: (DIVSD x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVSD) @@ -3541,9 +3097,6 @@ func rewriteValueAMD64_OpDiv64F(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end12299d76db5144a60f564d34ba97eb43 -end12299d76db5144a60f564d34ba97eb43: - ; return false } func rewriteValueAMD64_OpDiv64u(v *Value, config *Config) bool { @@ -3552,7 +3105,7 @@ func rewriteValueAMD64_OpDiv64u(v *Value, config *Config) bool { // match: (Div64u x y) // cond: // result: (DIVQU x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVQU) @@ -3560,9 +3113,6 @@ func rewriteValueAMD64_OpDiv64u(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endf871d8b397e5fad6a5b500cc0c759a8d -endf871d8b397e5fad6a5b500cc0c759a8d: - ; return false } func rewriteValueAMD64_OpDiv8(v *Value, config *Config) bool { @@ -3571,7 +3121,7 @@ func rewriteValueAMD64_OpDiv8(v *Value, config *Config) bool { // match: (Div8 x y) // cond: // result: (DIVW (SignExt8to16 x) (SignExt8to16 y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVW) @@ -3583,9 +3133,6 @@ func rewriteValueAMD64_OpDiv8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endeee2bc780a73ec2ccb1a66c527816ee0 -endeee2bc780a73ec2ccb1a66c527816ee0: - ; return false } func rewriteValueAMD64_OpDiv8u(v *Value, config *Config) bool { @@ -3594,7 +3141,7 @@ func rewriteValueAMD64_OpDiv8u(v *Value, config *Config) bool { // match: (Div8u x y) // cond: // result: (DIVWU (ZeroExt8to16 x) (ZeroExt8to16 y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64DIVWU) @@ -3606,9 +3153,6 @@ func rewriteValueAMD64_OpDiv8u(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end39da6664d6434d844303f6924cc875dd -end39da6664d6434d844303f6924cc875dd: - ; return false } func rewriteValueAMD64_OpEq16(v *Value, config *Config) bool { @@ -3617,7 +3161,7 @@ func rewriteValueAMD64_OpEq16(v *Value, config *Config) bool { // match: (Eq16 x y) // cond: // result: (SETEQ (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETEQ) @@ -3627,9 +3171,6 @@ func rewriteValueAMD64_OpEq16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endd7f668b1d23603b0949953ee8dec8107 -endd7f668b1d23603b0949953ee8dec8107: - ; return false } func rewriteValueAMD64_OpEq32(v *Value, config *Config) bool { @@ -3638,7 +3179,7 @@ func rewriteValueAMD64_OpEq32(v *Value, config *Config) bool { // match: (Eq32 x y) // cond: // result: (SETEQ (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETEQ) @@ -3648,9 +3189,6 @@ func rewriteValueAMD64_OpEq32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endf28041ae0c73fb341cc0d2f4903fb2fb -endf28041ae0c73fb341cc0d2f4903fb2fb: - ; return false } func rewriteValueAMD64_OpEq32F(v *Value, config *Config) bool { @@ -3659,7 +3197,7 @@ func rewriteValueAMD64_OpEq32F(v *Value, config *Config) bool { // match: (Eq32F x y) // cond: // result: (SETEQF (UCOMISS x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETEQF) @@ -3669,9 +3207,6 @@ func rewriteValueAMD64_OpEq32F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endb2c12933769e5faa8fc238048e113dee -endb2c12933769e5faa8fc238048e113dee: - ; return false } func rewriteValueAMD64_OpEq64(v *Value, config *Config) bool { @@ -3680,7 +3215,7 @@ func rewriteValueAMD64_OpEq64(v *Value, config *Config) bool { // match: (Eq64 x y) // cond: // result: (SETEQ (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETEQ) @@ -3690,9 +3225,6 @@ func rewriteValueAMD64_OpEq64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto ende07a380487b710b51bcd5aa6d3144b8c -ende07a380487b710b51bcd5aa6d3144b8c: - ; return false } func rewriteValueAMD64_OpEq64F(v *Value, config *Config) bool { @@ -3701,7 +3233,7 @@ func rewriteValueAMD64_OpEq64F(v *Value, config *Config) bool { // match: (Eq64F x y) // cond: // result: (SETEQF (UCOMISD x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETEQF) @@ -3711,9 +3243,6 @@ func rewriteValueAMD64_OpEq64F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end68e20c0c1b3ee62fbd17af07ac100704 -end68e20c0c1b3ee62fbd17af07ac100704: - ; return false } func rewriteValueAMD64_OpEq8(v *Value, config *Config) bool { @@ -3722,7 +3251,7 @@ func rewriteValueAMD64_OpEq8(v *Value, config *Config) bool { // match: (Eq8 x y) // cond: // result: (SETEQ (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETEQ) @@ -3732,9 +3261,6 @@ func rewriteValueAMD64_OpEq8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end359e5a51d2ab928a455f0ae5adb42ab0 -end359e5a51d2ab928a455f0ae5adb42ab0: - ; return false } func rewriteValueAMD64_OpEqPtr(v *Value, config *Config) bool { @@ -3743,7 +3269,7 @@ func rewriteValueAMD64_OpEqPtr(v *Value, config *Config) bool { // match: (EqPtr x y) // cond: // result: (SETEQ (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETEQ) @@ -3753,9 +3279,6 @@ func rewriteValueAMD64_OpEqPtr(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endf19bd3c0eb99d15718bef4066d62560c -endf19bd3c0eb99d15718bef4066d62560c: - ; return false } func rewriteValueAMD64_OpGeq16(v *Value, config *Config) bool { @@ -3764,7 +3287,7 @@ func rewriteValueAMD64_OpGeq16(v *Value, config *Config) bool { // match: (Geq16 x y) // cond: // result: (SETGE (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGE) @@ -3774,9 +3297,6 @@ func rewriteValueAMD64_OpGeq16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end0a3f723d5c0b877c473b0043d814867b -end0a3f723d5c0b877c473b0043d814867b: - ; return false } func rewriteValueAMD64_OpGeq16U(v *Value, config *Config) bool { @@ -3785,7 +3305,7 @@ func rewriteValueAMD64_OpGeq16U(v *Value, config *Config) bool { // match: (Geq16U x y) // cond: // result: (SETAE (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETAE) @@ -3795,9 +3315,6 @@ func rewriteValueAMD64_OpGeq16U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end79d754a28ee34eff95140635b26f0248 -end79d754a28ee34eff95140635b26f0248: - ; return false } func rewriteValueAMD64_OpGeq32(v *Value, config *Config) bool { @@ -3806,7 +3323,7 @@ func rewriteValueAMD64_OpGeq32(v *Value, config *Config) bool { // match: (Geq32 x y) // cond: // result: (SETGE (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGE) @@ -3816,9 +3333,6 @@ func rewriteValueAMD64_OpGeq32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endfb1f6286a1b153b2a3f5b8548a782c8c -endfb1f6286a1b153b2a3f5b8548a782c8c: - ; return false } func rewriteValueAMD64_OpGeq32F(v *Value, config *Config) bool { @@ -3827,7 +3341,7 @@ func rewriteValueAMD64_OpGeq32F(v *Value, config *Config) bool { // match: (Geq32F x y) // cond: // result: (SETGEF (UCOMISS x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGEF) @@ -3837,9 +3351,6 @@ func rewriteValueAMD64_OpGeq32F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end7a8d6107a945410e64db06669a61da97 -end7a8d6107a945410e64db06669a61da97: - ; return false } func rewriteValueAMD64_OpGeq32U(v *Value, config *Config) bool { @@ -3848,7 +3359,7 @@ func rewriteValueAMD64_OpGeq32U(v *Value, config *Config) bool { // match: (Geq32U x y) // cond: // result: (SETAE (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETAE) @@ -3858,9 +3369,6 @@ func rewriteValueAMD64_OpGeq32U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endc5d3478a626df01ede063564f4cb80d0 -endc5d3478a626df01ede063564f4cb80d0: - ; return false } func rewriteValueAMD64_OpGeq64(v *Value, config *Config) bool { @@ -3869,7 +3377,7 @@ func rewriteValueAMD64_OpGeq64(v *Value, config *Config) bool { // match: (Geq64 x y) // cond: // result: (SETGE (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGE) @@ -3879,9 +3387,6 @@ func rewriteValueAMD64_OpGeq64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end74bddb7905ab865de5b041e7e4789911 -end74bddb7905ab865de5b041e7e4789911: - ; return false } func rewriteValueAMD64_OpGeq64F(v *Value, config *Config) bool { @@ -3890,7 +3395,7 @@ func rewriteValueAMD64_OpGeq64F(v *Value, config *Config) bool { // match: (Geq64F x y) // cond: // result: (SETGEF (UCOMISD x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGEF) @@ -3900,9 +3405,6 @@ func rewriteValueAMD64_OpGeq64F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end9fac9bd98ef58b7fbbe1a31f84bdcccf -end9fac9bd98ef58b7fbbe1a31f84bdcccf: - ; return false } func rewriteValueAMD64_OpGeq64U(v *Value, config *Config) bool { @@ -3911,7 +3413,7 @@ func rewriteValueAMD64_OpGeq64U(v *Value, config *Config) bool { // match: (Geq64U x y) // cond: // result: (SETAE (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETAE) @@ -3921,9 +3423,6 @@ func rewriteValueAMD64_OpGeq64U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end95101721fc8f5be9969e50e364143e7f -end95101721fc8f5be9969e50e364143e7f: - ; return false } func rewriteValueAMD64_OpGeq8(v *Value, config *Config) bool { @@ -3932,7 +3431,7 @@ func rewriteValueAMD64_OpGeq8(v *Value, config *Config) bool { // match: (Geq8 x y) // cond: // result: (SETGE (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGE) @@ -3942,9 +3441,6 @@ func rewriteValueAMD64_OpGeq8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end983070a3db317bdb64b5a0fb104d267c -end983070a3db317bdb64b5a0fb104d267c: - ; return false } func rewriteValueAMD64_OpGeq8U(v *Value, config *Config) bool { @@ -3953,7 +3449,7 @@ func rewriteValueAMD64_OpGeq8U(v *Value, config *Config) bool { // match: (Geq8U x y) // cond: // result: (SETAE (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETAE) @@ -3963,9 +3459,6 @@ func rewriteValueAMD64_OpGeq8U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto enda617119faaccc0f0c2d23548116cf331 -enda617119faaccc0f0c2d23548116cf331: - ; return false } func rewriteValueAMD64_OpGetClosurePtr(v *Value, config *Config) bool { @@ -3974,13 +3467,10 @@ func rewriteValueAMD64_OpGetClosurePtr(v *Value, config *Config) bool { // match: (GetClosurePtr) // cond: // result: (LoweredGetClosurePtr) - { + for { v.reset(OpAMD64LoweredGetClosurePtr) return true } - goto end6fd0b53f0acb4d35e7d7fa78d2ca1392 -end6fd0b53f0acb4d35e7d7fa78d2ca1392: - ; return false } func rewriteValueAMD64_OpGetG(v *Value, config *Config) bool { @@ -3989,15 +3479,12 @@ func rewriteValueAMD64_OpGetG(v *Value, config *Config) bool { // match: (GetG mem) // cond: // result: (LoweredGetG mem) - { + for { mem := v.Args[0] v.reset(OpAMD64LoweredGetG) v.AddArg(mem) return true } - goto endf543eaaf68c4bef1d4cdc8ba19683723 -endf543eaaf68c4bef1d4cdc8ba19683723: - ; return false } func rewriteValueAMD64_OpGoCall(v *Value, config *Config) bool { @@ -4006,7 +3493,7 @@ func rewriteValueAMD64_OpGoCall(v *Value, config *Config) bool { // match: (GoCall [argwid] mem) // cond: // result: (CALLgo [argwid] mem) - { + for { argwid := v.AuxInt mem := v.Args[0] v.reset(OpAMD64CALLgo) @@ -4014,9 +3501,6 @@ func rewriteValueAMD64_OpGoCall(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end1cef0f92c46e6aaa2c7abdf5f2794baf -end1cef0f92c46e6aaa2c7abdf5f2794baf: - ; return false } func rewriteValueAMD64_OpGreater16(v *Value, config *Config) bool { @@ -4025,7 +3509,7 @@ func rewriteValueAMD64_OpGreater16(v *Value, config *Config) bool { // match: (Greater16 x y) // cond: // result: (SETG (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETG) @@ -4035,9 +3519,6 @@ func rewriteValueAMD64_OpGreater16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end4e4a1307c61240af9a86d8fe4f834ee8 -end4e4a1307c61240af9a86d8fe4f834ee8: - ; return false } func rewriteValueAMD64_OpGreater16U(v *Value, config *Config) bool { @@ -4046,7 +3527,7 @@ func rewriteValueAMD64_OpGreater16U(v *Value, config *Config) bool { // match: (Greater16U x y) // cond: // result: (SETA (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETA) @@ -4056,9 +3537,6 @@ func rewriteValueAMD64_OpGreater16U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end7c66c75f4b8ec1db593f3e60cfba9592 -end7c66c75f4b8ec1db593f3e60cfba9592: - ; return false } func rewriteValueAMD64_OpGreater32(v *Value, config *Config) bool { @@ -4067,7 +3545,7 @@ func rewriteValueAMD64_OpGreater32(v *Value, config *Config) bool { // match: (Greater32 x y) // cond: // result: (SETG (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETG) @@ -4077,9 +3555,6 @@ func rewriteValueAMD64_OpGreater32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end6fb0eae4a0e0e81b4afb085d398d873b -end6fb0eae4a0e0e81b4afb085d398d873b: - ; return false } func rewriteValueAMD64_OpGreater32F(v *Value, config *Config) bool { @@ -4088,7 +3563,7 @@ func rewriteValueAMD64_OpGreater32F(v *Value, config *Config) bool { // match: (Greater32F x y) // cond: // result: (SETGF (UCOMISS x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGF) @@ -4098,9 +3573,6 @@ func rewriteValueAMD64_OpGreater32F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end94df0bd5cedad8ce8021df1b24da40c6 -end94df0bd5cedad8ce8021df1b24da40c6: - ; return false } func rewriteValueAMD64_OpGreater32U(v *Value, config *Config) bool { @@ -4109,7 +3581,7 @@ func rewriteValueAMD64_OpGreater32U(v *Value, config *Config) bool { // match: (Greater32U x y) // cond: // result: (SETA (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETA) @@ -4119,9 +3591,6 @@ func rewriteValueAMD64_OpGreater32U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end18da022a28eae8bd0771e0c948aadaf8 -end18da022a28eae8bd0771e0c948aadaf8: - ; return false } func rewriteValueAMD64_OpGreater64(v *Value, config *Config) bool { @@ -4130,7 +3599,7 @@ func rewriteValueAMD64_OpGreater64(v *Value, config *Config) bool { // match: (Greater64 x y) // cond: // result: (SETG (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETG) @@ -4140,9 +3609,6 @@ func rewriteValueAMD64_OpGreater64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endc025c908708f939780fba0da0c1148b4 -endc025c908708f939780fba0da0c1148b4: - ; return false } func rewriteValueAMD64_OpGreater64F(v *Value, config *Config) bool { @@ -4151,7 +3617,7 @@ func rewriteValueAMD64_OpGreater64F(v *Value, config *Config) bool { // match: (Greater64F x y) // cond: // result: (SETGF (UCOMISD x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGF) @@ -4161,9 +3627,6 @@ func rewriteValueAMD64_OpGreater64F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end033ca5181b18376e7215c02812ef5a6b -end033ca5181b18376e7215c02812ef5a6b: - ; return false } func rewriteValueAMD64_OpGreater64U(v *Value, config *Config) bool { @@ -4172,7 +3635,7 @@ func rewriteValueAMD64_OpGreater64U(v *Value, config *Config) bool { // match: (Greater64U x y) // cond: // result: (SETA (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETA) @@ -4182,9 +3645,6 @@ func rewriteValueAMD64_OpGreater64U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endb3e25347041760a04d3fc8321c3f3d00 -endb3e25347041760a04d3fc8321c3f3d00: - ; return false } func rewriteValueAMD64_OpGreater8(v *Value, config *Config) bool { @@ -4193,7 +3653,7 @@ func rewriteValueAMD64_OpGreater8(v *Value, config *Config) bool { // match: (Greater8 x y) // cond: // result: (SETG (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETG) @@ -4203,9 +3663,6 @@ func rewriteValueAMD64_OpGreater8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto enda3eeb5da2e69cb54a1515601d4b360d4 -enda3eeb5da2e69cb54a1515601d4b360d4: - ; return false } func rewriteValueAMD64_OpGreater8U(v *Value, config *Config) bool { @@ -4214,7 +3671,7 @@ func rewriteValueAMD64_OpGreater8U(v *Value, config *Config) bool { // match: (Greater8U x y) // cond: // result: (SETA (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETA) @@ -4224,9 +3681,6 @@ func rewriteValueAMD64_OpGreater8U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endd2027f3b6471262f42b90c8cc0413667 -endd2027f3b6471262f42b90c8cc0413667: - ; return false } func rewriteValueAMD64_OpHmul16(v *Value, config *Config) bool { @@ -4235,7 +3689,7 @@ func rewriteValueAMD64_OpHmul16(v *Value, config *Config) bool { // match: (Hmul16 x y) // cond: // result: (HMULW x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64HMULW) @@ -4243,9 +3697,6 @@ func rewriteValueAMD64_OpHmul16(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end1b9ff394bb3b06fc109637656b6875f5 -end1b9ff394bb3b06fc109637656b6875f5: - ; return false } func rewriteValueAMD64_OpHmul16u(v *Value, config *Config) bool { @@ -4254,7 +3705,7 @@ func rewriteValueAMD64_OpHmul16u(v *Value, config *Config) bool { // match: (Hmul16u x y) // cond: // result: (HMULWU x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64HMULWU) @@ -4262,9 +3713,6 @@ func rewriteValueAMD64_OpHmul16u(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endee9089e794a43f2ce1619a6ef61670f4 -endee9089e794a43f2ce1619a6ef61670f4: - ; return false } func rewriteValueAMD64_OpHmul32(v *Value, config *Config) bool { @@ -4273,7 +3721,7 @@ func rewriteValueAMD64_OpHmul32(v *Value, config *Config) bool { // match: (Hmul32 x y) // cond: // result: (HMULL x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64HMULL) @@ -4281,9 +3729,6 @@ func rewriteValueAMD64_OpHmul32(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end7c83c91ef2634f0b1da4f49350b437b1 -end7c83c91ef2634f0b1da4f49350b437b1: - ; return false } func rewriteValueAMD64_OpHmul32u(v *Value, config *Config) bool { @@ -4292,7 +3737,7 @@ func rewriteValueAMD64_OpHmul32u(v *Value, config *Config) bool { // match: (Hmul32u x y) // cond: // result: (HMULLU x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64HMULLU) @@ -4300,9 +3745,6 @@ func rewriteValueAMD64_OpHmul32u(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end3c4f36611dc8815aa2a63d4ec0eaa06d -end3c4f36611dc8815aa2a63d4ec0eaa06d: - ; return false } func rewriteValueAMD64_OpHmul8(v *Value, config *Config) bool { @@ -4311,7 +3753,7 @@ func rewriteValueAMD64_OpHmul8(v *Value, config *Config) bool { // match: (Hmul8 x y) // cond: // result: (HMULB x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64HMULB) @@ -4319,9 +3761,6 @@ func rewriteValueAMD64_OpHmul8(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end51b2cc9f1ed15314e68fc81024f281a7 -end51b2cc9f1ed15314e68fc81024f281a7: - ; return false } func rewriteValueAMD64_OpHmul8u(v *Value, config *Config) bool { @@ -4330,7 +3769,7 @@ func rewriteValueAMD64_OpHmul8u(v *Value, config *Config) bool { // match: (Hmul8u x y) // cond: // result: (HMULBU x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64HMULBU) @@ -4338,9 +3777,6 @@ func rewriteValueAMD64_OpHmul8u(v *Value, config *Config) bool { v.AddArg(y) return true } - goto ende68d7b3a3c774cedc3522af9d635c39d -ende68d7b3a3c774cedc3522af9d635c39d: - ; return false } func rewriteValueAMD64_OpITab(v *Value, config *Config) bool { @@ -4349,9 +3785,9 @@ func rewriteValueAMD64_OpITab(v *Value, config *Config) bool { // match: (ITab (Load ptr mem)) // cond: // result: (MOVQload ptr mem) - { + for { if v.Args[0].Op != OpLoad { - goto enda49fcae3630a097c78aa58189c90a97a + break } ptr := v.Args[0].Args[0] mem := v.Args[0].Args[1] @@ -4360,9 +3796,6 @@ func rewriteValueAMD64_OpITab(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto enda49fcae3630a097c78aa58189c90a97a -enda49fcae3630a097c78aa58189c90a97a: - ; return false } func rewriteValueAMD64_OpInterCall(v *Value, config *Config) bool { @@ -4371,7 +3804,7 @@ func rewriteValueAMD64_OpInterCall(v *Value, config *Config) bool { // match: (InterCall [argwid] entry mem) // cond: // result: (CALLinter [argwid] entry mem) - { + for { argwid := v.AuxInt entry := v.Args[0] mem := v.Args[1] @@ -4381,9 +3814,6 @@ func rewriteValueAMD64_OpInterCall(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endc04351e492ed362efc6aa75121bca305 -endc04351e492ed362efc6aa75121bca305: - ; return false } func rewriteValueAMD64_OpIsInBounds(v *Value, config *Config) bool { @@ -4392,7 +3822,7 @@ func rewriteValueAMD64_OpIsInBounds(v *Value, config *Config) bool { // match: (IsInBounds idx len) // cond: // result: (SETB (CMPQ idx len)) - { + for { idx := v.Args[0] len := v.Args[1] v.reset(OpAMD64SETB) @@ -4402,9 +3832,6 @@ func rewriteValueAMD64_OpIsInBounds(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endfff988d5f1912886d73be3bb563c37d9 -endfff988d5f1912886d73be3bb563c37d9: - ; return false } func rewriteValueAMD64_OpIsNonNil(v *Value, config *Config) bool { @@ -4413,7 +3840,7 @@ func rewriteValueAMD64_OpIsNonNil(v *Value, config *Config) bool { // match: (IsNonNil p) // cond: // result: (SETNE (TESTQ p p)) - { + for { p := v.Args[0] v.reset(OpAMD64SETNE) v0 := b.NewValue0(v.Line, OpAMD64TESTQ, TypeFlags) @@ -4422,9 +3849,6 @@ func rewriteValueAMD64_OpIsNonNil(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end0af5ec868ede9ea73fb0602d54b863e9 -end0af5ec868ede9ea73fb0602d54b863e9: - ; return false } func rewriteValueAMD64_OpIsSliceInBounds(v *Value, config *Config) bool { @@ -4433,7 +3857,7 @@ func rewriteValueAMD64_OpIsSliceInBounds(v *Value, config *Config) bool { // match: (IsSliceInBounds idx len) // cond: // result: (SETBE (CMPQ idx len)) - { + for { idx := v.Args[0] len := v.Args[1] v.reset(OpAMD64SETBE) @@ -4443,9 +3867,6 @@ func rewriteValueAMD64_OpIsSliceInBounds(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end02799ad95fe7fb5ce3c2c8ab313b737c -end02799ad95fe7fb5ce3c2c8ab313b737c: - ; return false } func rewriteValueAMD64_OpAMD64LEAQ(v *Value, config *Config) bool { @@ -4454,11 +3875,11 @@ func rewriteValueAMD64_OpAMD64LEAQ(v *Value, config *Config) bool { // match: (LEAQ [c] {s} (ADDQconst [d] x)) // cond: // result: (LEAQ [c+d] {s} x) - { + for { c := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto endb764d049517eb7c125b442ec9246c2c6 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -4468,22 +3889,19 @@ func rewriteValueAMD64_OpAMD64LEAQ(v *Value, config *Config) bool { v.AddArg(x) return true } - goto endb764d049517eb7c125b442ec9246c2c6 -endb764d049517eb7c125b442ec9246c2c6: - ; // match: (LEAQ [c] {s} (ADDQ x y)) // cond: x.Op != OpSB && y.Op != OpSB // result: (LEAQ1 [c] {s} x y) - { + for { c := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQ { - goto end8ee88dfb1a197184ebe10e479fafd322 + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if !(x.Op != OpSB && y.Op != OpSB) { - goto end8ee88dfb1a197184ebe10e479fafd322 + break } v.reset(OpAMD64LEAQ1) v.AuxInt = c @@ -4492,23 +3910,20 @@ endb764d049517eb7c125b442ec9246c2c6: v.AddArg(y) return true } - goto end8ee88dfb1a197184ebe10e479fafd322 -end8ee88dfb1a197184ebe10e479fafd322: - ; // match: (LEAQ [off1] {sym1} (LEAQ [off2] {sym2} x)) // cond: canMergeSym(sym1, sym2) // result: (LEAQ [addOff(off1,off2)] {mergeSym(sym1,sym2)} x) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end2e2249051d6776a92bcb0d83107e0d82 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux x := v.Args[0].Args[0] if !(canMergeSym(sym1, sym2)) { - goto end2e2249051d6776a92bcb0d83107e0d82 + break } v.reset(OpAMD64LEAQ) v.AuxInt = addOff(off1, off2) @@ -4516,24 +3931,21 @@ end8ee88dfb1a197184ebe10e479fafd322: v.AddArg(x) return true } - goto end2e2249051d6776a92bcb0d83107e0d82 -end2e2249051d6776a92bcb0d83107e0d82: - ; // match: (LEAQ [off1] {sym1} (LEAQ1 [off2] {sym2} x y)) // cond: canMergeSym(sym1, sym2) // result: (LEAQ1 [addOff(off1,off2)] {mergeSym(sym1,sym2)} x y) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ1 { - goto end4e2502574680cc8e02dcc07561e96ef9 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux x := v.Args[0].Args[0] y := v.Args[0].Args[1] if !(canMergeSym(sym1, sym2)) { - goto end4e2502574680cc8e02dcc07561e96ef9 + break } v.reset(OpAMD64LEAQ1) v.AuxInt = addOff(off1, off2) @@ -4542,24 +3954,21 @@ end2e2249051d6776a92bcb0d83107e0d82: v.AddArg(y) return true } - goto end4e2502574680cc8e02dcc07561e96ef9 -end4e2502574680cc8e02dcc07561e96ef9: - ; // match: (LEAQ [off1] {sym1} (LEAQ2 [off2] {sym2} x y)) // cond: canMergeSym(sym1, sym2) // result: (LEAQ2 [addOff(off1,off2)] {mergeSym(sym1,sym2)} x y) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ2 { - goto end92e54b1fbb5ba0b17a6006fe56b4d57b + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux x := v.Args[0].Args[0] y := v.Args[0].Args[1] if !(canMergeSym(sym1, sym2)) { - goto end92e54b1fbb5ba0b17a6006fe56b4d57b + break } v.reset(OpAMD64LEAQ2) v.AuxInt = addOff(off1, off2) @@ -4568,24 +3977,21 @@ end4e2502574680cc8e02dcc07561e96ef9: v.AddArg(y) return true } - goto end92e54b1fbb5ba0b17a6006fe56b4d57b -end92e54b1fbb5ba0b17a6006fe56b4d57b: - ; // match: (LEAQ [off1] {sym1} (LEAQ4 [off2] {sym2} x y)) // cond: canMergeSym(sym1, sym2) // result: (LEAQ4 [addOff(off1,off2)] {mergeSym(sym1,sym2)} x y) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ4 { - goto end5da4c89d542d34d0d7f8848c3ea0fead + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux x := v.Args[0].Args[0] y := v.Args[0].Args[1] if !(canMergeSym(sym1, sym2)) { - goto end5da4c89d542d34d0d7f8848c3ea0fead + break } v.reset(OpAMD64LEAQ4) v.AuxInt = addOff(off1, off2) @@ -4594,24 +4000,21 @@ end92e54b1fbb5ba0b17a6006fe56b4d57b: v.AddArg(y) return true } - goto end5da4c89d542d34d0d7f8848c3ea0fead -end5da4c89d542d34d0d7f8848c3ea0fead: - ; // match: (LEAQ [off1] {sym1} (LEAQ8 [off2] {sym2} x y)) // cond: canMergeSym(sym1, sym2) // result: (LEAQ8 [addOff(off1,off2)] {mergeSym(sym1,sym2)} x y) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ8 { - goto endc051937df5f12598e76c0923b5a60a39 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux x := v.Args[0].Args[0] y := v.Args[0].Args[1] if !(canMergeSym(sym1, sym2)) { - goto endc051937df5f12598e76c0923b5a60a39 + break } v.reset(OpAMD64LEAQ8) v.AuxInt = addOff(off1, off2) @@ -4620,9 +4023,6 @@ end5da4c89d542d34d0d7f8848c3ea0fead: v.AddArg(y) return true } - goto endc051937df5f12598e76c0923b5a60a39 -endc051937df5f12598e76c0923b5a60a39: - ; return false } func rewriteValueAMD64_OpAMD64LEAQ1(v *Value, config *Config) bool { @@ -4631,17 +4031,17 @@ func rewriteValueAMD64_OpAMD64LEAQ1(v *Value, config *Config) bool { // match: (LEAQ1 [c] {s} (ADDQconst [d] x) y) // cond: x.Op != OpSB // result: (LEAQ1 [c+d] {s} x y) - { + for { c := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto endcee67e6c005f58a521fc4f33a98b11c6 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] y := v.Args[1] if !(x.Op != OpSB) { - goto endcee67e6c005f58a521fc4f33a98b11c6 + break } v.reset(OpAMD64LEAQ1) v.AuxInt = c + d @@ -4650,23 +4050,20 @@ func rewriteValueAMD64_OpAMD64LEAQ1(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endcee67e6c005f58a521fc4f33a98b11c6 -endcee67e6c005f58a521fc4f33a98b11c6: - ; // match: (LEAQ1 [c] {s} x (ADDQconst [d] y)) // cond: y.Op != OpSB // result: (LEAQ1 [c+d] {s} x y) - { + for { c := v.AuxInt s := v.Aux x := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto end8ae759893af2b32c6dbcdeeca12ca207 + break } d := v.Args[1].AuxInt y := v.Args[1].Args[0] if !(y.Op != OpSB) { - goto end8ae759893af2b32c6dbcdeeca12ca207 + break } v.reset(OpAMD64LEAQ1) v.AuxInt = c + d @@ -4675,24 +4072,21 @@ endcee67e6c005f58a521fc4f33a98b11c6: v.AddArg(y) return true } - goto end8ae759893af2b32c6dbcdeeca12ca207 -end8ae759893af2b32c6dbcdeeca12ca207: - ; // match: (LEAQ1 [off1] {sym1} (LEAQ [off2] {sym2} x) y) // cond: canMergeSym(sym1, sym2) && x.Op != OpSB // result: (LEAQ1 [addOff(off1,off2)] {mergeSym(sym1,sym2)} x y) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end3b837b0ce1bd6a79804a28ee529fc65b + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux x := v.Args[0].Args[0] y := v.Args[1] if !(canMergeSym(sym1, sym2) && x.Op != OpSB) { - goto end3b837b0ce1bd6a79804a28ee529fc65b + break } v.reset(OpAMD64LEAQ1) v.AuxInt = addOff(off1, off2) @@ -4701,24 +4095,21 @@ end8ae759893af2b32c6dbcdeeca12ca207: v.AddArg(y) return true } - goto end3b837b0ce1bd6a79804a28ee529fc65b -end3b837b0ce1bd6a79804a28ee529fc65b: - ; // match: (LEAQ1 [off1] {sym1} x (LEAQ [off2] {sym2} y)) // cond: canMergeSym(sym1, sym2) && y.Op != OpSB // result: (LEAQ1 [addOff(off1,off2)] {mergeSym(sym1,sym2)} x y) - { + for { off1 := v.AuxInt sym1 := v.Aux x := v.Args[0] if v.Args[1].Op != OpAMD64LEAQ { - goto endfd9dd9448d726fc7d82274b404cddb67 + break } off2 := v.Args[1].AuxInt sym2 := v.Args[1].Aux y := v.Args[1].Args[0] if !(canMergeSym(sym1, sym2) && y.Op != OpSB) { - goto endfd9dd9448d726fc7d82274b404cddb67 + break } v.reset(OpAMD64LEAQ1) v.AuxInt = addOff(off1, off2) @@ -4727,9 +4118,6 @@ end3b837b0ce1bd6a79804a28ee529fc65b: v.AddArg(y) return true } - goto endfd9dd9448d726fc7d82274b404cddb67 -endfd9dd9448d726fc7d82274b404cddb67: - ; return false } func rewriteValueAMD64_OpAMD64LEAQ2(v *Value, config *Config) bool { @@ -4738,17 +4126,17 @@ func rewriteValueAMD64_OpAMD64LEAQ2(v *Value, config *Config) bool { // match: (LEAQ2 [c] {s} (ADDQconst [d] x) y) // cond: x.Op != OpSB // result: (LEAQ2 [c+d] {s} x y) - { + for { c := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end32327450a43437ef98ffba85d4f64808 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] y := v.Args[1] if !(x.Op != OpSB) { - goto end32327450a43437ef98ffba85d4f64808 + break } v.reset(OpAMD64LEAQ2) v.AuxInt = c + d @@ -4757,23 +4145,20 @@ func rewriteValueAMD64_OpAMD64LEAQ2(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end32327450a43437ef98ffba85d4f64808 -end32327450a43437ef98ffba85d4f64808: - ; // match: (LEAQ2 [c] {s} x (ADDQconst [d] y)) // cond: y.Op != OpSB // result: (LEAQ2 [c+2*d] {s} x y) - { + for { c := v.AuxInt s := v.Aux x := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto end86e05a0977fd26c884c75b29625c6236 + break } d := v.Args[1].AuxInt y := v.Args[1].Args[0] if !(y.Op != OpSB) { - goto end86e05a0977fd26c884c75b29625c6236 + break } v.reset(OpAMD64LEAQ2) v.AuxInt = c + 2*d @@ -4782,24 +4167,21 @@ end32327450a43437ef98ffba85d4f64808: v.AddArg(y) return true } - goto end86e05a0977fd26c884c75b29625c6236 -end86e05a0977fd26c884c75b29625c6236: - ; // match: (LEAQ2 [off1] {sym1} (LEAQ [off2] {sym2} x) y) // cond: canMergeSym(sym1, sym2) && x.Op != OpSB // result: (LEAQ2 [addOff(off1,off2)] {mergeSym(sym1,sym2)} x y) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end2bf3cb6e212c3f62ab83ce10059e672e + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux x := v.Args[0].Args[0] y := v.Args[1] if !(canMergeSym(sym1, sym2) && x.Op != OpSB) { - goto end2bf3cb6e212c3f62ab83ce10059e672e + break } v.reset(OpAMD64LEAQ2) v.AuxInt = addOff(off1, off2) @@ -4808,9 +4190,6 @@ end86e05a0977fd26c884c75b29625c6236: v.AddArg(y) return true } - goto end2bf3cb6e212c3f62ab83ce10059e672e -end2bf3cb6e212c3f62ab83ce10059e672e: - ; return false } func rewriteValueAMD64_OpAMD64LEAQ4(v *Value, config *Config) bool { @@ -4819,17 +4198,17 @@ func rewriteValueAMD64_OpAMD64LEAQ4(v *Value, config *Config) bool { // match: (LEAQ4 [c] {s} (ADDQconst [d] x) y) // cond: x.Op != OpSB // result: (LEAQ4 [c+d] {s} x y) - { + for { c := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end2225ec635a27f55cd2e4ddaf3bebdf5b + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] y := v.Args[1] if !(x.Op != OpSB) { - goto end2225ec635a27f55cd2e4ddaf3bebdf5b + break } v.reset(OpAMD64LEAQ4) v.AuxInt = c + d @@ -4838,23 +4217,20 @@ func rewriteValueAMD64_OpAMD64LEAQ4(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end2225ec635a27f55cd2e4ddaf3bebdf5b -end2225ec635a27f55cd2e4ddaf3bebdf5b: - ; // match: (LEAQ4 [c] {s} x (ADDQconst [d] y)) // cond: y.Op != OpSB // result: (LEAQ4 [c+4*d] {s} x y) - { + for { c := v.AuxInt s := v.Aux x := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto endd198c6d7b0038f43476fe50d886ed76b + break } d := v.Args[1].AuxInt y := v.Args[1].Args[0] if !(y.Op != OpSB) { - goto endd198c6d7b0038f43476fe50d886ed76b + break } v.reset(OpAMD64LEAQ4) v.AuxInt = c + 4*d @@ -4863,24 +4239,21 @@ end2225ec635a27f55cd2e4ddaf3bebdf5b: v.AddArg(y) return true } - goto endd198c6d7b0038f43476fe50d886ed76b -endd198c6d7b0038f43476fe50d886ed76b: - ; // match: (LEAQ4 [off1] {sym1} (LEAQ [off2] {sym2} x) y) // cond: canMergeSym(sym1, sym2) && x.Op != OpSB // result: (LEAQ4 [addOff(off1,off2)] {mergeSym(sym1,sym2)} x y) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end066907f169f09e56139e801397316c95 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux x := v.Args[0].Args[0] y := v.Args[1] if !(canMergeSym(sym1, sym2) && x.Op != OpSB) { - goto end066907f169f09e56139e801397316c95 + break } v.reset(OpAMD64LEAQ4) v.AuxInt = addOff(off1, off2) @@ -4889,9 +4262,6 @@ endd198c6d7b0038f43476fe50d886ed76b: v.AddArg(y) return true } - goto end066907f169f09e56139e801397316c95 -end066907f169f09e56139e801397316c95: - ; return false } func rewriteValueAMD64_OpAMD64LEAQ8(v *Value, config *Config) bool { @@ -4900,17 +4270,17 @@ func rewriteValueAMD64_OpAMD64LEAQ8(v *Value, config *Config) bool { // match: (LEAQ8 [c] {s} (ADDQconst [d] x) y) // cond: x.Op != OpSB // result: (LEAQ8 [c+d] {s} x y) - { + for { c := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end26e798ad0167e205b8c670f19cef8122 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] y := v.Args[1] if !(x.Op != OpSB) { - goto end26e798ad0167e205b8c670f19cef8122 + break } v.reset(OpAMD64LEAQ8) v.AuxInt = c + d @@ -4919,23 +4289,20 @@ func rewriteValueAMD64_OpAMD64LEAQ8(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end26e798ad0167e205b8c670f19cef8122 -end26e798ad0167e205b8c670f19cef8122: - ; // match: (LEAQ8 [c] {s} x (ADDQconst [d] y)) // cond: y.Op != OpSB // result: (LEAQ8 [c+8*d] {s} x y) - { + for { c := v.AuxInt s := v.Aux x := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto end85f87ffff7b951c1d085198e3bee2f09 + break } d := v.Args[1].AuxInt y := v.Args[1].Args[0] if !(y.Op != OpSB) { - goto end85f87ffff7b951c1d085198e3bee2f09 + break } v.reset(OpAMD64LEAQ8) v.AuxInt = c + 8*d @@ -4944,24 +4311,21 @@ end26e798ad0167e205b8c670f19cef8122: v.AddArg(y) return true } - goto end85f87ffff7b951c1d085198e3bee2f09 -end85f87ffff7b951c1d085198e3bee2f09: - ; // match: (LEAQ8 [off1] {sym1} (LEAQ [off2] {sym2} x) y) // cond: canMergeSym(sym1, sym2) && x.Op != OpSB // result: (LEAQ8 [addOff(off1,off2)] {mergeSym(sym1,sym2)} x y) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end6bde9448027690b01bbf30dee061ce23 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux x := v.Args[0].Args[0] y := v.Args[1] if !(canMergeSym(sym1, sym2) && x.Op != OpSB) { - goto end6bde9448027690b01bbf30dee061ce23 + break } v.reset(OpAMD64LEAQ8) v.AuxInt = addOff(off1, off2) @@ -4970,9 +4334,6 @@ end85f87ffff7b951c1d085198e3bee2f09: v.AddArg(y) return true } - goto end6bde9448027690b01bbf30dee061ce23 -end6bde9448027690b01bbf30dee061ce23: - ; return false } func rewriteValueAMD64_OpLeq16(v *Value, config *Config) bool { @@ -4981,7 +4342,7 @@ func rewriteValueAMD64_OpLeq16(v *Value, config *Config) bool { // match: (Leq16 x y) // cond: // result: (SETLE (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETLE) @@ -4991,9 +4352,6 @@ func rewriteValueAMD64_OpLeq16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end586c647ca6bb8ec725eea917c743d1ea -end586c647ca6bb8ec725eea917c743d1ea: - ; return false } func rewriteValueAMD64_OpLeq16U(v *Value, config *Config) bool { @@ -5002,7 +4360,7 @@ func rewriteValueAMD64_OpLeq16U(v *Value, config *Config) bool { // match: (Leq16U x y) // cond: // result: (SETBE (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETBE) @@ -5012,9 +4370,6 @@ func rewriteValueAMD64_OpLeq16U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end9c24a81bc6a4a92267bd6638362dfbfc -end9c24a81bc6a4a92267bd6638362dfbfc: - ; return false } func rewriteValueAMD64_OpLeq32(v *Value, config *Config) bool { @@ -5023,7 +4378,7 @@ func rewriteValueAMD64_OpLeq32(v *Value, config *Config) bool { // match: (Leq32 x y) // cond: // result: (SETLE (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETLE) @@ -5033,9 +4388,6 @@ func rewriteValueAMD64_OpLeq32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end595ee99a9fc3460b2748b9129b139f88 -end595ee99a9fc3460b2748b9129b139f88: - ; return false } func rewriteValueAMD64_OpLeq32F(v *Value, config *Config) bool { @@ -5044,7 +4396,7 @@ func rewriteValueAMD64_OpLeq32F(v *Value, config *Config) bool { // match: (Leq32F x y) // cond: // result: (SETGEF (UCOMISS y x)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGEF) @@ -5054,9 +4406,6 @@ func rewriteValueAMD64_OpLeq32F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endfee4b989a80cc43328b24f7017e80a17 -endfee4b989a80cc43328b24f7017e80a17: - ; return false } func rewriteValueAMD64_OpLeq32U(v *Value, config *Config) bool { @@ -5065,7 +4414,7 @@ func rewriteValueAMD64_OpLeq32U(v *Value, config *Config) bool { // match: (Leq32U x y) // cond: // result: (SETBE (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETBE) @@ -5075,9 +4424,6 @@ func rewriteValueAMD64_OpLeq32U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end1a59850aad6cb17c295d0dc359013420 -end1a59850aad6cb17c295d0dc359013420: - ; return false } func rewriteValueAMD64_OpLeq64(v *Value, config *Config) bool { @@ -5086,7 +4432,7 @@ func rewriteValueAMD64_OpLeq64(v *Value, config *Config) bool { // match: (Leq64 x y) // cond: // result: (SETLE (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETLE) @@ -5096,9 +4442,6 @@ func rewriteValueAMD64_OpLeq64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end406def83fcbf29cd8fa306170b512de2 -end406def83fcbf29cd8fa306170b512de2: - ; return false } func rewriteValueAMD64_OpLeq64F(v *Value, config *Config) bool { @@ -5107,7 +4450,7 @@ func rewriteValueAMD64_OpLeq64F(v *Value, config *Config) bool { // match: (Leq64F x y) // cond: // result: (SETGEF (UCOMISD y x)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGEF) @@ -5117,9 +4460,6 @@ func rewriteValueAMD64_OpLeq64F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end6e3de6d4b5668f673e3822d5947edbd0 -end6e3de6d4b5668f673e3822d5947edbd0: - ; return false } func rewriteValueAMD64_OpLeq64U(v *Value, config *Config) bool { @@ -5128,7 +4468,7 @@ func rewriteValueAMD64_OpLeq64U(v *Value, config *Config) bool { // match: (Leq64U x y) // cond: // result: (SETBE (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETBE) @@ -5138,9 +4478,6 @@ func rewriteValueAMD64_OpLeq64U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end52f23c145b80639c8d60420ad4057bc7 -end52f23c145b80639c8d60420ad4057bc7: - ; return false } func rewriteValueAMD64_OpLeq8(v *Value, config *Config) bool { @@ -5149,7 +4486,7 @@ func rewriteValueAMD64_OpLeq8(v *Value, config *Config) bool { // match: (Leq8 x y) // cond: // result: (SETLE (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETLE) @@ -5159,9 +4496,6 @@ func rewriteValueAMD64_OpLeq8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end72ecba6f2a7062cb266923dfec811f79 -end72ecba6f2a7062cb266923dfec811f79: - ; return false } func rewriteValueAMD64_OpLeq8U(v *Value, config *Config) bool { @@ -5170,7 +4504,7 @@ func rewriteValueAMD64_OpLeq8U(v *Value, config *Config) bool { // match: (Leq8U x y) // cond: // result: (SETBE (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETBE) @@ -5180,9 +4514,6 @@ func rewriteValueAMD64_OpLeq8U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endb043b338cced4f15400d8d6e584ebea7 -endb043b338cced4f15400d8d6e584ebea7: - ; return false } func rewriteValueAMD64_OpLess16(v *Value, config *Config) bool { @@ -5191,7 +4522,7 @@ func rewriteValueAMD64_OpLess16(v *Value, config *Config) bool { // match: (Less16 x y) // cond: // result: (SETL (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETL) @@ -5201,9 +4532,6 @@ func rewriteValueAMD64_OpLess16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end2f6c6ba80eda8d68e77a58cba13d3f16 -end2f6c6ba80eda8d68e77a58cba13d3f16: - ; return false } func rewriteValueAMD64_OpLess16U(v *Value, config *Config) bool { @@ -5212,7 +4540,7 @@ func rewriteValueAMD64_OpLess16U(v *Value, config *Config) bool { // match: (Less16U x y) // cond: // result: (SETB (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETB) @@ -5222,9 +4550,6 @@ func rewriteValueAMD64_OpLess16U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end9f65eefe7b83a3c436b5c16664c93703 -end9f65eefe7b83a3c436b5c16664c93703: - ; return false } func rewriteValueAMD64_OpLess32(v *Value, config *Config) bool { @@ -5233,7 +4558,7 @@ func rewriteValueAMD64_OpLess32(v *Value, config *Config) bool { // match: (Less32 x y) // cond: // result: (SETL (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETL) @@ -5243,9 +4568,6 @@ func rewriteValueAMD64_OpLess32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end6632ff4ee994eb5b14cdf60c99ac3798 -end6632ff4ee994eb5b14cdf60c99ac3798: - ; return false } func rewriteValueAMD64_OpLess32F(v *Value, config *Config) bool { @@ -5254,7 +4576,7 @@ func rewriteValueAMD64_OpLess32F(v *Value, config *Config) bool { // match: (Less32F x y) // cond: // result: (SETGF (UCOMISS y x)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGF) @@ -5264,9 +4586,6 @@ func rewriteValueAMD64_OpLess32F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end5b3b0c96a7fc2ede81bc89c9abaac9d0 -end5b3b0c96a7fc2ede81bc89c9abaac9d0: - ; return false } func rewriteValueAMD64_OpLess32U(v *Value, config *Config) bool { @@ -5275,7 +4594,7 @@ func rewriteValueAMD64_OpLess32U(v *Value, config *Config) bool { // match: (Less32U x y) // cond: // result: (SETB (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETB) @@ -5285,9 +4604,6 @@ func rewriteValueAMD64_OpLess32U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end39e5a513c7fb0a42817a6cf9c6143b60 -end39e5a513c7fb0a42817a6cf9c6143b60: - ; return false } func rewriteValueAMD64_OpLess64(v *Value, config *Config) bool { @@ -5296,7 +4612,7 @@ func rewriteValueAMD64_OpLess64(v *Value, config *Config) bool { // match: (Less64 x y) // cond: // result: (SETL (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETL) @@ -5306,9 +4622,6 @@ func rewriteValueAMD64_OpLess64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto enddce827d3e922e8487b61a88c2b1510f2 -enddce827d3e922e8487b61a88c2b1510f2: - ; return false } func rewriteValueAMD64_OpLess64F(v *Value, config *Config) bool { @@ -5317,7 +4630,7 @@ func rewriteValueAMD64_OpLess64F(v *Value, config *Config) bool { // match: (Less64F x y) // cond: // result: (SETGF (UCOMISD y x)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETGF) @@ -5327,9 +4640,6 @@ func rewriteValueAMD64_OpLess64F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endf2be3d2dcb6543d2159e7fff5ccbbb55 -endf2be3d2dcb6543d2159e7fff5ccbbb55: - ; return false } func rewriteValueAMD64_OpLess64U(v *Value, config *Config) bool { @@ -5338,7 +4648,7 @@ func rewriteValueAMD64_OpLess64U(v *Value, config *Config) bool { // match: (Less64U x y) // cond: // result: (SETB (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETB) @@ -5348,9 +4658,6 @@ func rewriteValueAMD64_OpLess64U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endb76d7768f175a44baf6d63d12ab6e81d -endb76d7768f175a44baf6d63d12ab6e81d: - ; return false } func rewriteValueAMD64_OpLess8(v *Value, config *Config) bool { @@ -5359,7 +4666,7 @@ func rewriteValueAMD64_OpLess8(v *Value, config *Config) bool { // match: (Less8 x y) // cond: // result: (SETL (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETL) @@ -5369,9 +4676,6 @@ func rewriteValueAMD64_OpLess8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end314fbffe99f3bd4b07857a80c0b914cd -end314fbffe99f3bd4b07857a80c0b914cd: - ; return false } func rewriteValueAMD64_OpLess8U(v *Value, config *Config) bool { @@ -5380,7 +4684,7 @@ func rewriteValueAMD64_OpLess8U(v *Value, config *Config) bool { // match: (Less8U x y) // cond: // result: (SETB (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETB) @@ -5390,9 +4694,6 @@ func rewriteValueAMD64_OpLess8U(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endadccc5d80fd053a33004ed0759f64d93 -endadccc5d80fd053a33004ed0759f64d93: - ; return false } func rewriteValueAMD64_OpLoad(v *Value, config *Config) bool { @@ -5401,111 +4702,93 @@ func rewriteValueAMD64_OpLoad(v *Value, config *Config) bool { // match: (Load ptr mem) // cond: (is64BitInt(t) || isPtr(t)) // result: (MOVQload ptr mem) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(is64BitInt(t) || isPtr(t)) { - goto end7c4c53acf57ebc5f03273652ba1d5934 + break } v.reset(OpAMD64MOVQload) v.AddArg(ptr) v.AddArg(mem) return true } - goto end7c4c53acf57ebc5f03273652ba1d5934 -end7c4c53acf57ebc5f03273652ba1d5934: - ; // match: (Load ptr mem) // cond: is32BitInt(t) // result: (MOVLload ptr mem) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(is32BitInt(t)) { - goto ende1cfcb15bfbcfd448ce303d0882a4057 + break } v.reset(OpAMD64MOVLload) v.AddArg(ptr) v.AddArg(mem) return true } - goto ende1cfcb15bfbcfd448ce303d0882a4057 -ende1cfcb15bfbcfd448ce303d0882a4057: - ; // match: (Load ptr mem) // cond: is16BitInt(t) // result: (MOVWload ptr mem) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(is16BitInt(t)) { - goto end2d0a1304501ed9f4e9e2d288505a9c7c + break } v.reset(OpAMD64MOVWload) v.AddArg(ptr) v.AddArg(mem) return true } - goto end2d0a1304501ed9f4e9e2d288505a9c7c -end2d0a1304501ed9f4e9e2d288505a9c7c: - ; // match: (Load ptr mem) // cond: (t.IsBoolean() || is8BitInt(t)) // result: (MOVBload ptr mem) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsBoolean() || is8BitInt(t)) { - goto end8f83bf72293670e75b22d6627bd13f0b + break } v.reset(OpAMD64MOVBload) v.AddArg(ptr) v.AddArg(mem) return true } - goto end8f83bf72293670e75b22d6627bd13f0b -end8f83bf72293670e75b22d6627bd13f0b: - ; // match: (Load ptr mem) // cond: is32BitFloat(t) // result: (MOVSSload ptr mem) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(is32BitFloat(t)) { - goto end63383c4895805881aabceebea3c4c533 + break } v.reset(OpAMD64MOVSSload) v.AddArg(ptr) v.AddArg(mem) return true } - goto end63383c4895805881aabceebea3c4c533 -end63383c4895805881aabceebea3c4c533: - ; // match: (Load ptr mem) // cond: is64BitFloat(t) // result: (MOVSDload ptr mem) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(is64BitFloat(t)) { - goto end99d0858c0a5bb72f0fe4decc748da812 + break } v.reset(OpAMD64MOVSDload) v.AddArg(ptr) v.AddArg(mem) return true } - goto end99d0858c0a5bb72f0fe4decc748da812 -end99d0858c0a5bb72f0fe4decc748da812: - ; return false } func rewriteValueAMD64_OpLrot16(v *Value, config *Config) bool { @@ -5514,7 +4797,7 @@ func rewriteValueAMD64_OpLrot16(v *Value, config *Config) bool { // match: (Lrot16 x [c]) // cond: // result: (ROLWconst [c&15] x) - { + for { t := v.Type x := v.Args[0] c := v.AuxInt @@ -5524,9 +4807,6 @@ func rewriteValueAMD64_OpLrot16(v *Value, config *Config) bool { v.AddArg(x) return true } - goto endb23dfa24c619d0068f925899d53ee7fd -endb23dfa24c619d0068f925899d53ee7fd: - ; return false } func rewriteValueAMD64_OpLrot32(v *Value, config *Config) bool { @@ -5535,7 +4815,7 @@ func rewriteValueAMD64_OpLrot32(v *Value, config *Config) bool { // match: (Lrot32 x [c]) // cond: // result: (ROLLconst [c&31] x) - { + for { t := v.Type x := v.Args[0] c := v.AuxInt @@ -5545,9 +4825,6 @@ func rewriteValueAMD64_OpLrot32(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end38b2215c011896c36845f72ecb72b1b0 -end38b2215c011896c36845f72ecb72b1b0: - ; return false } func rewriteValueAMD64_OpLrot64(v *Value, config *Config) bool { @@ -5556,7 +4833,7 @@ func rewriteValueAMD64_OpLrot64(v *Value, config *Config) bool { // match: (Lrot64 x [c]) // cond: // result: (ROLQconst [c&63] x) - { + for { t := v.Type x := v.Args[0] c := v.AuxInt @@ -5566,9 +4843,6 @@ func rewriteValueAMD64_OpLrot64(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end5cb355e4f3ca387f252ef4f6a55f9f68 -end5cb355e4f3ca387f252ef4f6a55f9f68: - ; return false } func rewriteValueAMD64_OpLrot8(v *Value, config *Config) bool { @@ -5577,7 +4851,7 @@ func rewriteValueAMD64_OpLrot8(v *Value, config *Config) bool { // match: (Lrot8 x [c]) // cond: // result: (ROLBconst [c&7] x) - { + for { t := v.Type x := v.Args[0] c := v.AuxInt @@ -5587,9 +4861,6 @@ func rewriteValueAMD64_OpLrot8(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end26bfb3dd5b537cf13ac9f2978d94ed71 -end26bfb3dd5b537cf13ac9f2978d94ed71: - ; return false } func rewriteValueAMD64_OpLsh16x16(v *Value, config *Config) bool { @@ -5598,7 +4869,7 @@ func rewriteValueAMD64_OpLsh16x16(v *Value, config *Config) bool { // match: (Lsh16x16 x y) // cond: // result: (ANDW (SHLW x y) (SBBLcarrymask (CMPWconst y [16]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5615,9 +4886,6 @@ func rewriteValueAMD64_OpLsh16x16(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto ende1a6e1781dd669bd74d66fc34c97218f -ende1a6e1781dd669bd74d66fc34c97218f: - ; return false } func rewriteValueAMD64_OpLsh16x32(v *Value, config *Config) bool { @@ -5626,7 +4894,7 @@ func rewriteValueAMD64_OpLsh16x32(v *Value, config *Config) bool { // match: (Lsh16x32 x y) // cond: // result: (ANDW (SHLW x y) (SBBLcarrymask (CMPLconst y [16]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5643,9 +4911,6 @@ func rewriteValueAMD64_OpLsh16x32(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end711e661a5b6682f98e7993c2dfa72f45 -end711e661a5b6682f98e7993c2dfa72f45: - ; return false } func rewriteValueAMD64_OpLsh16x64(v *Value, config *Config) bool { @@ -5654,7 +4919,7 @@ func rewriteValueAMD64_OpLsh16x64(v *Value, config *Config) bool { // match: (Lsh16x64 x y) // cond: // result: (ANDW (SHLW x y) (SBBLcarrymask (CMPQconst y [16]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5671,9 +4936,6 @@ func rewriteValueAMD64_OpLsh16x64(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end4800d2b7d4f0e5acafcdf4e765941570 -end4800d2b7d4f0e5acafcdf4e765941570: - ; return false } func rewriteValueAMD64_OpLsh16x8(v *Value, config *Config) bool { @@ -5682,7 +4944,7 @@ func rewriteValueAMD64_OpLsh16x8(v *Value, config *Config) bool { // match: (Lsh16x8 x y) // cond: // result: (ANDW (SHLW x y) (SBBLcarrymask (CMPBconst y [16]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5699,9 +4961,6 @@ func rewriteValueAMD64_OpLsh16x8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endbe15f4a70f6c490f30f12a5db0f24ec4 -endbe15f4a70f6c490f30f12a5db0f24ec4: - ; return false } func rewriteValueAMD64_OpLsh32x16(v *Value, config *Config) bool { @@ -5710,7 +4969,7 @@ func rewriteValueAMD64_OpLsh32x16(v *Value, config *Config) bool { // match: (Lsh32x16 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPWconst y [32]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5727,9 +4986,6 @@ func rewriteValueAMD64_OpLsh32x16(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end6e9dfb6e850fc86393b2f6b1d509287f -end6e9dfb6e850fc86393b2f6b1d509287f: - ; return false } func rewriteValueAMD64_OpLsh32x32(v *Value, config *Config) bool { @@ -5738,7 +4994,7 @@ func rewriteValueAMD64_OpLsh32x32(v *Value, config *Config) bool { // match: (Lsh32x32 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPLconst y [32]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5755,9 +5011,6 @@ func rewriteValueAMD64_OpLsh32x32(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end9a4d057653a8fdad133aaf4a6b4f2b74 -end9a4d057653a8fdad133aaf4a6b4f2b74: - ; return false } func rewriteValueAMD64_OpLsh32x64(v *Value, config *Config) bool { @@ -5766,7 +5019,7 @@ func rewriteValueAMD64_OpLsh32x64(v *Value, config *Config) bool { // match: (Lsh32x64 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPQconst y [32]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5783,9 +5036,6 @@ func rewriteValueAMD64_OpLsh32x64(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endae1486be93eb21ebac539419b5a109cb -endae1486be93eb21ebac539419b5a109cb: - ; return false } func rewriteValueAMD64_OpLsh32x8(v *Value, config *Config) bool { @@ -5794,7 +5044,7 @@ func rewriteValueAMD64_OpLsh32x8(v *Value, config *Config) bool { // match: (Lsh32x8 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPBconst y [32]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5811,9 +5061,6 @@ func rewriteValueAMD64_OpLsh32x8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endede3d7bbbb6e7ac26b598b75409703f5 -endede3d7bbbb6e7ac26b598b75409703f5: - ; return false } func rewriteValueAMD64_OpLsh64x16(v *Value, config *Config) bool { @@ -5822,7 +5069,7 @@ func rewriteValueAMD64_OpLsh64x16(v *Value, config *Config) bool { // match: (Lsh64x16 x y) // cond: // result: (ANDQ (SHLQ x y) (SBBQcarrymask (CMPWconst y [64]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5839,9 +5086,6 @@ func rewriteValueAMD64_OpLsh64x16(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end4dc49d47e1079e618e480ee95c20df6d -end4dc49d47e1079e618e480ee95c20df6d: - ; return false } func rewriteValueAMD64_OpLsh64x32(v *Value, config *Config) bool { @@ -5850,7 +5094,7 @@ func rewriteValueAMD64_OpLsh64x32(v *Value, config *Config) bool { // match: (Lsh64x32 x y) // cond: // result: (ANDQ (SHLQ x y) (SBBQcarrymask (CMPLconst y [64]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5867,9 +5111,6 @@ func rewriteValueAMD64_OpLsh64x32(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end52a5e8c44a38fe265cf0619081d1723b -end52a5e8c44a38fe265cf0619081d1723b: - ; return false } func rewriteValueAMD64_OpLsh64x64(v *Value, config *Config) bool { @@ -5878,7 +5119,7 @@ func rewriteValueAMD64_OpLsh64x64(v *Value, config *Config) bool { // match: (Lsh64x64 x y) // cond: // result: (ANDQ (SHLQ x y) (SBBQcarrymask (CMPQconst y [64]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5895,9 +5136,6 @@ func rewriteValueAMD64_OpLsh64x64(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto enda2931f1f1a64c3e0251febeb894666b0 -enda2931f1f1a64c3e0251febeb894666b0: - ; return false } func rewriteValueAMD64_OpLsh64x8(v *Value, config *Config) bool { @@ -5906,7 +5144,7 @@ func rewriteValueAMD64_OpLsh64x8(v *Value, config *Config) bool { // match: (Lsh64x8 x y) // cond: // result: (ANDQ (SHLQ x y) (SBBQcarrymask (CMPBconst y [64]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5923,9 +5161,6 @@ func rewriteValueAMD64_OpLsh64x8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end8535fcd7c1fc28bbc53844b29ffbdb22 -end8535fcd7c1fc28bbc53844b29ffbdb22: - ; return false } func rewriteValueAMD64_OpLsh8x16(v *Value, config *Config) bool { @@ -5934,7 +5169,7 @@ func rewriteValueAMD64_OpLsh8x16(v *Value, config *Config) bool { // match: (Lsh8x16 x y) // cond: // result: (ANDB (SHLB x y) (SBBLcarrymask (CMPWconst y [8]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5951,9 +5186,6 @@ func rewriteValueAMD64_OpLsh8x16(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endc4b0328ed4d6943ac1af3662b93ad8e2 -endc4b0328ed4d6943ac1af3662b93ad8e2: - ; return false } func rewriteValueAMD64_OpLsh8x32(v *Value, config *Config) bool { @@ -5962,7 +5194,7 @@ func rewriteValueAMD64_OpLsh8x32(v *Value, config *Config) bool { // match: (Lsh8x32 x y) // cond: // result: (ANDB (SHLB x y) (SBBLcarrymask (CMPLconst y [8]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -5979,9 +5211,6 @@ func rewriteValueAMD64_OpLsh8x32(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end1e6cfcdb7439ccc73f4f59874f3559b2 -end1e6cfcdb7439ccc73f4f59874f3559b2: - ; return false } func rewriteValueAMD64_OpLsh8x64(v *Value, config *Config) bool { @@ -5990,7 +5219,7 @@ func rewriteValueAMD64_OpLsh8x64(v *Value, config *Config) bool { // match: (Lsh8x64 x y) // cond: // result: (ANDB (SHLB x y) (SBBLcarrymask (CMPQconst y [8]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -6007,9 +5236,6 @@ func rewriteValueAMD64_OpLsh8x64(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endf3ea2e740c7fd7ea2caa24357b0bf798 -endf3ea2e740c7fd7ea2caa24357b0bf798: - ; return false } func rewriteValueAMD64_OpLsh8x8(v *Value, config *Config) bool { @@ -6018,7 +5244,7 @@ func rewriteValueAMD64_OpLsh8x8(v *Value, config *Config) bool { // match: (Lsh8x8 x y) // cond: // result: (ANDB (SHLB x y) (SBBLcarrymask (CMPBconst y [8]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -6035,9 +5261,6 @@ func rewriteValueAMD64_OpLsh8x8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end5d557e41670b7ac83d122eeb4029363d -end5d557e41670b7ac83d122eeb4029363d: - ; return false } func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value, config *Config) bool { @@ -6046,9 +5269,9 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value, config *Config) bool { // match: (MOVBQSX (MOVBload [off] {sym} ptr mem)) // cond: // result: @v.Args[0].Block (MOVBQSXload [off] {sym} ptr mem) - { + for { if v.Args[0].Op != OpAMD64MOVBload { - goto end19c38f3a1a37dca50637c917fa26e4f7 + break } off := v.Args[0].AuxInt sym := v.Args[0].Aux @@ -6063,29 +5286,23 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value, config *Config) bool { v0.AddArg(mem) return true } - goto end19c38f3a1a37dca50637c917fa26e4f7 -end19c38f3a1a37dca50637c917fa26e4f7: - ; // match: (MOVBQSX (ANDBconst [c] x)) // cond: c & 0x80 == 0 // result: (ANDQconst [c & 0x7f] x) - { + for { if v.Args[0].Op != OpAMD64ANDBconst { - goto endf998318725c3cc6c701ebb69a2473650 + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] if !(c&0x80 == 0) { - goto endf998318725c3cc6c701ebb69a2473650 + break } v.reset(OpAMD64ANDQconst) v.AuxInt = c & 0x7f v.AddArg(x) return true } - goto endf998318725c3cc6c701ebb69a2473650 -endf998318725c3cc6c701ebb69a2473650: - ; return false } func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value, config *Config) bool { @@ -6094,9 +5311,9 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value, config *Config) bool { // match: (MOVBQZX (MOVBload [off] {sym} ptr mem)) // cond: // result: @v.Args[0].Block (MOVBQZXload [off] {sym} ptr mem) - { + for { if v.Args[0].Op != OpAMD64MOVBload { - goto end1169bcf3d56fa24321b002eaebd5a62d + break } off := v.Args[0].AuxInt sym := v.Args[0].Aux @@ -6111,15 +5328,12 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value, config *Config) bool { v0.AddArg(mem) return true } - goto end1169bcf3d56fa24321b002eaebd5a62d -end1169bcf3d56fa24321b002eaebd5a62d: - ; // match: (MOVBQZX (ANDBconst [c] x)) // cond: // result: (ANDQconst [c & 0xff] x) - { + for { if v.Args[0].Op != OpAMD64ANDBconst { - goto enddca0c0e20f19210fe65677bfd758b24e + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -6128,9 +5342,6 @@ end1169bcf3d56fa24321b002eaebd5a62d: v.AddArg(x) return true } - goto enddca0c0e20f19210fe65677bfd758b24e -enddca0c0e20f19210fe65677bfd758b24e: - ; return false } func rewriteValueAMD64_OpAMD64MOVBload(v *Value, config *Config) bool { @@ -6139,11 +5350,11 @@ func rewriteValueAMD64_OpAMD64MOVBload(v *Value, config *Config) bool { // match: (MOVBload [off1] {sym} (ADDQconst [off2] ptr) mem) // cond: // result: (MOVBload [addOff(off1, off2)] {sym} ptr mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end7ec9147ab863c1bd59190fed81f894b6 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -6155,24 +5366,21 @@ func rewriteValueAMD64_OpAMD64MOVBload(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end7ec9147ab863c1bd59190fed81f894b6 -end7ec9147ab863c1bd59190fed81f894b6: - ; // match: (MOVBload [off1] {sym1} (LEAQ [off2] {sym2} base) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVBload [addOff(off1,off2)] {mergeSym(sym1,sym2)} base mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end3771a59cf66b0df99120d76f4c358fab + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux base := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto end3771a59cf66b0df99120d76f4c358fab + break } v.reset(OpAMD64MOVBload) v.AuxInt = addOff(off1, off2) @@ -6181,17 +5389,14 @@ end7ec9147ab863c1bd59190fed81f894b6: v.AddArg(mem) return true } - goto end3771a59cf66b0df99120d76f4c358fab -end3771a59cf66b0df99120d76f4c358fab: - ; // match: (MOVBload [off1] {sym1} (LEAQ1 [off2] {sym2} ptr idx) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVBloadidx1 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ1 { - goto endb5e38220bc6108fb683f1f1e46853bd9 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -6199,7 +5404,7 @@ end3771a59cf66b0df99120d76f4c358fab: idx := v.Args[0].Args[1] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto endb5e38220bc6108fb683f1f1e46853bd9 + break } v.reset(OpAMD64MOVBloadidx1) v.AuxInt = addOff(off1, off2) @@ -6209,23 +5414,20 @@ end3771a59cf66b0df99120d76f4c358fab: v.AddArg(mem) return true } - goto endb5e38220bc6108fb683f1f1e46853bd9 -endb5e38220bc6108fb683f1f1e46853bd9: - ; // match: (MOVBload [off] {sym} (ADDQ ptr idx) mem) // cond: ptr.Op != OpSB // result: (MOVBloadidx1 [off] {sym} ptr idx mem) - { + for { off := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQ { - goto end2abf84efc0e06ed9cda71fb8a1ffaacd + break } ptr := v.Args[0].Args[0] idx := v.Args[0].Args[1] mem := v.Args[1] if !(ptr.Op != OpSB) { - goto end2abf84efc0e06ed9cda71fb8a1ffaacd + break } v.reset(OpAMD64MOVBloadidx1) v.AuxInt = off @@ -6235,9 +5437,6 @@ endb5e38220bc6108fb683f1f1e46853bd9: v.AddArg(mem) return true } - goto end2abf84efc0e06ed9cda71fb8a1ffaacd -end2abf84efc0e06ed9cda71fb8a1ffaacd: - ; return false } func rewriteValueAMD64_OpAMD64MOVBloadidx1(v *Value, config *Config) bool { @@ -6246,11 +5445,11 @@ func rewriteValueAMD64_OpAMD64MOVBloadidx1(v *Value, config *Config) bool { // match: (MOVBloadidx1 [c] {sym} (ADDQconst [d] ptr) idx mem) // cond: // result: (MOVBloadidx1 [c+d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end287a4eb26a59b5f23efa2c6df34711f7 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -6264,18 +5463,15 @@ func rewriteValueAMD64_OpAMD64MOVBloadidx1(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end287a4eb26a59b5f23efa2c6df34711f7 -end287a4eb26a59b5f23efa2c6df34711f7: - ; // match: (MOVBloadidx1 [c] {sym} ptr (ADDQconst [d] idx) mem) // cond: // result: (MOVBloadidx1 [c+d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto end3d2e4e850c5e8129cd71a8693403b6c1 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -6288,9 +5484,6 @@ end287a4eb26a59b5f23efa2c6df34711f7: v.AddArg(mem) return true } - goto end3d2e4e850c5e8129cd71a8693403b6c1 -end3d2e4e850c5e8129cd71a8693403b6c1: - ; return false } func rewriteValueAMD64_OpAMD64MOVBstore(v *Value, config *Config) bool { @@ -6299,12 +5492,12 @@ func rewriteValueAMD64_OpAMD64MOVBstore(v *Value, config *Config) bool { // match: (MOVBstore [off] {sym} ptr (MOVBQSX x) mem) // cond: // result: (MOVBstore [off] {sym} ptr x mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVBQSX { - goto end5b3f41f0770d566ff1647dea1d4a40e8 + break } x := v.Args[1].Args[0] mem := v.Args[2] @@ -6316,18 +5509,15 @@ func rewriteValueAMD64_OpAMD64MOVBstore(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end5b3f41f0770d566ff1647dea1d4a40e8 -end5b3f41f0770d566ff1647dea1d4a40e8: - ; // match: (MOVBstore [off] {sym} ptr (MOVBQZX x) mem) // cond: // result: (MOVBstore [off] {sym} ptr x mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVBQZX { - goto end3a2e55db7e03920700c4875f6a55de3b + break } x := v.Args[1].Args[0] mem := v.Args[2] @@ -6339,17 +5529,14 @@ end5b3f41f0770d566ff1647dea1d4a40e8: v.AddArg(mem) return true } - goto end3a2e55db7e03920700c4875f6a55de3b -end3a2e55db7e03920700c4875f6a55de3b: - ; // match: (MOVBstore [off1] {sym} (ADDQconst [off2] ptr) val mem) // cond: // result: (MOVBstore [addOff(off1, off2)] {sym} ptr val mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto ende6347ac19d0469ee59d2e7f2e18d1070 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -6363,23 +5550,20 @@ end3a2e55db7e03920700c4875f6a55de3b: v.AddArg(mem) return true } - goto ende6347ac19d0469ee59d2e7f2e18d1070 -ende6347ac19d0469ee59d2e7f2e18d1070: - ; // match: (MOVBstore [off] {sym} ptr (MOVBconst [c]) mem) // cond: validOff(off) // result: (MOVBstoreconst [makeValAndOff(int64(int8(c)),off)] {sym} ptr mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto endfdf24c49923451a076f1868988b8c9d9 + break } c := v.Args[1].AuxInt mem := v.Args[2] if !(validOff(off)) { - goto endfdf24c49923451a076f1868988b8c9d9 + break } v.reset(OpAMD64MOVBstoreconst) v.AuxInt = makeValAndOff(int64(int8(c)), off) @@ -6388,17 +5572,14 @@ ende6347ac19d0469ee59d2e7f2e18d1070: v.AddArg(mem) return true } - goto endfdf24c49923451a076f1868988b8c9d9 -endfdf24c49923451a076f1868988b8c9d9: - ; // match: (MOVBstore [off1] {sym1} (LEAQ [off2] {sym2} base) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVBstore [addOff(off1,off2)] {mergeSym(sym1,sym2)} base val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto enda7086cf7f6b8cf81972e2c3d4b12f3fc + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -6406,7 +5587,7 @@ endfdf24c49923451a076f1868988b8c9d9: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto enda7086cf7f6b8cf81972e2c3d4b12f3fc + break } v.reset(OpAMD64MOVBstore) v.AuxInt = addOff(off1, off2) @@ -6416,17 +5597,14 @@ endfdf24c49923451a076f1868988b8c9d9: v.AddArg(mem) return true } - goto enda7086cf7f6b8cf81972e2c3d4b12f3fc -enda7086cf7f6b8cf81972e2c3d4b12f3fc: - ; // match: (MOVBstore [off1] {sym1} (LEAQ1 [off2] {sym2} ptr idx) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVBstoreidx1 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ1 { - goto ende386ced77f1acdae2e8bbc379803b7cf + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -6435,7 +5613,7 @@ enda7086cf7f6b8cf81972e2c3d4b12f3fc: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto ende386ced77f1acdae2e8bbc379803b7cf + break } v.reset(OpAMD64MOVBstoreidx1) v.AuxInt = addOff(off1, off2) @@ -6446,24 +5624,21 @@ enda7086cf7f6b8cf81972e2c3d4b12f3fc: v.AddArg(mem) return true } - goto ende386ced77f1acdae2e8bbc379803b7cf -ende386ced77f1acdae2e8bbc379803b7cf: - ; // match: (MOVBstore [off] {sym} (ADDQ ptr idx) val mem) // cond: ptr.Op != OpSB // result: (MOVBstoreidx1 [off] {sym} ptr idx val mem) - { + for { off := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQ { - goto endb43afe2024f68e41f2538876c4bf49cc + break } ptr := v.Args[0].Args[0] idx := v.Args[0].Args[1] val := v.Args[1] mem := v.Args[2] if !(ptr.Op != OpSB) { - goto endb43afe2024f68e41f2538876c4bf49cc + break } v.reset(OpAMD64MOVBstoreidx1) v.AuxInt = off @@ -6474,9 +5649,6 @@ ende386ced77f1acdae2e8bbc379803b7cf: v.AddArg(mem) return true } - goto endb43afe2024f68e41f2538876c4bf49cc -endb43afe2024f68e41f2538876c4bf49cc: - ; return false } func rewriteValueAMD64_OpAMD64MOVBstoreconst(v *Value, config *Config) bool { @@ -6485,17 +5657,17 @@ func rewriteValueAMD64_OpAMD64MOVBstoreconst(v *Value, config *Config) bool { // match: (MOVBstoreconst [sc] {s} (ADDQconst [off] ptr) mem) // cond: ValAndOff(sc).canAdd(off) // result: (MOVBstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) - { + for { sc := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end8d35ca650b7c40bc43984d3f5925a052 + break } off := v.Args[0].AuxInt ptr := v.Args[0].Args[0] mem := v.Args[1] if !(ValAndOff(sc).canAdd(off)) { - goto end8d35ca650b7c40bc43984d3f5925a052 + break } v.reset(OpAMD64MOVBstoreconst) v.AuxInt = ValAndOff(sc).add(off) @@ -6504,24 +5676,21 @@ func rewriteValueAMD64_OpAMD64MOVBstoreconst(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end8d35ca650b7c40bc43984d3f5925a052 -end8d35ca650b7c40bc43984d3f5925a052: - ; // match: (MOVBstoreconst [sc] {sym1} (LEAQ [off] {sym2} ptr) mem) // cond: canMergeSym(sym1, sym2) && ValAndOff(sc).canAdd(off) // result: (MOVBstoreconst [ValAndOff(sc).add(off)] {mergeSym(sym1, sym2)} ptr mem) - { + for { sc := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end8deb839acf84818dd8fc827c0338f42c + break } off := v.Args[0].AuxInt sym2 := v.Args[0].Aux ptr := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2) && ValAndOff(sc).canAdd(off)) { - goto end8deb839acf84818dd8fc827c0338f42c + break } v.reset(OpAMD64MOVBstoreconst) v.AuxInt = ValAndOff(sc).add(off) @@ -6530,9 +5699,6 @@ end8d35ca650b7c40bc43984d3f5925a052: v.AddArg(mem) return true } - goto end8deb839acf84818dd8fc827c0338f42c -end8deb839acf84818dd8fc827c0338f42c: - ; return false } func rewriteValueAMD64_OpAMD64MOVBstoreidx1(v *Value, config *Config) bool { @@ -6541,11 +5707,11 @@ func rewriteValueAMD64_OpAMD64MOVBstoreidx1(v *Value, config *Config) bool { // match: (MOVBstoreidx1 [c] {sym} (ADDQconst [d] ptr) idx val mem) // cond: // result: (MOVBstoreidx1 [c+d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end5e07185968f39170e41a237cc6258752 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -6561,18 +5727,15 @@ func rewriteValueAMD64_OpAMD64MOVBstoreidx1(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end5e07185968f39170e41a237cc6258752 -end5e07185968f39170e41a237cc6258752: - ; // match: (MOVBstoreidx1 [c] {sym} ptr (ADDQconst [d] idx) val mem) // cond: // result: (MOVBstoreidx1 [c+d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto endf1e4b8d5da2530ca81e2c01dc2892875 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -6587,9 +5750,6 @@ end5e07185968f39170e41a237cc6258752: v.AddArg(mem) return true } - goto endf1e4b8d5da2530ca81e2c01dc2892875 -endf1e4b8d5da2530ca81e2c01dc2892875: - ; return false } func rewriteValueAMD64_OpAMD64MOVLQSX(v *Value, config *Config) bool { @@ -6598,9 +5758,9 @@ func rewriteValueAMD64_OpAMD64MOVLQSX(v *Value, config *Config) bool { // match: (MOVLQSX (MOVLload [off] {sym} ptr mem)) // cond: // result: @v.Args[0].Block (MOVLQSXload [off] {sym} ptr mem) - { + for { if v.Args[0].Op != OpAMD64MOVLload { - goto end9498ad52d5051e8e3ee9b0ed7af68d01 + break } off := v.Args[0].AuxInt sym := v.Args[0].Aux @@ -6615,29 +5775,23 @@ func rewriteValueAMD64_OpAMD64MOVLQSX(v *Value, config *Config) bool { v0.AddArg(mem) return true } - goto end9498ad52d5051e8e3ee9b0ed7af68d01 -end9498ad52d5051e8e3ee9b0ed7af68d01: - ; // match: (MOVLQSX (ANDLconst [c] x)) // cond: c & 0x80000000 == 0 // result: (ANDQconst [c & 0x7fffffff] x) - { + for { if v.Args[0].Op != OpAMD64ANDLconst { - goto end286a5aa0d10b04039cbe6e09307b4cbe + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] if !(c&0x80000000 == 0) { - goto end286a5aa0d10b04039cbe6e09307b4cbe + break } v.reset(OpAMD64ANDQconst) v.AuxInt = c & 0x7fffffff v.AddArg(x) return true } - goto end286a5aa0d10b04039cbe6e09307b4cbe -end286a5aa0d10b04039cbe6e09307b4cbe: - ; return false } func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value, config *Config) bool { @@ -6646,9 +5800,9 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value, config *Config) bool { // match: (MOVLQZX (MOVLload [off] {sym} ptr mem)) // cond: // result: @v.Args[0].Block (MOVLQZXload [off] {sym} ptr mem) - { + for { if v.Args[0].Op != OpAMD64MOVLload { - goto endb00602ccd4180bd749a3b01914264fbc + break } off := v.Args[0].AuxInt sym := v.Args[0].Aux @@ -6663,15 +5817,12 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value, config *Config) bool { v0.AddArg(mem) return true } - goto endb00602ccd4180bd749a3b01914264fbc -endb00602ccd4180bd749a3b01914264fbc: - ; // match: (MOVLQZX (ANDLconst [c] x)) // cond: // result: (ANDQconst [c & 0xffffffff] x) - { + for { if v.Args[0].Op != OpAMD64ANDLconst { - goto end71446f0e4f530fbbc6b25a3d07761c06 + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -6680,9 +5831,6 @@ endb00602ccd4180bd749a3b01914264fbc: v.AddArg(x) return true } - goto end71446f0e4f530fbbc6b25a3d07761c06 -end71446f0e4f530fbbc6b25a3d07761c06: - ; return false } func rewriteValueAMD64_OpAMD64MOVLload(v *Value, config *Config) bool { @@ -6691,11 +5839,11 @@ func rewriteValueAMD64_OpAMD64MOVLload(v *Value, config *Config) bool { // match: (MOVLload [off1] {sym} (ADDQconst [off2] ptr) mem) // cond: // result: (MOVLload [addOff(off1, off2)] {sym} ptr mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end0c8b8a40360c5c581d92723eca04d340 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -6707,24 +5855,21 @@ func rewriteValueAMD64_OpAMD64MOVLload(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end0c8b8a40360c5c581d92723eca04d340 -end0c8b8a40360c5c581d92723eca04d340: - ; // match: (MOVLload [off1] {sym1} (LEAQ [off2] {sym2} base) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVLload [addOff(off1,off2)] {mergeSym(sym1,sym2)} base mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto enddb9e59335876d8a565c425731438a1b3 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux base := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto enddb9e59335876d8a565c425731438a1b3 + break } v.reset(OpAMD64MOVLload) v.AuxInt = addOff(off1, off2) @@ -6733,17 +5878,14 @@ end0c8b8a40360c5c581d92723eca04d340: v.AddArg(mem) return true } - goto enddb9e59335876d8a565c425731438a1b3 -enddb9e59335876d8a565c425731438a1b3: - ; // match: (MOVLload [off1] {sym1} (LEAQ4 [off2] {sym2} ptr idx) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVLloadidx4 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ4 { - goto end6eed46982cfbceace4784afdf29ba2b9 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -6751,7 +5893,7 @@ enddb9e59335876d8a565c425731438a1b3: idx := v.Args[0].Args[1] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto end6eed46982cfbceace4784afdf29ba2b9 + break } v.reset(OpAMD64MOVLloadidx4) v.AuxInt = addOff(off1, off2) @@ -6761,9 +5903,6 @@ enddb9e59335876d8a565c425731438a1b3: v.AddArg(mem) return true } - goto end6eed46982cfbceace4784afdf29ba2b9 -end6eed46982cfbceace4784afdf29ba2b9: - ; return false } func rewriteValueAMD64_OpAMD64MOVLloadidx4(v *Value, config *Config) bool { @@ -6772,11 +5911,11 @@ func rewriteValueAMD64_OpAMD64MOVLloadidx4(v *Value, config *Config) bool { // match: (MOVLloadidx4 [c] {sym} (ADDQconst [d] ptr) idx mem) // cond: // result: (MOVLloadidx4 [c+d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto endcafad33c3669685fdfee020f111fdcb6 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -6790,18 +5929,15 @@ func rewriteValueAMD64_OpAMD64MOVLloadidx4(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endcafad33c3669685fdfee020f111fdcb6 -endcafad33c3669685fdfee020f111fdcb6: - ; // match: (MOVLloadidx4 [c] {sym} ptr (ADDQconst [d] idx) mem) // cond: // result: (MOVLloadidx4 [c+4*d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto endfb8f54bfe07226dcb7d4e2d6df319707 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -6814,9 +5950,6 @@ endcafad33c3669685fdfee020f111fdcb6: v.AddArg(mem) return true } - goto endfb8f54bfe07226dcb7d4e2d6df319707 -endfb8f54bfe07226dcb7d4e2d6df319707: - ; return false } func rewriteValueAMD64_OpAMD64MOVLstore(v *Value, config *Config) bool { @@ -6825,12 +5958,12 @@ func rewriteValueAMD64_OpAMD64MOVLstore(v *Value, config *Config) bool { // match: (MOVLstore [off] {sym} ptr (MOVLQSX x) mem) // cond: // result: (MOVLstore [off] {sym} ptr x mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVLQSX { - goto end1fb7b2ae707c76d30927c21f85d77472 + break } x := v.Args[1].Args[0] mem := v.Args[2] @@ -6842,18 +5975,15 @@ func rewriteValueAMD64_OpAMD64MOVLstore(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end1fb7b2ae707c76d30927c21f85d77472 -end1fb7b2ae707c76d30927c21f85d77472: - ; // match: (MOVLstore [off] {sym} ptr (MOVLQZX x) mem) // cond: // result: (MOVLstore [off] {sym} ptr x mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVLQZX { - goto end199e8c23a5e7e99728a43d6a83b2c2cf + break } x := v.Args[1].Args[0] mem := v.Args[2] @@ -6865,17 +5995,14 @@ end1fb7b2ae707c76d30927c21f85d77472: v.AddArg(mem) return true } - goto end199e8c23a5e7e99728a43d6a83b2c2cf -end199e8c23a5e7e99728a43d6a83b2c2cf: - ; // match: (MOVLstore [off1] {sym} (ADDQconst [off2] ptr) val mem) // cond: // result: (MOVLstore [addOff(off1, off2)] {sym} ptr val mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end43bffdb8d9c1fc85a95778d4911955f1 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -6889,23 +6016,20 @@ end199e8c23a5e7e99728a43d6a83b2c2cf: v.AddArg(mem) return true } - goto end43bffdb8d9c1fc85a95778d4911955f1 -end43bffdb8d9c1fc85a95778d4911955f1: - ; // match: (MOVLstore [off] {sym} ptr (MOVLconst [c]) mem) // cond: validOff(off) // result: (MOVLstoreconst [makeValAndOff(int64(int32(c)),off)] {sym} ptr mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto enda62a54c45bf42db801af4095d27faccd + break } c := v.Args[1].AuxInt mem := v.Args[2] if !(validOff(off)) { - goto enda62a54c45bf42db801af4095d27faccd + break } v.reset(OpAMD64MOVLstoreconst) v.AuxInt = makeValAndOff(int64(int32(c)), off) @@ -6914,17 +6038,14 @@ end43bffdb8d9c1fc85a95778d4911955f1: v.AddArg(mem) return true } - goto enda62a54c45bf42db801af4095d27faccd -enda62a54c45bf42db801af4095d27faccd: - ; // match: (MOVLstore [off1] {sym1} (LEAQ [off2] {sym2} base) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVLstore [addOff(off1,off2)] {mergeSym(sym1,sym2)} base val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto endd57b1e4313fc7a3331340a9af00ba116 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -6932,7 +6053,7 @@ enda62a54c45bf42db801af4095d27faccd: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto endd57b1e4313fc7a3331340a9af00ba116 + break } v.reset(OpAMD64MOVLstore) v.AuxInt = addOff(off1, off2) @@ -6942,17 +6063,14 @@ enda62a54c45bf42db801af4095d27faccd: v.AddArg(mem) return true } - goto endd57b1e4313fc7a3331340a9af00ba116 -endd57b1e4313fc7a3331340a9af00ba116: - ; // match: (MOVLstore [off1] {sym1} (LEAQ4 [off2] {sym2} ptr idx) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVLstoreidx4 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ4 { - goto end6d2bbe089d6de8d261fcdeef263d2f7c + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -6961,7 +6079,7 @@ endd57b1e4313fc7a3331340a9af00ba116: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto end6d2bbe089d6de8d261fcdeef263d2f7c + break } v.reset(OpAMD64MOVLstoreidx4) v.AuxInt = addOff(off1, off2) @@ -6972,9 +6090,6 @@ endd57b1e4313fc7a3331340a9af00ba116: v.AddArg(mem) return true } - goto end6d2bbe089d6de8d261fcdeef263d2f7c -end6d2bbe089d6de8d261fcdeef263d2f7c: - ; return false } func rewriteValueAMD64_OpAMD64MOVLstoreconst(v *Value, config *Config) bool { @@ -6983,17 +6098,17 @@ func rewriteValueAMD64_OpAMD64MOVLstoreconst(v *Value, config *Config) bool { // match: (MOVLstoreconst [sc] {s} (ADDQconst [off] ptr) mem) // cond: ValAndOff(sc).canAdd(off) // result: (MOVLstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) - { + for { sc := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end4981598152dd0763f1d735810a7d34e8 + break } off := v.Args[0].AuxInt ptr := v.Args[0].Args[0] mem := v.Args[1] if !(ValAndOff(sc).canAdd(off)) { - goto end4981598152dd0763f1d735810a7d34e8 + break } v.reset(OpAMD64MOVLstoreconst) v.AuxInt = ValAndOff(sc).add(off) @@ -7002,24 +6117,21 @@ func rewriteValueAMD64_OpAMD64MOVLstoreconst(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end4981598152dd0763f1d735810a7d34e8 -end4981598152dd0763f1d735810a7d34e8: - ; // match: (MOVLstoreconst [sc] {sym1} (LEAQ [off] {sym2} ptr) mem) // cond: canMergeSym(sym1, sym2) && ValAndOff(sc).canAdd(off) // result: (MOVLstoreconst [ValAndOff(sc).add(off)] {mergeSym(sym1, sym2)} ptr mem) - { + for { sc := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto endd579250954b5df84a77518b36f739e12 + break } off := v.Args[0].AuxInt sym2 := v.Args[0].Aux ptr := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2) && ValAndOff(sc).canAdd(off)) { - goto endd579250954b5df84a77518b36f739e12 + break } v.reset(OpAMD64MOVLstoreconst) v.AuxInt = ValAndOff(sc).add(off) @@ -7028,9 +6140,6 @@ end4981598152dd0763f1d735810a7d34e8: v.AddArg(mem) return true } - goto endd579250954b5df84a77518b36f739e12 -endd579250954b5df84a77518b36f739e12: - ; return false } func rewriteValueAMD64_OpAMD64MOVLstoreidx4(v *Value, config *Config) bool { @@ -7039,11 +6148,11 @@ func rewriteValueAMD64_OpAMD64MOVLstoreidx4(v *Value, config *Config) bool { // match: (MOVLstoreidx4 [c] {sym} (ADDQconst [d] ptr) idx val mem) // cond: // result: (MOVLstoreidx4 [c+d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto endd72a73ada3e68139d21049bd337bcfd2 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7059,18 +6168,15 @@ func rewriteValueAMD64_OpAMD64MOVLstoreidx4(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endd72a73ada3e68139d21049bd337bcfd2 -endd72a73ada3e68139d21049bd337bcfd2: - ; // match: (MOVLstoreidx4 [c] {sym} ptr (ADDQconst [d] idx) val mem) // cond: // result: (MOVLstoreidx4 [c+4*d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto endea783679ed46542bc48309b9fd2f6054 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -7085,9 +6191,6 @@ endd72a73ada3e68139d21049bd337bcfd2: v.AddArg(mem) return true } - goto endea783679ed46542bc48309b9fd2f6054 -endea783679ed46542bc48309b9fd2f6054: - ; return false } func rewriteValueAMD64_OpAMD64MOVOload(v *Value, config *Config) bool { @@ -7096,11 +6199,11 @@ func rewriteValueAMD64_OpAMD64MOVOload(v *Value, config *Config) bool { // match: (MOVOload [off1] {sym} (ADDQconst [off2] ptr) mem) // cond: // result: (MOVOload [addOff(off1, off2)] {sym} ptr mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto endf1e8fcf569ddd8b3f7a2f61696971913 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7112,24 +6215,21 @@ func rewriteValueAMD64_OpAMD64MOVOload(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endf1e8fcf569ddd8b3f7a2f61696971913 -endf1e8fcf569ddd8b3f7a2f61696971913: - ; // match: (MOVOload [off1] {sym1} (LEAQ [off2] {sym2} base) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVOload [addOff(off1,off2)] {mergeSym(sym1,sym2)} base mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto endd36cf9b00af7a8f44fb8c60067a8efb2 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux base := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto endd36cf9b00af7a8f44fb8c60067a8efb2 + break } v.reset(OpAMD64MOVOload) v.AuxInt = addOff(off1, off2) @@ -7138,9 +6238,6 @@ endf1e8fcf569ddd8b3f7a2f61696971913: v.AddArg(mem) return true } - goto endd36cf9b00af7a8f44fb8c60067a8efb2 -endd36cf9b00af7a8f44fb8c60067a8efb2: - ; return false } func rewriteValueAMD64_OpAMD64MOVOstore(v *Value, config *Config) bool { @@ -7149,11 +6246,11 @@ func rewriteValueAMD64_OpAMD64MOVOstore(v *Value, config *Config) bool { // match: (MOVOstore [off1] {sym} (ADDQconst [off2] ptr) val mem) // cond: // result: (MOVOstore [addOff(off1, off2)] {sym} ptr val mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end2be573aa1bd919e567e6156a4ee36517 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7167,17 +6264,14 @@ func rewriteValueAMD64_OpAMD64MOVOstore(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end2be573aa1bd919e567e6156a4ee36517 -end2be573aa1bd919e567e6156a4ee36517: - ; // match: (MOVOstore [off1] {sym1} (LEAQ [off2] {sym2} base) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVOstore [addOff(off1,off2)] {mergeSym(sym1,sym2)} base val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto endc28b9b3efe9eb235e1586c4555280c20 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -7185,7 +6279,7 @@ end2be573aa1bd919e567e6156a4ee36517: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto endc28b9b3efe9eb235e1586c4555280c20 + break } v.reset(OpAMD64MOVOstore) v.AuxInt = addOff(off1, off2) @@ -7195,9 +6289,6 @@ end2be573aa1bd919e567e6156a4ee36517: v.AddArg(mem) return true } - goto endc28b9b3efe9eb235e1586c4555280c20 -endc28b9b3efe9eb235e1586c4555280c20: - ; return false } func rewriteValueAMD64_OpAMD64MOVQload(v *Value, config *Config) bool { @@ -7206,11 +6297,11 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value, config *Config) bool { // match: (MOVQload [off1] {sym} (ADDQconst [off2] ptr) mem) // cond: // result: (MOVQload [addOff(off1, off2)] {sym} ptr mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end0b8c50dd7faefb7d046f9a27e054df77 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7222,24 +6313,21 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end0b8c50dd7faefb7d046f9a27e054df77 -end0b8c50dd7faefb7d046f9a27e054df77: - ; // match: (MOVQload [off1] {sym1} (LEAQ [off2] {sym2} base) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVQload [addOff(off1,off2)] {mergeSym(sym1,sym2)} base mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto endd0c093adc4f05f2037005734c77d3cc4 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux base := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto endd0c093adc4f05f2037005734c77d3cc4 + break } v.reset(OpAMD64MOVQload) v.AuxInt = addOff(off1, off2) @@ -7248,17 +6336,14 @@ end0b8c50dd7faefb7d046f9a27e054df77: v.AddArg(mem) return true } - goto endd0c093adc4f05f2037005734c77d3cc4 -endd0c093adc4f05f2037005734c77d3cc4: - ; // match: (MOVQload [off1] {sym1} (LEAQ8 [off2] {sym2} ptr idx) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVQloadidx8 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ8 { - goto end74a50d810fb3945e809f608cd094a59c + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -7266,7 +6351,7 @@ endd0c093adc4f05f2037005734c77d3cc4: idx := v.Args[0].Args[1] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto end74a50d810fb3945e809f608cd094a59c + break } v.reset(OpAMD64MOVQloadidx8) v.AuxInt = addOff(off1, off2) @@ -7276,9 +6361,6 @@ endd0c093adc4f05f2037005734c77d3cc4: v.AddArg(mem) return true } - goto end74a50d810fb3945e809f608cd094a59c -end74a50d810fb3945e809f608cd094a59c: - ; return false } func rewriteValueAMD64_OpAMD64MOVQloadidx8(v *Value, config *Config) bool { @@ -7287,11 +6369,11 @@ func rewriteValueAMD64_OpAMD64MOVQloadidx8(v *Value, config *Config) bool { // match: (MOVQloadidx8 [c] {sym} (ADDQconst [d] ptr) idx mem) // cond: // result: (MOVQloadidx8 [c+d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end012c0c0292dbfd55f520e4d88d9247e4 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7305,18 +6387,15 @@ func rewriteValueAMD64_OpAMD64MOVQloadidx8(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end012c0c0292dbfd55f520e4d88d9247e4 -end012c0c0292dbfd55f520e4d88d9247e4: - ; // match: (MOVQloadidx8 [c] {sym} ptr (ADDQconst [d] idx) mem) // cond: // result: (MOVQloadidx8 [c+8*d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto endd36e82450f4737c06501b7bc9e881d13 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -7329,9 +6408,6 @@ end012c0c0292dbfd55f520e4d88d9247e4: v.AddArg(mem) return true } - goto endd36e82450f4737c06501b7bc9e881d13 -endd36e82450f4737c06501b7bc9e881d13: - ; return false } func rewriteValueAMD64_OpAMD64MOVQstore(v *Value, config *Config) bool { @@ -7340,11 +6416,11 @@ func rewriteValueAMD64_OpAMD64MOVQstore(v *Value, config *Config) bool { // match: (MOVQstore [off1] {sym} (ADDQconst [off2] ptr) val mem) // cond: // result: (MOVQstore [addOff(off1, off2)] {sym} ptr val mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end0a110b5e42a4576c32fda50590092848 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7358,23 +6434,20 @@ func rewriteValueAMD64_OpAMD64MOVQstore(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end0a110b5e42a4576c32fda50590092848 -end0a110b5e42a4576c32fda50590092848: - ; // match: (MOVQstore [off] {sym} ptr (MOVQconst [c]) mem) // cond: validValAndOff(c,off) // result: (MOVQstoreconst [makeValAndOff(c,off)] {sym} ptr mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto endda0f4b36e19753762dbd1c6ee05e4c81 + break } c := v.Args[1].AuxInt mem := v.Args[2] if !(validValAndOff(c, off)) { - goto endda0f4b36e19753762dbd1c6ee05e4c81 + break } v.reset(OpAMD64MOVQstoreconst) v.AuxInt = makeValAndOff(c, off) @@ -7383,17 +6456,14 @@ end0a110b5e42a4576c32fda50590092848: v.AddArg(mem) return true } - goto endda0f4b36e19753762dbd1c6ee05e4c81 -endda0f4b36e19753762dbd1c6ee05e4c81: - ; // match: (MOVQstore [off1] {sym1} (LEAQ [off2] {sym2} base) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVQstore [addOff(off1,off2)] {mergeSym(sym1,sym2)} base val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end9a0cfe20b3b0f587e252760907c1b5c0 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -7401,7 +6471,7 @@ endda0f4b36e19753762dbd1c6ee05e4c81: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto end9a0cfe20b3b0f587e252760907c1b5c0 + break } v.reset(OpAMD64MOVQstore) v.AuxInt = addOff(off1, off2) @@ -7411,17 +6481,14 @@ endda0f4b36e19753762dbd1c6ee05e4c81: v.AddArg(mem) return true } - goto end9a0cfe20b3b0f587e252760907c1b5c0 -end9a0cfe20b3b0f587e252760907c1b5c0: - ; // match: (MOVQstore [off1] {sym1} (LEAQ8 [off2] {sym2} ptr idx) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVQstoreidx8 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ8 { - goto end442c322e6719e280b6be1c12858e49d7 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -7430,7 +6497,7 @@ end9a0cfe20b3b0f587e252760907c1b5c0: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto end442c322e6719e280b6be1c12858e49d7 + break } v.reset(OpAMD64MOVQstoreidx8) v.AuxInt = addOff(off1, off2) @@ -7441,9 +6508,6 @@ end9a0cfe20b3b0f587e252760907c1b5c0: v.AddArg(mem) return true } - goto end442c322e6719e280b6be1c12858e49d7 -end442c322e6719e280b6be1c12858e49d7: - ; return false } func rewriteValueAMD64_OpAMD64MOVQstoreconst(v *Value, config *Config) bool { @@ -7452,17 +6516,17 @@ func rewriteValueAMD64_OpAMD64MOVQstoreconst(v *Value, config *Config) bool { // match: (MOVQstoreconst [sc] {s} (ADDQconst [off] ptr) mem) // cond: ValAndOff(sc).canAdd(off) // result: (MOVQstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) - { + for { sc := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end3694207cd20e8e1cc719e179bdfe0c74 + break } off := v.Args[0].AuxInt ptr := v.Args[0].Args[0] mem := v.Args[1] if !(ValAndOff(sc).canAdd(off)) { - goto end3694207cd20e8e1cc719e179bdfe0c74 + break } v.reset(OpAMD64MOVQstoreconst) v.AuxInt = ValAndOff(sc).add(off) @@ -7471,24 +6535,21 @@ func rewriteValueAMD64_OpAMD64MOVQstoreconst(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end3694207cd20e8e1cc719e179bdfe0c74 -end3694207cd20e8e1cc719e179bdfe0c74: - ; // match: (MOVQstoreconst [sc] {sym1} (LEAQ [off] {sym2} ptr) mem) // cond: canMergeSym(sym1, sym2) && ValAndOff(sc).canAdd(off) // result: (MOVQstoreconst [ValAndOff(sc).add(off)] {mergeSym(sym1, sym2)} ptr mem) - { + for { sc := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto endf405b27b22dbf76f83abd1b5ad5e53d9 + break } off := v.Args[0].AuxInt sym2 := v.Args[0].Aux ptr := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2) && ValAndOff(sc).canAdd(off)) { - goto endf405b27b22dbf76f83abd1b5ad5e53d9 + break } v.reset(OpAMD64MOVQstoreconst) v.AuxInt = ValAndOff(sc).add(off) @@ -7497,9 +6558,6 @@ end3694207cd20e8e1cc719e179bdfe0c74: v.AddArg(mem) return true } - goto endf405b27b22dbf76f83abd1b5ad5e53d9 -endf405b27b22dbf76f83abd1b5ad5e53d9: - ; return false } func rewriteValueAMD64_OpAMD64MOVQstoreidx8(v *Value, config *Config) bool { @@ -7508,11 +6566,11 @@ func rewriteValueAMD64_OpAMD64MOVQstoreidx8(v *Value, config *Config) bool { // match: (MOVQstoreidx8 [c] {sym} (ADDQconst [d] ptr) idx val mem) // cond: // result: (MOVQstoreidx8 [c+d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end775cfe4359adc4bffc346289df14bbc3 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7528,18 +6586,15 @@ func rewriteValueAMD64_OpAMD64MOVQstoreidx8(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end775cfe4359adc4bffc346289df14bbc3 -end775cfe4359adc4bffc346289df14bbc3: - ; // match: (MOVQstoreidx8 [c] {sym} ptr (ADDQconst [d] idx) val mem) // cond: // result: (MOVQstoreidx8 [c+8*d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto end20281fb6ccf09a9b56abdba46f443232 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -7554,9 +6609,6 @@ end775cfe4359adc4bffc346289df14bbc3: v.AddArg(mem) return true } - goto end20281fb6ccf09a9b56abdba46f443232 -end20281fb6ccf09a9b56abdba46f443232: - ; return false } func rewriteValueAMD64_OpAMD64MOVSDload(v *Value, config *Config) bool { @@ -7565,11 +6617,11 @@ func rewriteValueAMD64_OpAMD64MOVSDload(v *Value, config *Config) bool { // match: (MOVSDload [off1] {sym} (ADDQconst [off2] ptr) mem) // cond: // result: (MOVSDload [addOff(off1, off2)] {sym} ptr mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end6dad9bf78e7368bb095eb2dfba7e244a + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7581,24 +6633,21 @@ func rewriteValueAMD64_OpAMD64MOVSDload(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end6dad9bf78e7368bb095eb2dfba7e244a -end6dad9bf78e7368bb095eb2dfba7e244a: - ; // match: (MOVSDload [off1] {sym1} (LEAQ [off2] {sym2} base) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVSDload [addOff(off1,off2)] {mergeSym(sym1,sym2)} base mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end96fa9c439e31050aa91582bc2a9f2c20 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux base := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto end96fa9c439e31050aa91582bc2a9f2c20 + break } v.reset(OpAMD64MOVSDload) v.AuxInt = addOff(off1, off2) @@ -7607,17 +6656,14 @@ end6dad9bf78e7368bb095eb2dfba7e244a: v.AddArg(mem) return true } - goto end96fa9c439e31050aa91582bc2a9f2c20 -end96fa9c439e31050aa91582bc2a9f2c20: - ; // match: (MOVSDload [off1] {sym1} (LEAQ8 [off2] {sym2} ptr idx) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVSDloadidx8 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ8 { - goto endbcb2ce441824d0e3a4b501018cfa7f60 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -7625,7 +6671,7 @@ end96fa9c439e31050aa91582bc2a9f2c20: idx := v.Args[0].Args[1] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto endbcb2ce441824d0e3a4b501018cfa7f60 + break } v.reset(OpAMD64MOVSDloadidx8) v.AuxInt = addOff(off1, off2) @@ -7635,9 +6681,6 @@ end96fa9c439e31050aa91582bc2a9f2c20: v.AddArg(mem) return true } - goto endbcb2ce441824d0e3a4b501018cfa7f60 -endbcb2ce441824d0e3a4b501018cfa7f60: - ; return false } func rewriteValueAMD64_OpAMD64MOVSDloadidx8(v *Value, config *Config) bool { @@ -7646,11 +6689,11 @@ func rewriteValueAMD64_OpAMD64MOVSDloadidx8(v *Value, config *Config) bool { // match: (MOVSDloadidx8 [c] {sym} (ADDQconst [d] ptr) idx mem) // cond: // result: (MOVSDloadidx8 [c+d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto endb313602cfa64c282cc86c27c7183c507 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7664,18 +6707,15 @@ func rewriteValueAMD64_OpAMD64MOVSDloadidx8(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endb313602cfa64c282cc86c27c7183c507 -endb313602cfa64c282cc86c27c7183c507: - ; // match: (MOVSDloadidx8 [c] {sym} ptr (ADDQconst [d] idx) mem) // cond: // result: (MOVSDloadidx8 [c+8*d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto endfb406e2cba383116291b60825765637c + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -7688,9 +6728,6 @@ endb313602cfa64c282cc86c27c7183c507: v.AddArg(mem) return true } - goto endfb406e2cba383116291b60825765637c -endfb406e2cba383116291b60825765637c: - ; return false } func rewriteValueAMD64_OpAMD64MOVSDstore(v *Value, config *Config) bool { @@ -7699,11 +6736,11 @@ func rewriteValueAMD64_OpAMD64MOVSDstore(v *Value, config *Config) bool { // match: (MOVSDstore [off1] {sym} (ADDQconst [off2] ptr) val mem) // cond: // result: (MOVSDstore [addOff(off1, off2)] {sym} ptr val mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end6c6160664143cc66e63e67b9aa43a7ef + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7717,17 +6754,14 @@ func rewriteValueAMD64_OpAMD64MOVSDstore(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end6c6160664143cc66e63e67b9aa43a7ef -end6c6160664143cc66e63e67b9aa43a7ef: - ; // match: (MOVSDstore [off1] {sym1} (LEAQ [off2] {sym2} base) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVSDstore [addOff(off1,off2)] {mergeSym(sym1,sym2)} base val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end415dde14f3400bec1b2756174a5d7179 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -7735,7 +6769,7 @@ end6c6160664143cc66e63e67b9aa43a7ef: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto end415dde14f3400bec1b2756174a5d7179 + break } v.reset(OpAMD64MOVSDstore) v.AuxInt = addOff(off1, off2) @@ -7745,17 +6779,14 @@ end6c6160664143cc66e63e67b9aa43a7ef: v.AddArg(mem) return true } - goto end415dde14f3400bec1b2756174a5d7179 -end415dde14f3400bec1b2756174a5d7179: - ; // match: (MOVSDstore [off1] {sym1} (LEAQ8 [off2] {sym2} ptr idx) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVSDstoreidx8 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ8 { - goto end1ad6fc0c5b59610dabf7f9595a48a230 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -7764,7 +6795,7 @@ end415dde14f3400bec1b2756174a5d7179: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto end1ad6fc0c5b59610dabf7f9595a48a230 + break } v.reset(OpAMD64MOVSDstoreidx8) v.AuxInt = addOff(off1, off2) @@ -7775,9 +6806,6 @@ end415dde14f3400bec1b2756174a5d7179: v.AddArg(mem) return true } - goto end1ad6fc0c5b59610dabf7f9595a48a230 -end1ad6fc0c5b59610dabf7f9595a48a230: - ; return false } func rewriteValueAMD64_OpAMD64MOVSDstoreidx8(v *Value, config *Config) bool { @@ -7786,11 +6814,11 @@ func rewriteValueAMD64_OpAMD64MOVSDstoreidx8(v *Value, config *Config) bool { // match: (MOVSDstoreidx8 [c] {sym} (ADDQconst [d] ptr) idx val mem) // cond: // result: (MOVSDstoreidx8 [c+d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end8b8f41236593d5d5e83663cc14350fe8 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7806,18 +6834,15 @@ func rewriteValueAMD64_OpAMD64MOVSDstoreidx8(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end8b8f41236593d5d5e83663cc14350fe8 -end8b8f41236593d5d5e83663cc14350fe8: - ; // match: (MOVSDstoreidx8 [c] {sym} ptr (ADDQconst [d] idx) val mem) // cond: // result: (MOVSDstoreidx8 [c+8*d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto end94b7159715acb6ebb94b08b3a826f5fe + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -7832,9 +6857,6 @@ end8b8f41236593d5d5e83663cc14350fe8: v.AddArg(mem) return true } - goto end94b7159715acb6ebb94b08b3a826f5fe -end94b7159715acb6ebb94b08b3a826f5fe: - ; return false } func rewriteValueAMD64_OpAMD64MOVSSload(v *Value, config *Config) bool { @@ -7843,11 +6865,11 @@ func rewriteValueAMD64_OpAMD64MOVSSload(v *Value, config *Config) bool { // match: (MOVSSload [off1] {sym} (ADDQconst [off2] ptr) mem) // cond: // result: (MOVSSload [addOff(off1, off2)] {sym} ptr mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end96d63dbb64b0adfa944684c9e939c972 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7859,24 +6881,21 @@ func rewriteValueAMD64_OpAMD64MOVSSload(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end96d63dbb64b0adfa944684c9e939c972 -end96d63dbb64b0adfa944684c9e939c972: - ; // match: (MOVSSload [off1] {sym1} (LEAQ [off2] {sym2} base) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVSSload [addOff(off1,off2)] {mergeSym(sym1,sym2)} base mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end15f2583bd72ad7fc077b3952634a1c85 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux base := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto end15f2583bd72ad7fc077b3952634a1c85 + break } v.reset(OpAMD64MOVSSload) v.AuxInt = addOff(off1, off2) @@ -7885,17 +6904,14 @@ end96d63dbb64b0adfa944684c9e939c972: v.AddArg(mem) return true } - goto end15f2583bd72ad7fc077b3952634a1c85 -end15f2583bd72ad7fc077b3952634a1c85: - ; // match: (MOVSSload [off1] {sym1} (LEAQ4 [off2] {sym2} ptr idx) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVSSloadidx4 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ4 { - goto end49722f4a0adba31bb143601ce1d2aae0 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -7903,7 +6919,7 @@ end15f2583bd72ad7fc077b3952634a1c85: idx := v.Args[0].Args[1] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto end49722f4a0adba31bb143601ce1d2aae0 + break } v.reset(OpAMD64MOVSSloadidx4) v.AuxInt = addOff(off1, off2) @@ -7913,9 +6929,6 @@ end15f2583bd72ad7fc077b3952634a1c85: v.AddArg(mem) return true } - goto end49722f4a0adba31bb143601ce1d2aae0 -end49722f4a0adba31bb143601ce1d2aae0: - ; return false } func rewriteValueAMD64_OpAMD64MOVSSloadidx4(v *Value, config *Config) bool { @@ -7924,11 +6937,11 @@ func rewriteValueAMD64_OpAMD64MOVSSloadidx4(v *Value, config *Config) bool { // match: (MOVSSloadidx4 [c] {sym} (ADDQconst [d] ptr) idx mem) // cond: // result: (MOVSSloadidx4 [c+d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end2317614a112d773b1209327d552bb022 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7942,18 +6955,15 @@ func rewriteValueAMD64_OpAMD64MOVSSloadidx4(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end2317614a112d773b1209327d552bb022 -end2317614a112d773b1209327d552bb022: - ; // match: (MOVSSloadidx4 [c] {sym} ptr (ADDQconst [d] idx) mem) // cond: // result: (MOVSSloadidx4 [c+4*d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto endd3063853eaa3813f3c95eedeba23e391 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -7966,9 +6976,6 @@ end2317614a112d773b1209327d552bb022: v.AddArg(mem) return true } - goto endd3063853eaa3813f3c95eedeba23e391 -endd3063853eaa3813f3c95eedeba23e391: - ; return false } func rewriteValueAMD64_OpAMD64MOVSSstore(v *Value, config *Config) bool { @@ -7977,11 +6984,11 @@ func rewriteValueAMD64_OpAMD64MOVSSstore(v *Value, config *Config) bool { // match: (MOVSSstore [off1] {sym} (ADDQconst [off2] ptr) val mem) // cond: // result: (MOVSSstore [addOff(off1, off2)] {sym} ptr val mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto endf711aa4081a9b2924b55387d4f70cfd6 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -7995,17 +7002,14 @@ func rewriteValueAMD64_OpAMD64MOVSSstore(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endf711aa4081a9b2924b55387d4f70cfd6 -endf711aa4081a9b2924b55387d4f70cfd6: - ; // match: (MOVSSstore [off1] {sym1} (LEAQ [off2] {sym2} base) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVSSstore [addOff(off1,off2)] {mergeSym(sym1,sym2)} base val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end70ebc170131920e515e3f416a6b952c5 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -8013,7 +7017,7 @@ endf711aa4081a9b2924b55387d4f70cfd6: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto end70ebc170131920e515e3f416a6b952c5 + break } v.reset(OpAMD64MOVSSstore) v.AuxInt = addOff(off1, off2) @@ -8023,17 +7027,14 @@ endf711aa4081a9b2924b55387d4f70cfd6: v.AddArg(mem) return true } - goto end70ebc170131920e515e3f416a6b952c5 -end70ebc170131920e515e3f416a6b952c5: - ; // match: (MOVSSstore [off1] {sym1} (LEAQ4 [off2] {sym2} ptr idx) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVSSstoreidx4 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ4 { - goto end1622dc435e45833eda4d29d44df7cc34 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -8042,7 +7043,7 @@ end70ebc170131920e515e3f416a6b952c5: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto end1622dc435e45833eda4d29d44df7cc34 + break } v.reset(OpAMD64MOVSSstoreidx4) v.AuxInt = addOff(off1, off2) @@ -8053,9 +7054,6 @@ end70ebc170131920e515e3f416a6b952c5: v.AddArg(mem) return true } - goto end1622dc435e45833eda4d29d44df7cc34 -end1622dc435e45833eda4d29d44df7cc34: - ; return false } func rewriteValueAMD64_OpAMD64MOVSSstoreidx4(v *Value, config *Config) bool { @@ -8064,11 +7062,11 @@ func rewriteValueAMD64_OpAMD64MOVSSstoreidx4(v *Value, config *Config) bool { // match: (MOVSSstoreidx4 [c] {sym} (ADDQconst [d] ptr) idx val mem) // cond: // result: (MOVSSstoreidx4 [c+d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end5995724dec9833993ca0b1c827919b6a + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -8084,18 +7082,15 @@ func rewriteValueAMD64_OpAMD64MOVSSstoreidx4(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end5995724dec9833993ca0b1c827919b6a -end5995724dec9833993ca0b1c827919b6a: - ; // match: (MOVSSstoreidx4 [c] {sym} ptr (ADDQconst [d] idx) val mem) // cond: // result: (MOVSSstoreidx4 [c+4*d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto endad50732309bcc958cffc54992194cdd6 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -8110,9 +7105,6 @@ end5995724dec9833993ca0b1c827919b6a: v.AddArg(mem) return true } - goto endad50732309bcc958cffc54992194cdd6 -endad50732309bcc958cffc54992194cdd6: - ; return false } func rewriteValueAMD64_OpAMD64MOVWQSX(v *Value, config *Config) bool { @@ -8121,9 +7113,9 @@ func rewriteValueAMD64_OpAMD64MOVWQSX(v *Value, config *Config) bool { // match: (MOVWQSX (MOVWload [off] {sym} ptr mem)) // cond: // result: @v.Args[0].Block (MOVWQSXload [off] {sym} ptr mem) - { + for { if v.Args[0].Op != OpAMD64MOVWload { - goto endef39da125e2794cdafd008426ecc91eb + break } off := v.Args[0].AuxInt sym := v.Args[0].Aux @@ -8138,29 +7130,23 @@ func rewriteValueAMD64_OpAMD64MOVWQSX(v *Value, config *Config) bool { v0.AddArg(mem) return true } - goto endef39da125e2794cdafd008426ecc91eb -endef39da125e2794cdafd008426ecc91eb: - ; // match: (MOVWQSX (ANDWconst [c] x)) // cond: c & 0x8000 == 0 // result: (ANDQconst [c & 0x7fff] x) - { + for { if v.Args[0].Op != OpAMD64ANDWconst { - goto end8581b4c4dfd1278e97aa536308519e68 + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] if !(c&0x8000 == 0) { - goto end8581b4c4dfd1278e97aa536308519e68 + break } v.reset(OpAMD64ANDQconst) v.AuxInt = c & 0x7fff v.AddArg(x) return true } - goto end8581b4c4dfd1278e97aa536308519e68 -end8581b4c4dfd1278e97aa536308519e68: - ; return false } func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value, config *Config) bool { @@ -8169,9 +7155,9 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value, config *Config) bool { // match: (MOVWQZX (MOVWload [off] {sym} ptr mem)) // cond: // result: @v.Args[0].Block (MOVWQZXload [off] {sym} ptr mem) - { + for { if v.Args[0].Op != OpAMD64MOVWload { - goto end348d59b382c9d0c64896811facbe4c5e + break } off := v.Args[0].AuxInt sym := v.Args[0].Aux @@ -8186,15 +7172,12 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value, config *Config) bool { v0.AddArg(mem) return true } - goto end348d59b382c9d0c64896811facbe4c5e -end348d59b382c9d0c64896811facbe4c5e: - ; // match: (MOVWQZX (ANDWconst [c] x)) // cond: // result: (ANDQconst [c & 0xffff] x) - { + for { if v.Args[0].Op != OpAMD64ANDWconst { - goto end15c2a3b0ade49892e79289e562bac52f + break } c := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -8203,9 +7186,6 @@ end348d59b382c9d0c64896811facbe4c5e: v.AddArg(x) return true } - goto end15c2a3b0ade49892e79289e562bac52f -end15c2a3b0ade49892e79289e562bac52f: - ; return false } func rewriteValueAMD64_OpAMD64MOVWload(v *Value, config *Config) bool { @@ -8214,11 +7194,11 @@ func rewriteValueAMD64_OpAMD64MOVWload(v *Value, config *Config) bool { // match: (MOVWload [off1] {sym} (ADDQconst [off2] ptr) mem) // cond: // result: (MOVWload [addOff(off1, off2)] {sym} ptr mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto endfcb0ce76f96e8b0c2eb19a9b827c1b73 + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -8230,24 +7210,21 @@ func rewriteValueAMD64_OpAMD64MOVWload(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endfcb0ce76f96e8b0c2eb19a9b827c1b73 -endfcb0ce76f96e8b0c2eb19a9b827c1b73: - ; // match: (MOVWload [off1] {sym1} (LEAQ [off2] {sym2} base) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVWload [addOff(off1,off2)] {mergeSym(sym1,sym2)} base mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end7a79314cb49bf53d79c38c3077d87457 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux base := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto end7a79314cb49bf53d79c38c3077d87457 + break } v.reset(OpAMD64MOVWload) v.AuxInt = addOff(off1, off2) @@ -8256,17 +7233,14 @@ endfcb0ce76f96e8b0c2eb19a9b827c1b73: v.AddArg(mem) return true } - goto end7a79314cb49bf53d79c38c3077d87457 -end7a79314cb49bf53d79c38c3077d87457: - ; // match: (MOVWload [off1] {sym1} (LEAQ2 [off2] {sym2} ptr idx) mem) // cond: canMergeSym(sym1, sym2) // result: (MOVWloadidx2 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ2 { - goto end1a7be5e27e24f56f760b50d4d2f2a8da + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -8274,7 +7248,7 @@ end7a79314cb49bf53d79c38c3077d87457: idx := v.Args[0].Args[1] mem := v.Args[1] if !(canMergeSym(sym1, sym2)) { - goto end1a7be5e27e24f56f760b50d4d2f2a8da + break } v.reset(OpAMD64MOVWloadidx2) v.AuxInt = addOff(off1, off2) @@ -8284,9 +7258,6 @@ end7a79314cb49bf53d79c38c3077d87457: v.AddArg(mem) return true } - goto end1a7be5e27e24f56f760b50d4d2f2a8da -end1a7be5e27e24f56f760b50d4d2f2a8da: - ; return false } func rewriteValueAMD64_OpAMD64MOVWloadidx2(v *Value, config *Config) bool { @@ -8295,11 +7266,11 @@ func rewriteValueAMD64_OpAMD64MOVWloadidx2(v *Value, config *Config) bool { // match: (MOVWloadidx2 [c] {sym} (ADDQconst [d] ptr) idx mem) // cond: // result: (MOVWloadidx2 [c+d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end1a8b9db99bc480ce4f8cc0fa0e6024ea + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -8313,18 +7284,15 @@ func rewriteValueAMD64_OpAMD64MOVWloadidx2(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end1a8b9db99bc480ce4f8cc0fa0e6024ea -end1a8b9db99bc480ce4f8cc0fa0e6024ea: - ; // match: (MOVWloadidx2 [c] {sym} ptr (ADDQconst [d] idx) mem) // cond: // result: (MOVWloadidx2 [c+2*d] {sym} ptr idx mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto end38e4b4448cc3c61b0691bc11c61c7098 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -8337,9 +7305,6 @@ end1a8b9db99bc480ce4f8cc0fa0e6024ea: v.AddArg(mem) return true } - goto end38e4b4448cc3c61b0691bc11c61c7098 -end38e4b4448cc3c61b0691bc11c61c7098: - ; return false } func rewriteValueAMD64_OpAMD64MOVWstore(v *Value, config *Config) bool { @@ -8348,12 +7313,12 @@ func rewriteValueAMD64_OpAMD64MOVWstore(v *Value, config *Config) bool { // match: (MOVWstore [off] {sym} ptr (MOVWQSX x) mem) // cond: // result: (MOVWstore [off] {sym} ptr x mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVWQSX { - goto endca90c534e75c7f5cb803504d119a853f + break } x := v.Args[1].Args[0] mem := v.Args[2] @@ -8365,18 +7330,15 @@ func rewriteValueAMD64_OpAMD64MOVWstore(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endca90c534e75c7f5cb803504d119a853f -endca90c534e75c7f5cb803504d119a853f: - ; // match: (MOVWstore [off] {sym} ptr (MOVWQZX x) mem) // cond: // result: (MOVWstore [off] {sym} ptr x mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVWQZX { - goto end187fe73dfaf9cf5f4c349283b4dfd9d1 + break } x := v.Args[1].Args[0] mem := v.Args[2] @@ -8388,17 +7350,14 @@ endca90c534e75c7f5cb803504d119a853f: v.AddArg(mem) return true } - goto end187fe73dfaf9cf5f4c349283b4dfd9d1 -end187fe73dfaf9cf5f4c349283b4dfd9d1: - ; // match: (MOVWstore [off1] {sym} (ADDQconst [off2] ptr) val mem) // cond: // result: (MOVWstore [addOff(off1, off2)] {sym} ptr val mem) - { + for { off1 := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto endda15fdd59aa956ded0440188f38de1aa + break } off2 := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -8412,23 +7371,20 @@ end187fe73dfaf9cf5f4c349283b4dfd9d1: v.AddArg(mem) return true } - goto endda15fdd59aa956ded0440188f38de1aa -endda15fdd59aa956ded0440188f38de1aa: - ; // match: (MOVWstore [off] {sym} ptr (MOVWconst [c]) mem) // cond: validOff(off) // result: (MOVWstoreconst [makeValAndOff(int64(int16(c)),off)] {sym} ptr mem) - { + for { off := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end60327daf9965d73a8c1971d098e1e31d + break } c := v.Args[1].AuxInt mem := v.Args[2] if !(validOff(off)) { - goto end60327daf9965d73a8c1971d098e1e31d + break } v.reset(OpAMD64MOVWstoreconst) v.AuxInt = makeValAndOff(int64(int16(c)), off) @@ -8437,17 +7393,14 @@ endda15fdd59aa956ded0440188f38de1aa: v.AddArg(mem) return true } - goto end60327daf9965d73a8c1971d098e1e31d -end60327daf9965d73a8c1971d098e1e31d: - ; // match: (MOVWstore [off1] {sym1} (LEAQ [off2] {sym2} base) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVWstore [addOff(off1,off2)] {mergeSym(sym1,sym2)} base val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto end4cc466ede8e64e415c899ccac81c0f27 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -8455,7 +7408,7 @@ end60327daf9965d73a8c1971d098e1e31d: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto end4cc466ede8e64e415c899ccac81c0f27 + break } v.reset(OpAMD64MOVWstore) v.AuxInt = addOff(off1, off2) @@ -8465,17 +7418,14 @@ end60327daf9965d73a8c1971d098e1e31d: v.AddArg(mem) return true } - goto end4cc466ede8e64e415c899ccac81c0f27 -end4cc466ede8e64e415c899ccac81c0f27: - ; // match: (MOVWstore [off1] {sym1} (LEAQ2 [off2] {sym2} ptr idx) val mem) // cond: canMergeSym(sym1, sym2) // result: (MOVWstoreidx2 [addOff(off1, off2)] {mergeSym(sym1,sym2)} ptr idx val mem) - { + for { off1 := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ2 { - goto endecfc76d1ba8fcce5d4110a452cd39752 + break } off2 := v.Args[0].AuxInt sym2 := v.Args[0].Aux @@ -8484,7 +7434,7 @@ end4cc466ede8e64e415c899ccac81c0f27: val := v.Args[1] mem := v.Args[2] if !(canMergeSym(sym1, sym2)) { - goto endecfc76d1ba8fcce5d4110a452cd39752 + break } v.reset(OpAMD64MOVWstoreidx2) v.AuxInt = addOff(off1, off2) @@ -8495,9 +7445,6 @@ end4cc466ede8e64e415c899ccac81c0f27: v.AddArg(mem) return true } - goto endecfc76d1ba8fcce5d4110a452cd39752 -endecfc76d1ba8fcce5d4110a452cd39752: - ; return false } func rewriteValueAMD64_OpAMD64MOVWstoreconst(v *Value, config *Config) bool { @@ -8506,17 +7453,17 @@ func rewriteValueAMD64_OpAMD64MOVWstoreconst(v *Value, config *Config) bool { // match: (MOVWstoreconst [sc] {s} (ADDQconst [off] ptr) mem) // cond: ValAndOff(sc).canAdd(off) // result: (MOVWstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) - { + for { sc := v.AuxInt s := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end8825edac065f0e1c615ca5e6ba40e2de + break } off := v.Args[0].AuxInt ptr := v.Args[0].Args[0] mem := v.Args[1] if !(ValAndOff(sc).canAdd(off)) { - goto end8825edac065f0e1c615ca5e6ba40e2de + break } v.reset(OpAMD64MOVWstoreconst) v.AuxInt = ValAndOff(sc).add(off) @@ -8525,24 +7472,21 @@ func rewriteValueAMD64_OpAMD64MOVWstoreconst(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end8825edac065f0e1c615ca5e6ba40e2de -end8825edac065f0e1c615ca5e6ba40e2de: - ; // match: (MOVWstoreconst [sc] {sym1} (LEAQ [off] {sym2} ptr) mem) // cond: canMergeSym(sym1, sym2) && ValAndOff(sc).canAdd(off) // result: (MOVWstoreconst [ValAndOff(sc).add(off)] {mergeSym(sym1, sym2)} ptr mem) - { + for { sc := v.AuxInt sym1 := v.Aux if v.Args[0].Op != OpAMD64LEAQ { - goto endba47397e07b40a64fa4cad36ac2e32ad + break } off := v.Args[0].AuxInt sym2 := v.Args[0].Aux ptr := v.Args[0].Args[0] mem := v.Args[1] if !(canMergeSym(sym1, sym2) && ValAndOff(sc).canAdd(off)) { - goto endba47397e07b40a64fa4cad36ac2e32ad + break } v.reset(OpAMD64MOVWstoreconst) v.AuxInt = ValAndOff(sc).add(off) @@ -8551,9 +7495,6 @@ end8825edac065f0e1c615ca5e6ba40e2de: v.AddArg(mem) return true } - goto endba47397e07b40a64fa4cad36ac2e32ad -endba47397e07b40a64fa4cad36ac2e32ad: - ; return false } func rewriteValueAMD64_OpAMD64MOVWstoreidx2(v *Value, config *Config) bool { @@ -8562,11 +7503,11 @@ func rewriteValueAMD64_OpAMD64MOVWstoreidx2(v *Value, config *Config) bool { // match: (MOVWstoreidx2 [c] {sym} (ADDQconst [d] ptr) idx val mem) // cond: // result: (MOVWstoreidx2 [c+d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux if v.Args[0].Op != OpAMD64ADDQconst { - goto end8e684d397fadfa1c3f0783597ca01cc7 + break } d := v.Args[0].AuxInt ptr := v.Args[0].Args[0] @@ -8582,18 +7523,15 @@ func rewriteValueAMD64_OpAMD64MOVWstoreidx2(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end8e684d397fadfa1c3f0783597ca01cc7 -end8e684d397fadfa1c3f0783597ca01cc7: - ; // match: (MOVWstoreidx2 [c] {sym} ptr (ADDQconst [d] idx) val mem) // cond: // result: (MOVWstoreidx2 [c+2*d] {sym} ptr idx val mem) - { + for { c := v.AuxInt sym := v.Aux ptr := v.Args[0] if v.Args[1].Op != OpAMD64ADDQconst { - goto end9701df480a14263338b1d37a15b59eb5 + break } d := v.Args[1].AuxInt idx := v.Args[1].Args[0] @@ -8608,9 +7546,6 @@ end8e684d397fadfa1c3f0783597ca01cc7: v.AddArg(mem) return true } - goto end9701df480a14263338b1d37a15b59eb5 -end9701df480a14263338b1d37a15b59eb5: - ; return false } func rewriteValueAMD64_OpAMD64MULB(v *Value, config *Config) bool { @@ -8619,10 +7554,10 @@ func rewriteValueAMD64_OpAMD64MULB(v *Value, config *Config) bool { // match: (MULB x (MOVBconst [c])) // cond: // result: (MULBconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end66c6419213ddeb52b1c53fb589a70e5f + break } c := v.Args[1].AuxInt v.reset(OpAMD64MULBconst) @@ -8630,15 +7565,12 @@ func rewriteValueAMD64_OpAMD64MULB(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end66c6419213ddeb52b1c53fb589a70e5f -end66c6419213ddeb52b1c53fb589a70e5f: - ; // match: (MULB (MOVBconst [c]) x) // cond: // result: (MULBconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto end7e82c8dbbba265b78035ca7df394bb06 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -8647,9 +7579,6 @@ end66c6419213ddeb52b1c53fb589a70e5f: v.AddArg(x) return true } - goto end7e82c8dbbba265b78035ca7df394bb06 -end7e82c8dbbba265b78035ca7df394bb06: - ; return false } func rewriteValueAMD64_OpAMD64MULBconst(v *Value, config *Config) bool { @@ -8658,19 +7587,16 @@ func rewriteValueAMD64_OpAMD64MULBconst(v *Value, config *Config) bool { // match: (MULBconst [c] (MOVBconst [d])) // cond: // result: (MOVBconst [c*d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVBconst { - goto endf2db9f96016085f8cb4082b4af01b2aa + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = c * d return true } - goto endf2db9f96016085f8cb4082b4af01b2aa -endf2db9f96016085f8cb4082b4af01b2aa: - ; return false } func rewriteValueAMD64_OpAMD64MULL(v *Value, config *Config) bool { @@ -8679,10 +7605,10 @@ func rewriteValueAMD64_OpAMD64MULL(v *Value, config *Config) bool { // match: (MULL x (MOVLconst [c])) // cond: // result: (MULLconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end893477a261bcad6c2821b77c83075c6c + break } c := v.Args[1].AuxInt v.reset(OpAMD64MULLconst) @@ -8690,15 +7616,12 @@ func rewriteValueAMD64_OpAMD64MULL(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end893477a261bcad6c2821b77c83075c6c -end893477a261bcad6c2821b77c83075c6c: - ; // match: (MULL (MOVLconst [c]) x) // cond: // result: (MULLconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto end8a0f957c528a54eecb0dbfc5d96e017a + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -8707,9 +7630,6 @@ end893477a261bcad6c2821b77c83075c6c: v.AddArg(x) return true } - goto end8a0f957c528a54eecb0dbfc5d96e017a -end8a0f957c528a54eecb0dbfc5d96e017a: - ; return false } func rewriteValueAMD64_OpAMD64MULLconst(v *Value, config *Config) bool { @@ -8718,19 +7638,16 @@ func rewriteValueAMD64_OpAMD64MULLconst(v *Value, config *Config) bool { // match: (MULLconst [c] (MOVLconst [d])) // cond: // result: (MOVLconst [c*d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVLconst { - goto endd5732835ed1276ef8b728bcfc1289f73 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVLconst) v.AuxInt = c * d return true } - goto endd5732835ed1276ef8b728bcfc1289f73 -endd5732835ed1276ef8b728bcfc1289f73: - ; return false } func rewriteValueAMD64_OpAMD64MULQ(v *Value, config *Config) bool { @@ -8739,43 +7656,37 @@ func rewriteValueAMD64_OpAMD64MULQ(v *Value, config *Config) bool { // match: (MULQ x (MOVQconst [c])) // cond: is32Bit(c) // result: (MULQconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto endb38c6e3e0ddfa25ba0ef9684ac1528c0 + break } c := v.Args[1].AuxInt if !(is32Bit(c)) { - goto endb38c6e3e0ddfa25ba0ef9684ac1528c0 + break } v.reset(OpAMD64MULQconst) v.AuxInt = c v.AddArg(x) return true } - goto endb38c6e3e0ddfa25ba0ef9684ac1528c0 -endb38c6e3e0ddfa25ba0ef9684ac1528c0: - ; // match: (MULQ (MOVQconst [c]) x) // cond: is32Bit(c) // result: (MULQconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto end9cb4f29b0bd7141639416735dcbb3b87 + break } c := v.Args[0].AuxInt x := v.Args[1] if !(is32Bit(c)) { - goto end9cb4f29b0bd7141639416735dcbb3b87 + break } v.reset(OpAMD64MULQconst) v.AuxInt = c v.AddArg(x) return true } - goto end9cb4f29b0bd7141639416735dcbb3b87 -end9cb4f29b0bd7141639416735dcbb3b87: - ; return false } func rewriteValueAMD64_OpAMD64MULQconst(v *Value, config *Config) bool { @@ -8784,38 +7695,32 @@ func rewriteValueAMD64_OpAMD64MULQconst(v *Value, config *Config) bool { // match: (MULQconst [-1] x) // cond: // result: (NEGQ x) - { + for { if v.AuxInt != -1 { - goto end82501cca6b5fb121a7f8b197e55f2fec + break } x := v.Args[0] v.reset(OpAMD64NEGQ) v.AddArg(x) return true } - goto end82501cca6b5fb121a7f8b197e55f2fec -end82501cca6b5fb121a7f8b197e55f2fec: - ; // match: (MULQconst [0] _) // cond: // result: (MOVQconst [0]) - { + for { if v.AuxInt != 0 { - goto endcb9faa068e3558ff44daaf1d47d091b5 + break } v.reset(OpAMD64MOVQconst) v.AuxInt = 0 return true } - goto endcb9faa068e3558ff44daaf1d47d091b5 -endcb9faa068e3558ff44daaf1d47d091b5: - ; // match: (MULQconst [1] x) // cond: // result: x - { + for { if v.AuxInt != 1 { - goto end0b527e71db2b288b2841a1f757aa580d + break } x := v.Args[0] v.reset(OpCopy) @@ -8823,15 +7728,12 @@ endcb9faa068e3558ff44daaf1d47d091b5: v.AddArg(x) return true } - goto end0b527e71db2b288b2841a1f757aa580d -end0b527e71db2b288b2841a1f757aa580d: - ; // match: (MULQconst [3] x) // cond: // result: (LEAQ2 x x) - { + for { if v.AuxInt != 3 { - goto end34a86f261671b5852bec6c57155fe0da + break } x := v.Args[0] v.reset(OpAMD64LEAQ2) @@ -8839,15 +7741,12 @@ end0b527e71db2b288b2841a1f757aa580d: v.AddArg(x) return true } - goto end34a86f261671b5852bec6c57155fe0da -end34a86f261671b5852bec6c57155fe0da: - ; // match: (MULQconst [5] x) // cond: // result: (LEAQ4 x x) - { + for { if v.AuxInt != 5 { - goto end534601906c45a9171a9fec3e4b82b189 + break } x := v.Args[0] v.reset(OpAMD64LEAQ4) @@ -8855,15 +7754,12 @@ end34a86f261671b5852bec6c57155fe0da: v.AddArg(x) return true } - goto end534601906c45a9171a9fec3e4b82b189 -end534601906c45a9171a9fec3e4b82b189: - ; // match: (MULQconst [9] x) // cond: // result: (LEAQ8 x x) - { + for { if v.AuxInt != 9 { - goto end48a2280b6459821289c56073b8354997 + break } x := v.Args[0] v.reset(OpAMD64LEAQ8) @@ -8871,42 +7767,33 @@ end534601906c45a9171a9fec3e4b82b189: v.AddArg(x) return true } - goto end48a2280b6459821289c56073b8354997 -end48a2280b6459821289c56073b8354997: - ; // match: (MULQconst [c] x) // cond: isPowerOfTwo(c) // result: (SHLQconst [log2(c)] x) - { + for { c := v.AuxInt x := v.Args[0] if !(isPowerOfTwo(c)) { - goto end75076953dbfe022526a153eda99b39b2 + break } v.reset(OpAMD64SHLQconst) v.AuxInt = log2(c) v.AddArg(x) return true } - goto end75076953dbfe022526a153eda99b39b2 -end75076953dbfe022526a153eda99b39b2: - ; // match: (MULQconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [c*d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto end55c38c5c405101e610d7ba7fc702ddc0 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = c * d return true } - goto end55c38c5c405101e610d7ba7fc702ddc0 -end55c38c5c405101e610d7ba7fc702ddc0: - ; return false } func rewriteValueAMD64_OpAMD64MULW(v *Value, config *Config) bool { @@ -8915,10 +7802,10 @@ func rewriteValueAMD64_OpAMD64MULW(v *Value, config *Config) bool { // match: (MULW x (MOVWconst [c])) // cond: // result: (MULWconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end542112cc08217d4bdffc1a645d290ffb + break } c := v.Args[1].AuxInt v.reset(OpAMD64MULWconst) @@ -8926,15 +7813,12 @@ func rewriteValueAMD64_OpAMD64MULW(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end542112cc08217d4bdffc1a645d290ffb -end542112cc08217d4bdffc1a645d290ffb: - ; // match: (MULW (MOVWconst [c]) x) // cond: // result: (MULWconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto endd97b4245ced2b3d27d8c555b06281de4 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -8943,9 +7827,6 @@ end542112cc08217d4bdffc1a645d290ffb: v.AddArg(x) return true } - goto endd97b4245ced2b3d27d8c555b06281de4 -endd97b4245ced2b3d27d8c555b06281de4: - ; return false } func rewriteValueAMD64_OpAMD64MULWconst(v *Value, config *Config) bool { @@ -8954,19 +7835,16 @@ func rewriteValueAMD64_OpAMD64MULWconst(v *Value, config *Config) bool { // match: (MULWconst [c] (MOVWconst [d])) // cond: // result: (MOVWconst [c*d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVWconst { - goto end61dbc9d9e93dd6946a20a1f475b3f74b + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVWconst) v.AuxInt = c * d return true } - goto end61dbc9d9e93dd6946a20a1f475b3f74b -end61dbc9d9e93dd6946a20a1f475b3f74b: - ; return false } func rewriteValueAMD64_OpMod16(v *Value, config *Config) bool { @@ -8975,7 +7853,7 @@ func rewriteValueAMD64_OpMod16(v *Value, config *Config) bool { // match: (Mod16 x y) // cond: // result: (MODW x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MODW) @@ -8983,9 +7861,6 @@ func rewriteValueAMD64_OpMod16(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end036bac694be9fe0d6b00b86c2e625990 -end036bac694be9fe0d6b00b86c2e625990: - ; return false } func rewriteValueAMD64_OpMod16u(v *Value, config *Config) bool { @@ -8994,7 +7869,7 @@ func rewriteValueAMD64_OpMod16u(v *Value, config *Config) bool { // match: (Mod16u x y) // cond: // result: (MODWU x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MODWU) @@ -9002,9 +7877,6 @@ func rewriteValueAMD64_OpMod16u(v *Value, config *Config) bool { v.AddArg(y) return true } - goto enda75d900097f1510ca1c6df786bef0c24 -enda75d900097f1510ca1c6df786bef0c24: - ; return false } func rewriteValueAMD64_OpMod32(v *Value, config *Config) bool { @@ -9013,7 +7885,7 @@ func rewriteValueAMD64_OpMod32(v *Value, config *Config) bool { // match: (Mod32 x y) // cond: // result: (MODL x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MODL) @@ -9021,9 +7893,6 @@ func rewriteValueAMD64_OpMod32(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end12c8c0ecf3296810b8217cd4e40f7707 -end12c8c0ecf3296810b8217cd4e40f7707: - ; return false } func rewriteValueAMD64_OpMod32u(v *Value, config *Config) bool { @@ -9032,7 +7901,7 @@ func rewriteValueAMD64_OpMod32u(v *Value, config *Config) bool { // match: (Mod32u x y) // cond: // result: (MODLU x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MODLU) @@ -9040,9 +7909,6 @@ func rewriteValueAMD64_OpMod32u(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end1f0892076cfd58733a08d3ab175a3c1c -end1f0892076cfd58733a08d3ab175a3c1c: - ; return false } func rewriteValueAMD64_OpMod64(v *Value, config *Config) bool { @@ -9051,7 +7917,7 @@ func rewriteValueAMD64_OpMod64(v *Value, config *Config) bool { // match: (Mod64 x y) // cond: // result: (MODQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MODQ) @@ -9059,9 +7925,6 @@ func rewriteValueAMD64_OpMod64(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endaae75f449baf5dc108be4e0439af97f2 -endaae75f449baf5dc108be4e0439af97f2: - ; return false } func rewriteValueAMD64_OpMod64u(v *Value, config *Config) bool { @@ -9070,7 +7933,7 @@ func rewriteValueAMD64_OpMod64u(v *Value, config *Config) bool { // match: (Mod64u x y) // cond: // result: (MODQU x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MODQU) @@ -9078,9 +7941,6 @@ func rewriteValueAMD64_OpMod64u(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end0d4c8b9df77e59289fb14e2496559d1d -end0d4c8b9df77e59289fb14e2496559d1d: - ; return false } func rewriteValueAMD64_OpMod8(v *Value, config *Config) bool { @@ -9089,7 +7949,7 @@ func rewriteValueAMD64_OpMod8(v *Value, config *Config) bool { // match: (Mod8 x y) // cond: // result: (MODW (SignExt8to16 x) (SignExt8to16 y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MODW) @@ -9101,9 +7961,6 @@ func rewriteValueAMD64_OpMod8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endf959fc16e72bc6dc47ab7c9ee3778901 -endf959fc16e72bc6dc47ab7c9ee3778901: - ; return false } func rewriteValueAMD64_OpMod8u(v *Value, config *Config) bool { @@ -9112,7 +7969,7 @@ func rewriteValueAMD64_OpMod8u(v *Value, config *Config) bool { // match: (Mod8u x y) // cond: // result: (MODWU (ZeroExt8to16 x) (ZeroExt8to16 y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MODWU) @@ -9124,9 +7981,6 @@ func rewriteValueAMD64_OpMod8u(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end9b3274d9dd7f1e91c75ce5e7b548fe97 -end9b3274d9dd7f1e91c75ce5e7b548fe97: - ; return false } func rewriteValueAMD64_OpMove(v *Value, config *Config) bool { @@ -9135,9 +7989,9 @@ func rewriteValueAMD64_OpMove(v *Value, config *Config) bool { // match: (Move [0] _ _ mem) // cond: // result: mem - { + for { if v.AuxInt != 0 { - goto end0961cbfe144a616cba75190d07d65e41 + break } mem := v.Args[2] v.reset(OpCopy) @@ -9145,15 +7999,12 @@ func rewriteValueAMD64_OpMove(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end0961cbfe144a616cba75190d07d65e41 -end0961cbfe144a616cba75190d07d65e41: - ; // match: (Move [1] dst src mem) // cond: // result: (MOVBstore dst (MOVBload src mem) mem) - { + for { if v.AuxInt != 1 { - goto end72e5dd27e999493b67ea3af4ecc60d48 + break } dst := v.Args[0] src := v.Args[1] @@ -9167,15 +8018,12 @@ end0961cbfe144a616cba75190d07d65e41: v.AddArg(mem) return true } - goto end72e5dd27e999493b67ea3af4ecc60d48 -end72e5dd27e999493b67ea3af4ecc60d48: - ; // match: (Move [2] dst src mem) // cond: // result: (MOVWstore dst (MOVWload src mem) mem) - { + for { if v.AuxInt != 2 { - goto end017f774e406d4578b4bcefcd8db8ec1e + break } dst := v.Args[0] src := v.Args[1] @@ -9189,15 +8037,12 @@ end72e5dd27e999493b67ea3af4ecc60d48: v.AddArg(mem) return true } - goto end017f774e406d4578b4bcefcd8db8ec1e -end017f774e406d4578b4bcefcd8db8ec1e: - ; // match: (Move [4] dst src mem) // cond: // result: (MOVLstore dst (MOVLload src mem) mem) - { + for { if v.AuxInt != 4 { - goto end938ec47a2ddf8e9b4bf71ffade6e5b3f + break } dst := v.Args[0] src := v.Args[1] @@ -9211,15 +8056,12 @@ end017f774e406d4578b4bcefcd8db8ec1e: v.AddArg(mem) return true } - goto end938ec47a2ddf8e9b4bf71ffade6e5b3f -end938ec47a2ddf8e9b4bf71ffade6e5b3f: - ; // match: (Move [8] dst src mem) // cond: // result: (MOVQstore dst (MOVQload src mem) mem) - { + for { if v.AuxInt != 8 { - goto end696b3498f5fee17f49ae0f708d3dfe4b + break } dst := v.Args[0] src := v.Args[1] @@ -9233,15 +8075,12 @@ end938ec47a2ddf8e9b4bf71ffade6e5b3f: v.AddArg(mem) return true } - goto end696b3498f5fee17f49ae0f708d3dfe4b -end696b3498f5fee17f49ae0f708d3dfe4b: - ; // match: (Move [16] dst src mem) // cond: // result: (MOVOstore dst (MOVOload src mem) mem) - { + for { if v.AuxInt != 16 { - goto end4894ace925d468c10a5b0c5b91fc4c1c + break } dst := v.Args[0] src := v.Args[1] @@ -9255,15 +8094,12 @@ end696b3498f5fee17f49ae0f708d3dfe4b: v.AddArg(mem) return true } - goto end4894ace925d468c10a5b0c5b91fc4c1c -end4894ace925d468c10a5b0c5b91fc4c1c: - ; // match: (Move [3] dst src mem) // cond: // result: (MOVBstore [2] dst (MOVBload [2] src mem) (MOVWstore dst (MOVWload src mem) mem)) - { + for { if v.AuxInt != 3 { - goto end76ce0004999139fe4608c3c5356eb364 + break } dst := v.Args[0] src := v.Args[1] @@ -9286,15 +8122,12 @@ end4894ace925d468c10a5b0c5b91fc4c1c: v.AddArg(v1) return true } - goto end76ce0004999139fe4608c3c5356eb364 -end76ce0004999139fe4608c3c5356eb364: - ; // match: (Move [5] dst src mem) // cond: // result: (MOVBstore [4] dst (MOVBload [4] src mem) (MOVLstore dst (MOVLload src mem) mem)) - { + for { if v.AuxInt != 5 { - goto end21378690c0f39bdd6b46566d57da34e3 + break } dst := v.Args[0] src := v.Args[1] @@ -9317,15 +8150,12 @@ end76ce0004999139fe4608c3c5356eb364: v.AddArg(v1) return true } - goto end21378690c0f39bdd6b46566d57da34e3 -end21378690c0f39bdd6b46566d57da34e3: - ; // match: (Move [6] dst src mem) // cond: // result: (MOVWstore [4] dst (MOVWload [4] src mem) (MOVLstore dst (MOVLload src mem) mem)) - { + for { if v.AuxInt != 6 { - goto endcb6e509881d8638d8cae3af4f2b19a8e + break } dst := v.Args[0] src := v.Args[1] @@ -9348,15 +8178,12 @@ end21378690c0f39bdd6b46566d57da34e3: v.AddArg(v1) return true } - goto endcb6e509881d8638d8cae3af4f2b19a8e -endcb6e509881d8638d8cae3af4f2b19a8e: - ; // match: (Move [7] dst src mem) // cond: // result: (MOVLstore [3] dst (MOVLload [3] src mem) (MOVLstore dst (MOVLload src mem) mem)) - { + for { if v.AuxInt != 7 { - goto end3429ae54bc071c0856ad366c79b7ab97 + break } dst := v.Args[0] src := v.Args[1] @@ -9379,19 +8206,16 @@ endcb6e509881d8638d8cae3af4f2b19a8e: v.AddArg(v1) return true } - goto end3429ae54bc071c0856ad366c79b7ab97 -end3429ae54bc071c0856ad366c79b7ab97: - ; // match: (Move [size] dst src mem) // cond: size > 8 && size < 16 // result: (MOVQstore [size-8] dst (MOVQload [size-8] src mem) (MOVQstore dst (MOVQload src mem) mem)) - { + for { size := v.AuxInt dst := v.Args[0] src := v.Args[1] mem := v.Args[2] if !(size > 8 && size < 16) { - goto endc90f121709d5411d389649dea89a2251 + break } v.reset(OpAMD64MOVQstore) v.AuxInt = size - 8 @@ -9411,19 +8235,16 @@ end3429ae54bc071c0856ad366c79b7ab97: v.AddArg(v1) return true } - goto endc90f121709d5411d389649dea89a2251 -endc90f121709d5411d389649dea89a2251: - ; // match: (Move [size] dst src mem) // cond: size > 16 && size%16 != 0 && size%16 <= 8 // result: (Move [size-size%16] (ADDQconst dst [size%16]) (ADDQconst src [size%16]) (MOVQstore dst (MOVQload src mem) mem)) - { + for { size := v.AuxInt dst := v.Args[0] src := v.Args[1] mem := v.Args[2] if !(size > 16 && size%16 != 0 && size%16 <= 8) { - goto end376c57db23b866866f23677c6cde43ba + break } v.reset(OpMove) v.AuxInt = size - size%16 @@ -9445,19 +8266,16 @@ endc90f121709d5411d389649dea89a2251: v.AddArg(v2) return true } - goto end376c57db23b866866f23677c6cde43ba -end376c57db23b866866f23677c6cde43ba: - ; // match: (Move [size] dst src mem) // cond: size > 16 && size%16 != 0 && size%16 > 8 // result: (Move [size-size%16] (ADDQconst dst [size%16]) (ADDQconst src [size%16]) (MOVOstore dst (MOVOload src mem) mem)) - { + for { size := v.AuxInt dst := v.Args[0] src := v.Args[1] mem := v.Args[2] if !(size > 16 && size%16 != 0 && size%16 > 8) { - goto end2f82f76766a21f8802768380cf10a497 + break } v.reset(OpMove) v.AuxInt = size - size%16 @@ -9479,19 +8297,16 @@ end376c57db23b866866f23677c6cde43ba: v.AddArg(v2) return true } - goto end2f82f76766a21f8802768380cf10a497 -end2f82f76766a21f8802768380cf10a497: - ; // match: (Move [size] dst src mem) // cond: size >= 32 && size <= 16*64 && size%16 == 0 // result: (DUFFCOPY [14*(64-size/16)] dst src mem) - { + for { size := v.AuxInt dst := v.Args[0] src := v.Args[1] mem := v.Args[2] if !(size >= 32 && size <= 16*64 && size%16 == 0) { - goto endcb66da6685f0079ee1f84d10fa561f22 + break } v.reset(OpAMD64DUFFCOPY) v.AuxInt = 14 * (64 - size/16) @@ -9500,19 +8315,16 @@ end2f82f76766a21f8802768380cf10a497: v.AddArg(mem) return true } - goto endcb66da6685f0079ee1f84d10fa561f22 -endcb66da6685f0079ee1f84d10fa561f22: - ; // match: (Move [size] dst src mem) // cond: size > 16*64 && size%8 == 0 // result: (REPMOVSQ dst src (MOVQconst [size/8]) mem) - { + for { size := v.AuxInt dst := v.Args[0] src := v.Args[1] mem := v.Args[2] if !(size > 16*64 && size%8 == 0) { - goto end7ae25ff1bbdcf34efef09613745e9d6e + break } v.reset(OpAMD64REPMOVSQ) v.AddArg(dst) @@ -9523,9 +8335,6 @@ endcb66da6685f0079ee1f84d10fa561f22: v.AddArg(mem) return true } - goto end7ae25ff1bbdcf34efef09613745e9d6e -end7ae25ff1bbdcf34efef09613745e9d6e: - ; return false } func rewriteValueAMD64_OpMul16(v *Value, config *Config) bool { @@ -9534,7 +8343,7 @@ func rewriteValueAMD64_OpMul16(v *Value, config *Config) bool { // match: (Mul16 x y) // cond: // result: (MULW x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MULW) @@ -9542,9 +8351,6 @@ func rewriteValueAMD64_OpMul16(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end1addf5ea2c885aa1729b8f944859d00c -end1addf5ea2c885aa1729b8f944859d00c: - ; return false } func rewriteValueAMD64_OpMul32(v *Value, config *Config) bool { @@ -9553,7 +8359,7 @@ func rewriteValueAMD64_OpMul32(v *Value, config *Config) bool { // match: (Mul32 x y) // cond: // result: (MULL x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MULL) @@ -9561,9 +8367,6 @@ func rewriteValueAMD64_OpMul32(v *Value, config *Config) bool { v.AddArg(y) return true } - goto ende144381f85808e5144782804768e2859 -ende144381f85808e5144782804768e2859: - ; return false } func rewriteValueAMD64_OpMul32F(v *Value, config *Config) bool { @@ -9572,7 +8375,7 @@ func rewriteValueAMD64_OpMul32F(v *Value, config *Config) bool { // match: (Mul32F x y) // cond: // result: (MULSS x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MULSS) @@ -9580,9 +8383,6 @@ func rewriteValueAMD64_OpMul32F(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end32105a3bfe0237b799b69d83b3f171ca -end32105a3bfe0237b799b69d83b3f171ca: - ; return false } func rewriteValueAMD64_OpMul64(v *Value, config *Config) bool { @@ -9591,7 +8391,7 @@ func rewriteValueAMD64_OpMul64(v *Value, config *Config) bool { // match: (Mul64 x y) // cond: // result: (MULQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MULQ) @@ -9599,9 +8399,6 @@ func rewriteValueAMD64_OpMul64(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end38da21e77ac329eb643b20e7d97d5853 -end38da21e77ac329eb643b20e7d97d5853: - ; return false } func rewriteValueAMD64_OpMul64F(v *Value, config *Config) bool { @@ -9610,7 +8407,7 @@ func rewriteValueAMD64_OpMul64F(v *Value, config *Config) bool { // match: (Mul64F x y) // cond: // result: (MULSD x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MULSD) @@ -9618,9 +8415,6 @@ func rewriteValueAMD64_OpMul64F(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end0ff6e1919fb0a3e549eb82b43edf1f52 -end0ff6e1919fb0a3e549eb82b43edf1f52: - ; return false } func rewriteValueAMD64_OpMul8(v *Value, config *Config) bool { @@ -9629,7 +8423,7 @@ func rewriteValueAMD64_OpMul8(v *Value, config *Config) bool { // match: (Mul8 x y) // cond: // result: (MULB x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64MULB) @@ -9637,9 +8431,6 @@ func rewriteValueAMD64_OpMul8(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endd876d6bc42a2285b801f42dadbd8757c -endd876d6bc42a2285b801f42dadbd8757c: - ; return false } func rewriteValueAMD64_OpAMD64NEGB(v *Value, config *Config) bool { @@ -9648,18 +8439,15 @@ func rewriteValueAMD64_OpAMD64NEGB(v *Value, config *Config) bool { // match: (NEGB (MOVBconst [c])) // cond: // result: (MOVBconst [-c]) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto end36d0300ba9eab8c9da86246ff653ca96 + break } c := v.Args[0].AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = -c return true } - goto end36d0300ba9eab8c9da86246ff653ca96 -end36d0300ba9eab8c9da86246ff653ca96: - ; return false } func rewriteValueAMD64_OpAMD64NEGL(v *Value, config *Config) bool { @@ -9668,18 +8456,15 @@ func rewriteValueAMD64_OpAMD64NEGL(v *Value, config *Config) bool { // match: (NEGL (MOVLconst [c])) // cond: // result: (MOVLconst [-c]) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto end7a245ec67e56bd51911e5ba2d0aa0a16 + break } c := v.Args[0].AuxInt v.reset(OpAMD64MOVLconst) v.AuxInt = -c return true } - goto end7a245ec67e56bd51911e5ba2d0aa0a16 -end7a245ec67e56bd51911e5ba2d0aa0a16: - ; return false } func rewriteValueAMD64_OpAMD64NEGQ(v *Value, config *Config) bool { @@ -9688,18 +8473,15 @@ func rewriteValueAMD64_OpAMD64NEGQ(v *Value, config *Config) bool { // match: (NEGQ (MOVQconst [c])) // cond: // result: (MOVQconst [-c]) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto end04ddd98bc6724ecb85c80c2a4e2bca5a + break } c := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = -c return true } - goto end04ddd98bc6724ecb85c80c2a4e2bca5a -end04ddd98bc6724ecb85c80c2a4e2bca5a: - ; return false } func rewriteValueAMD64_OpAMD64NEGW(v *Value, config *Config) bool { @@ -9708,18 +8490,15 @@ func rewriteValueAMD64_OpAMD64NEGW(v *Value, config *Config) bool { // match: (NEGW (MOVWconst [c])) // cond: // result: (MOVWconst [-c]) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto end1db6636f0a51848d8a34f6561ecfe7ae + break } c := v.Args[0].AuxInt v.reset(OpAMD64MOVWconst) v.AuxInt = -c return true } - goto end1db6636f0a51848d8a34f6561ecfe7ae -end1db6636f0a51848d8a34f6561ecfe7ae: - ; return false } func rewriteValueAMD64_OpAMD64NOTB(v *Value, config *Config) bool { @@ -9728,18 +8507,15 @@ func rewriteValueAMD64_OpAMD64NOTB(v *Value, config *Config) bool { // match: (NOTB (MOVBconst [c])) // cond: // result: (MOVBconst [^c]) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto end9e383a9ceb29a9e2bf890ec6a67212a8 + break } c := v.Args[0].AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = ^c return true } - goto end9e383a9ceb29a9e2bf890ec6a67212a8 -end9e383a9ceb29a9e2bf890ec6a67212a8: - ; return false } func rewriteValueAMD64_OpAMD64NOTL(v *Value, config *Config) bool { @@ -9748,18 +8524,15 @@ func rewriteValueAMD64_OpAMD64NOTL(v *Value, config *Config) bool { // match: (NOTL (MOVLconst [c])) // cond: // result: (MOVLconst [^c]) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto endcc73972c088d5e652a1370a96e56502d + break } c := v.Args[0].AuxInt v.reset(OpAMD64MOVLconst) v.AuxInt = ^c return true } - goto endcc73972c088d5e652a1370a96e56502d -endcc73972c088d5e652a1370a96e56502d: - ; return false } func rewriteValueAMD64_OpAMD64NOTQ(v *Value, config *Config) bool { @@ -9768,18 +8541,15 @@ func rewriteValueAMD64_OpAMD64NOTQ(v *Value, config *Config) bool { // match: (NOTQ (MOVQconst [c])) // cond: // result: (MOVQconst [^c]) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto endb39ddb6bf7339d46f74114baad4333b6 + break } c := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = ^c return true } - goto endb39ddb6bf7339d46f74114baad4333b6 -endb39ddb6bf7339d46f74114baad4333b6: - ; return false } func rewriteValueAMD64_OpAMD64NOTW(v *Value, config *Config) bool { @@ -9788,18 +8558,15 @@ func rewriteValueAMD64_OpAMD64NOTW(v *Value, config *Config) bool { // match: (NOTW (MOVWconst [c])) // cond: // result: (MOVWconst [^c]) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto end35848095ebcf894c6957ad3be5f82c43 + break } c := v.Args[0].AuxInt v.reset(OpAMD64MOVWconst) v.AuxInt = ^c return true } - goto end35848095ebcf894c6957ad3be5f82c43 -end35848095ebcf894c6957ad3be5f82c43: - ; return false } func rewriteValueAMD64_OpNeg16(v *Value, config *Config) bool { @@ -9808,15 +8575,12 @@ func rewriteValueAMD64_OpNeg16(v *Value, config *Config) bool { // match: (Neg16 x) // cond: // result: (NEGW x) - { + for { x := v.Args[0] v.reset(OpAMD64NEGW) v.AddArg(x) return true } - goto end7a8c652f4ffeb49656119af69512edb2 -end7a8c652f4ffeb49656119af69512edb2: - ; return false } func rewriteValueAMD64_OpNeg32(v *Value, config *Config) bool { @@ -9825,15 +8589,12 @@ func rewriteValueAMD64_OpNeg32(v *Value, config *Config) bool { // match: (Neg32 x) // cond: // result: (NEGL x) - { + for { x := v.Args[0] v.reset(OpAMD64NEGL) v.AddArg(x) return true } - goto endce1f7e17fc193f6c076e47d5e401e126 -endce1f7e17fc193f6c076e47d5e401e126: - ; return false } func rewriteValueAMD64_OpNeg32F(v *Value, config *Config) bool { @@ -9842,7 +8603,7 @@ func rewriteValueAMD64_OpNeg32F(v *Value, config *Config) bool { // match: (Neg32F x) // cond: // result: (PXOR x (MOVSSconst [f2i(math.Copysign(0, -1))])) - { + for { x := v.Args[0] v.reset(OpAMD64PXOR) v.AddArg(x) @@ -9851,9 +8612,6 @@ func rewriteValueAMD64_OpNeg32F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end685a5fc899e195b9091afbe2a7146051 -end685a5fc899e195b9091afbe2a7146051: - ; return false } func rewriteValueAMD64_OpNeg64(v *Value, config *Config) bool { @@ -9862,15 +8620,12 @@ func rewriteValueAMD64_OpNeg64(v *Value, config *Config) bool { // match: (Neg64 x) // cond: // result: (NEGQ x) - { + for { x := v.Args[0] v.reset(OpAMD64NEGQ) v.AddArg(x) return true } - goto enda06c5b1718f2b96aba10bf5a5c437c6c -enda06c5b1718f2b96aba10bf5a5c437c6c: - ; return false } func rewriteValueAMD64_OpNeg64F(v *Value, config *Config) bool { @@ -9879,7 +8634,7 @@ func rewriteValueAMD64_OpNeg64F(v *Value, config *Config) bool { // match: (Neg64F x) // cond: // result: (PXOR x (MOVSDconst [f2i(math.Copysign(0, -1))])) - { + for { x := v.Args[0] v.reset(OpAMD64PXOR) v.AddArg(x) @@ -9888,9 +8643,6 @@ func rewriteValueAMD64_OpNeg64F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto ende85ae82b7a51e75000eb9158d584acb2 -ende85ae82b7a51e75000eb9158d584acb2: - ; return false } func rewriteValueAMD64_OpNeg8(v *Value, config *Config) bool { @@ -9899,15 +8651,12 @@ func rewriteValueAMD64_OpNeg8(v *Value, config *Config) bool { // match: (Neg8 x) // cond: // result: (NEGB x) - { + for { x := v.Args[0] v.reset(OpAMD64NEGB) v.AddArg(x) return true } - goto end1e5f495a2ac6cdea47b1ae5ba62aa95d -end1e5f495a2ac6cdea47b1ae5ba62aa95d: - ; return false } func rewriteValueAMD64_OpNeq16(v *Value, config *Config) bool { @@ -9916,7 +8665,7 @@ func rewriteValueAMD64_OpNeq16(v *Value, config *Config) bool { // match: (Neq16 x y) // cond: // result: (SETNE (CMPW x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETNE) @@ -9926,9 +8675,6 @@ func rewriteValueAMD64_OpNeq16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end6413ee42d523a005cce9e3372ff2c8e9 -end6413ee42d523a005cce9e3372ff2c8e9: - ; return false } func rewriteValueAMD64_OpNeq32(v *Value, config *Config) bool { @@ -9937,7 +8683,7 @@ func rewriteValueAMD64_OpNeq32(v *Value, config *Config) bool { // match: (Neq32 x y) // cond: // result: (SETNE (CMPL x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETNE) @@ -9947,9 +8693,6 @@ func rewriteValueAMD64_OpNeq32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endb1a3ad499a09d8262952e6cbc47a23a8 -endb1a3ad499a09d8262952e6cbc47a23a8: - ; return false } func rewriteValueAMD64_OpNeq32F(v *Value, config *Config) bool { @@ -9958,7 +8701,7 @@ func rewriteValueAMD64_OpNeq32F(v *Value, config *Config) bool { // match: (Neq32F x y) // cond: // result: (SETNEF (UCOMISS x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETNEF) @@ -9968,9 +8711,6 @@ func rewriteValueAMD64_OpNeq32F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end2a001b2774f58aaf8c1e9efce6ae59e7 -end2a001b2774f58aaf8c1e9efce6ae59e7: - ; return false } func rewriteValueAMD64_OpNeq64(v *Value, config *Config) bool { @@ -9979,7 +8719,7 @@ func rewriteValueAMD64_OpNeq64(v *Value, config *Config) bool { // match: (Neq64 x y) // cond: // result: (SETNE (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETNE) @@ -9989,9 +8729,6 @@ func rewriteValueAMD64_OpNeq64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end092b9159bce08d2ef7896f7d3da5a595 -end092b9159bce08d2ef7896f7d3da5a595: - ; return false } func rewriteValueAMD64_OpNeq64F(v *Value, config *Config) bool { @@ -10000,7 +8737,7 @@ func rewriteValueAMD64_OpNeq64F(v *Value, config *Config) bool { // match: (Neq64F x y) // cond: // result: (SETNEF (UCOMISD x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETNEF) @@ -10010,9 +8747,6 @@ func rewriteValueAMD64_OpNeq64F(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endb9c010023c38bd2fee7800fbefc85d98 -endb9c010023c38bd2fee7800fbefc85d98: - ; return false } func rewriteValueAMD64_OpNeq8(v *Value, config *Config) bool { @@ -10021,7 +8755,7 @@ func rewriteValueAMD64_OpNeq8(v *Value, config *Config) bool { // match: (Neq8 x y) // cond: // result: (SETNE (CMPB x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETNE) @@ -10031,9 +8765,6 @@ func rewriteValueAMD64_OpNeq8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end89e59f45e068c89458cc4db1692bf3bb -end89e59f45e068c89458cc4db1692bf3bb: - ; return false } func rewriteValueAMD64_OpNeqPtr(v *Value, config *Config) bool { @@ -10042,7 +8773,7 @@ func rewriteValueAMD64_OpNeqPtr(v *Value, config *Config) bool { // match: (NeqPtr x y) // cond: // result: (SETNE (CMPQ x y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SETNE) @@ -10052,9 +8783,6 @@ func rewriteValueAMD64_OpNeqPtr(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end3b8bb3b4952011d1d40f993d8717cf16 -end3b8bb3b4952011d1d40f993d8717cf16: - ; return false } func rewriteValueAMD64_OpNilCheck(v *Value, config *Config) bool { @@ -10063,7 +8791,7 @@ func rewriteValueAMD64_OpNilCheck(v *Value, config *Config) bool { // match: (NilCheck ptr mem) // cond: // result: (LoweredNilCheck ptr mem) - { + for { ptr := v.Args[0] mem := v.Args[1] v.reset(OpAMD64LoweredNilCheck) @@ -10071,9 +8799,6 @@ func rewriteValueAMD64_OpNilCheck(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end75520e60179564948a625707b84e8a8d -end75520e60179564948a625707b84e8a8d: - ; return false } func rewriteValueAMD64_OpNot(v *Value, config *Config) bool { @@ -10082,16 +8807,13 @@ func rewriteValueAMD64_OpNot(v *Value, config *Config) bool { // match: (Not x) // cond: // result: (XORBconst [1] x) - { + for { x := v.Args[0] v.reset(OpAMD64XORBconst) v.AuxInt = 1 v.AddArg(x) return true } - goto end73973101aad60079c62fa64624e21db1 -end73973101aad60079c62fa64624e21db1: - ; return false } func rewriteValueAMD64_OpAMD64ORB(v *Value, config *Config) bool { @@ -10100,10 +8822,10 @@ func rewriteValueAMD64_OpAMD64ORB(v *Value, config *Config) bool { // match: (ORB x (MOVBconst [c])) // cond: // result: (ORBconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end7b63870decde2515cb77ec4f8f76817c + break } c := v.Args[1].AuxInt v.reset(OpAMD64ORBconst) @@ -10111,15 +8833,12 @@ func rewriteValueAMD64_OpAMD64ORB(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end7b63870decde2515cb77ec4f8f76817c -end7b63870decde2515cb77ec4f8f76817c: - ; // match: (ORB (MOVBconst [c]) x) // cond: // result: (ORBconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto end70b43d531e2097a4f6293f66256a642e + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -10128,25 +8847,19 @@ end7b63870decde2515cb77ec4f8f76817c: v.AddArg(x) return true } - goto end70b43d531e2097a4f6293f66256a642e -end70b43d531e2097a4f6293f66256a642e: - ; // match: (ORB x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto enddca5ce800a9eca157f243cb2fdb1408a + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto enddca5ce800a9eca157f243cb2fdb1408a -enddca5ce800a9eca157f243cb2fdb1408a: - ; return false } func rewriteValueAMD64_OpAMD64ORBconst(v *Value, config *Config) bool { @@ -10155,51 +8868,42 @@ func rewriteValueAMD64_OpAMD64ORBconst(v *Value, config *Config) bool { // match: (ORBconst [c] x) // cond: int8(c)==0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int8(c) == 0) { - goto end565f78e3a843dc73943b59227b39a1b3 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end565f78e3a843dc73943b59227b39a1b3 -end565f78e3a843dc73943b59227b39a1b3: - ; // match: (ORBconst [c] _) // cond: int8(c)==-1 // result: (MOVBconst [-1]) - { + for { c := v.AuxInt if !(int8(c) == -1) { - goto end6033c7910d8cd536b31446e179e4610d + break } v.reset(OpAMD64MOVBconst) v.AuxInt = -1 return true } - goto end6033c7910d8cd536b31446e179e4610d -end6033c7910d8cd536b31446e179e4610d: - ; // match: (ORBconst [c] (MOVBconst [d])) // cond: // result: (MOVBconst [c|d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVBconst { - goto endbe5263f022dc10a5cf53c118937d79dd + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = c | d return true } - goto endbe5263f022dc10a5cf53c118937d79dd -endbe5263f022dc10a5cf53c118937d79dd: - ; return false } func rewriteValueAMD64_OpAMD64ORL(v *Value, config *Config) bool { @@ -10208,10 +8912,10 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value, config *Config) bool { // match: (ORL x (MOVLconst [c])) // cond: // result: (ORLconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end1b883e30d860b6fac14ae98462c4f61a + break } c := v.Args[1].AuxInt v.reset(OpAMD64ORLconst) @@ -10219,15 +8923,12 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end1b883e30d860b6fac14ae98462c4f61a -end1b883e30d860b6fac14ae98462c4f61a: - ; // match: (ORL (MOVLconst [c]) x) // cond: // result: (ORLconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto enda5bc49524a0cbd2241f792837d0a48a8 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -10236,25 +8937,19 @@ end1b883e30d860b6fac14ae98462c4f61a: v.AddArg(x) return true } - goto enda5bc49524a0cbd2241f792837d0a48a8 -enda5bc49524a0cbd2241f792837d0a48a8: - ; // match: (ORL x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto end2dd719b68f4938777ef0d820aab93659 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end2dd719b68f4938777ef0d820aab93659 -end2dd719b68f4938777ef0d820aab93659: - ; return false } func rewriteValueAMD64_OpAMD64ORLconst(v *Value, config *Config) bool { @@ -10263,51 +8958,42 @@ func rewriteValueAMD64_OpAMD64ORLconst(v *Value, config *Config) bool { // match: (ORLconst [c] x) // cond: int32(c)==0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int32(c) == 0) { - goto end5b52623a724e8a7167c71289fb7192f1 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end5b52623a724e8a7167c71289fb7192f1 -end5b52623a724e8a7167c71289fb7192f1: - ; // match: (ORLconst [c] _) // cond: int32(c)==-1 // result: (MOVLconst [-1]) - { + for { c := v.AuxInt if !(int32(c) == -1) { - goto end345a8ea439ef2ef54bd84fc8a0f73e97 + break } v.reset(OpAMD64MOVLconst) v.AuxInt = -1 return true } - goto end345a8ea439ef2ef54bd84fc8a0f73e97 -end345a8ea439ef2ef54bd84fc8a0f73e97: - ; // match: (ORLconst [c] (MOVLconst [d])) // cond: // result: (MOVLconst [c|d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVLconst { - goto ende9ca05024248f782c88084715f81d727 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVLconst) v.AuxInt = c | d return true } - goto ende9ca05024248f782c88084715f81d727 -ende9ca05024248f782c88084715f81d727: - ; return false } func rewriteValueAMD64_OpAMD64ORQ(v *Value, config *Config) bool { @@ -10316,59 +9002,50 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value, config *Config) bool { // match: (ORQ x (MOVQconst [c])) // cond: is32Bit(c) // result: (ORQconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end601f2bb3ccda102e484ff60adeaf6d26 + break } c := v.Args[1].AuxInt if !(is32Bit(c)) { - goto end601f2bb3ccda102e484ff60adeaf6d26 + break } v.reset(OpAMD64ORQconst) v.AuxInt = c v.AddArg(x) return true } - goto end601f2bb3ccda102e484ff60adeaf6d26 -end601f2bb3ccda102e484ff60adeaf6d26: - ; // match: (ORQ (MOVQconst [c]) x) // cond: is32Bit(c) // result: (ORQconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto end010afbebcd314e288509d79a16a6d5cc + break } c := v.Args[0].AuxInt x := v.Args[1] if !(is32Bit(c)) { - goto end010afbebcd314e288509d79a16a6d5cc + break } v.reset(OpAMD64ORQconst) v.AuxInt = c v.AddArg(x) return true } - goto end010afbebcd314e288509d79a16a6d5cc -end010afbebcd314e288509d79a16a6d5cc: - ; // match: (ORQ x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto end47a27d30b82db576978c5a3a57b520fb + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end47a27d30b82db576978c5a3a57b520fb -end47a27d30b82db576978c5a3a57b520fb: - ; return false } func rewriteValueAMD64_OpAMD64ORQconst(v *Value, config *Config) bool { @@ -10377,9 +9054,9 @@ func rewriteValueAMD64_OpAMD64ORQconst(v *Value, config *Config) bool { // match: (ORQconst [0] x) // cond: // result: x - { + for { if v.AuxInt != 0 { - goto end44534da6b9ce98d33fad7e20f0be1fbd + break } x := v.Args[0] v.reset(OpCopy) @@ -10387,39 +9064,30 @@ func rewriteValueAMD64_OpAMD64ORQconst(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end44534da6b9ce98d33fad7e20f0be1fbd -end44534da6b9ce98d33fad7e20f0be1fbd: - ; // match: (ORQconst [-1] _) // cond: // result: (MOVQconst [-1]) - { + for { if v.AuxInt != -1 { - goto endcde9b9d7c4527eaa5d50b252f50b43c1 + break } v.reset(OpAMD64MOVQconst) v.AuxInt = -1 return true } - goto endcde9b9d7c4527eaa5d50b252f50b43c1 -endcde9b9d7c4527eaa5d50b252f50b43c1: - ; // match: (ORQconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [c|d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto enda2488509b71db9abcb06a5115c4ddc2c + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = c | d return true } - goto enda2488509b71db9abcb06a5115c4ddc2c -enda2488509b71db9abcb06a5115c4ddc2c: - ; return false } func rewriteValueAMD64_OpAMD64ORW(v *Value, config *Config) bool { @@ -10428,10 +9096,10 @@ func rewriteValueAMD64_OpAMD64ORW(v *Value, config *Config) bool { // match: (ORW x (MOVWconst [c])) // cond: // result: (ORWconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end9f98df10892dbf170b49aace86ee0d7f + break } c := v.Args[1].AuxInt v.reset(OpAMD64ORWconst) @@ -10439,15 +9107,12 @@ func rewriteValueAMD64_OpAMD64ORW(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end9f98df10892dbf170b49aace86ee0d7f -end9f98df10892dbf170b49aace86ee0d7f: - ; // match: (ORW (MOVWconst [c]) x) // cond: // result: (ORWconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto end96405942c9ceb5fcb0ddb85a8709d015 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -10456,25 +9121,19 @@ end9f98df10892dbf170b49aace86ee0d7f: v.AddArg(x) return true } - goto end96405942c9ceb5fcb0ddb85a8709d015 -end96405942c9ceb5fcb0ddb85a8709d015: - ; // match: (ORW x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto endc6a23b64e541dc9cfc6a90fd7028e8c1 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endc6a23b64e541dc9cfc6a90fd7028e8c1 -endc6a23b64e541dc9cfc6a90fd7028e8c1: - ; return false } func rewriteValueAMD64_OpAMD64ORWconst(v *Value, config *Config) bool { @@ -10483,51 +9142,42 @@ func rewriteValueAMD64_OpAMD64ORWconst(v *Value, config *Config) bool { // match: (ORWconst [c] x) // cond: int16(c)==0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int16(c) == 0) { - goto endbbbdec9091c8b4c58e587eac8a43402d + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endbbbdec9091c8b4c58e587eac8a43402d -endbbbdec9091c8b4c58e587eac8a43402d: - ; // match: (ORWconst [c] _) // cond: int16(c)==-1 // result: (MOVWconst [-1]) - { + for { c := v.AuxInt if !(int16(c) == -1) { - goto ended87a5775f5e04b2d2a117a63d82dd9b + break } v.reset(OpAMD64MOVWconst) v.AuxInt = -1 return true } - goto ended87a5775f5e04b2d2a117a63d82dd9b -ended87a5775f5e04b2d2a117a63d82dd9b: - ; // match: (ORWconst [c] (MOVWconst [d])) // cond: // result: (MOVWconst [c|d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVWconst { - goto endba9221a8462b5c62e8d7c686f64c2778 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVWconst) v.AuxInt = c | d return true } - goto endba9221a8462b5c62e8d7c686f64c2778 -endba9221a8462b5c62e8d7c686f64c2778: - ; return false } func rewriteValueAMD64_OpOffPtr(v *Value, config *Config) bool { @@ -10536,7 +9186,7 @@ func rewriteValueAMD64_OpOffPtr(v *Value, config *Config) bool { // match: (OffPtr [off] ptr) // cond: // result: (ADDQconst [off] ptr) - { + for { off := v.AuxInt ptr := v.Args[0] v.reset(OpAMD64ADDQconst) @@ -10544,9 +9194,6 @@ func rewriteValueAMD64_OpOffPtr(v *Value, config *Config) bool { v.AddArg(ptr) return true } - goto end0429f947ee7ac49ff45a243e461a5290 -end0429f947ee7ac49ff45a243e461a5290: - ; return false } func rewriteValueAMD64_OpOr16(v *Value, config *Config) bool { @@ -10555,7 +9202,7 @@ func rewriteValueAMD64_OpOr16(v *Value, config *Config) bool { // match: (Or16 x y) // cond: // result: (ORW x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ORW) @@ -10563,9 +9210,6 @@ func rewriteValueAMD64_OpOr16(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end8fedf2c79d5607b7056b0ff015199cbd -end8fedf2c79d5607b7056b0ff015199cbd: - ; return false } func rewriteValueAMD64_OpOr32(v *Value, config *Config) bool { @@ -10574,7 +9218,7 @@ func rewriteValueAMD64_OpOr32(v *Value, config *Config) bool { // match: (Or32 x y) // cond: // result: (ORL x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ORL) @@ -10582,9 +9226,6 @@ func rewriteValueAMD64_OpOr32(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endea45bed9ca97d2995b68b53e6012d384 -endea45bed9ca97d2995b68b53e6012d384: - ; return false } func rewriteValueAMD64_OpOr64(v *Value, config *Config) bool { @@ -10593,7 +9234,7 @@ func rewriteValueAMD64_OpOr64(v *Value, config *Config) bool { // match: (Or64 x y) // cond: // result: (ORQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ORQ) @@ -10601,9 +9242,6 @@ func rewriteValueAMD64_OpOr64(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end3a446becaf2461f4f1a41faeef313f41 -end3a446becaf2461f4f1a41faeef313f41: - ; return false } func rewriteValueAMD64_OpOr8(v *Value, config *Config) bool { @@ -10612,7 +9250,7 @@ func rewriteValueAMD64_OpOr8(v *Value, config *Config) bool { // match: (Or8 x y) // cond: // result: (ORB x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64ORB) @@ -10620,9 +9258,6 @@ func rewriteValueAMD64_OpOr8(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end6f8a8c559a167d1f0a5901d09a1fb248 -end6f8a8c559a167d1f0a5901d09a1fb248: - ; return false } func rewriteValueAMD64_OpRsh16Ux16(v *Value, config *Config) bool { @@ -10631,7 +9266,7 @@ func rewriteValueAMD64_OpRsh16Ux16(v *Value, config *Config) bool { // match: (Rsh16Ux16 x y) // cond: // result: (ANDW (SHRW x y) (SBBLcarrymask (CMPWconst y [16]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10648,9 +9283,6 @@ func rewriteValueAMD64_OpRsh16Ux16(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end291acf0117b46a676e5e1fe524459800 -end291acf0117b46a676e5e1fe524459800: - ; return false } func rewriteValueAMD64_OpRsh16Ux32(v *Value, config *Config) bool { @@ -10659,7 +9291,7 @@ func rewriteValueAMD64_OpRsh16Ux32(v *Value, config *Config) bool { // match: (Rsh16Ux32 x y) // cond: // result: (ANDW (SHRW x y) (SBBLcarrymask (CMPLconst y [16]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10676,9 +9308,6 @@ func rewriteValueAMD64_OpRsh16Ux32(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endea051fe538151b144cd630ce63d35bf7 -endea051fe538151b144cd630ce63d35bf7: - ; return false } func rewriteValueAMD64_OpRsh16Ux64(v *Value, config *Config) bool { @@ -10687,7 +9316,7 @@ func rewriteValueAMD64_OpRsh16Ux64(v *Value, config *Config) bool { // match: (Rsh16Ux64 x y) // cond: // result: (ANDW (SHRW x y) (SBBLcarrymask (CMPQconst y [16]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10704,9 +9333,6 @@ func rewriteValueAMD64_OpRsh16Ux64(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endd1a8f3aa91391fbd13c2dcd03a75283a -endd1a8f3aa91391fbd13c2dcd03a75283a: - ; return false } func rewriteValueAMD64_OpRsh16Ux8(v *Value, config *Config) bool { @@ -10715,7 +9341,7 @@ func rewriteValueAMD64_OpRsh16Ux8(v *Value, config *Config) bool { // match: (Rsh16Ux8 x y) // cond: // result: (ANDW (SHRW x y) (SBBLcarrymask (CMPBconst y [16]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10732,9 +9358,6 @@ func rewriteValueAMD64_OpRsh16Ux8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end9de32652fceccadca5a6206066bcbb10 -end9de32652fceccadca5a6206066bcbb10: - ; return false } func rewriteValueAMD64_OpRsh16x16(v *Value, config *Config) bool { @@ -10743,7 +9366,7 @@ func rewriteValueAMD64_OpRsh16x16(v *Value, config *Config) bool { // match: (Rsh16x16 x y) // cond: // result: (SARW x (ORW y (NOTL (SBBLcarrymask (CMPWconst y [16]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10763,9 +9386,6 @@ func rewriteValueAMD64_OpRsh16x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end71e3cf43426d4351f7fac15145ca6cd9 -end71e3cf43426d4351f7fac15145ca6cd9: - ; return false } func rewriteValueAMD64_OpRsh16x32(v *Value, config *Config) bool { @@ -10774,7 +9394,7 @@ func rewriteValueAMD64_OpRsh16x32(v *Value, config *Config) bool { // match: (Rsh16x32 x y) // cond: // result: (SARW x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [16]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10794,9 +9414,6 @@ func rewriteValueAMD64_OpRsh16x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endfc3bf56711046c6b29b676b155af7c98 -endfc3bf56711046c6b29b676b155af7c98: - ; return false } func rewriteValueAMD64_OpRsh16x64(v *Value, config *Config) bool { @@ -10805,7 +9422,7 @@ func rewriteValueAMD64_OpRsh16x64(v *Value, config *Config) bool { // match: (Rsh16x64 x y) // cond: // result: (SARW x (ORQ y (NOTQ (SBBQcarrymask (CMPQconst y [16]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10825,9 +9442,6 @@ func rewriteValueAMD64_OpRsh16x64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endeaf40562fd3394586c63adceca4d9559 -endeaf40562fd3394586c63adceca4d9559: - ; return false } func rewriteValueAMD64_OpRsh16x8(v *Value, config *Config) bool { @@ -10836,7 +9450,7 @@ func rewriteValueAMD64_OpRsh16x8(v *Value, config *Config) bool { // match: (Rsh16x8 x y) // cond: // result: (SARW x (ORB y (NOTL (SBBLcarrymask (CMPBconst y [16]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10856,9 +9470,6 @@ func rewriteValueAMD64_OpRsh16x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endc6cd0d3ecc71bc1830e01c07f274ff7b -endc6cd0d3ecc71bc1830e01c07f274ff7b: - ; return false } func rewriteValueAMD64_OpRsh32Ux16(v *Value, config *Config) bool { @@ -10867,7 +9478,7 @@ func rewriteValueAMD64_OpRsh32Ux16(v *Value, config *Config) bool { // match: (Rsh32Ux16 x y) // cond: // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPWconst y [32]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10884,9 +9495,6 @@ func rewriteValueAMD64_OpRsh32Ux16(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end74ddc1443f6ffb1fe911f455ff982bfb -end74ddc1443f6ffb1fe911f455ff982bfb: - ; return false } func rewriteValueAMD64_OpRsh32Ux32(v *Value, config *Config) bool { @@ -10895,7 +9503,7 @@ func rewriteValueAMD64_OpRsh32Ux32(v *Value, config *Config) bool { // match: (Rsh32Ux32 x y) // cond: // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPLconst y [32]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10912,9 +9520,6 @@ func rewriteValueAMD64_OpRsh32Ux32(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto enda93828d8aa54be68080640034f94ed96 -enda93828d8aa54be68080640034f94ed96: - ; return false } func rewriteValueAMD64_OpRsh32Ux64(v *Value, config *Config) bool { @@ -10923,7 +9528,7 @@ func rewriteValueAMD64_OpRsh32Ux64(v *Value, config *Config) bool { // match: (Rsh32Ux64 x y) // cond: // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPQconst y [32]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10940,9 +9545,6 @@ func rewriteValueAMD64_OpRsh32Ux64(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end4f644f3f89ef842f4b0567fc385a58e3 -end4f644f3f89ef842f4b0567fc385a58e3: - ; return false } func rewriteValueAMD64_OpRsh32Ux8(v *Value, config *Config) bool { @@ -10951,7 +9553,7 @@ func rewriteValueAMD64_OpRsh32Ux8(v *Value, config *Config) bool { // match: (Rsh32Ux8 x y) // cond: // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPBconst y [32]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10968,9 +9570,6 @@ func rewriteValueAMD64_OpRsh32Ux8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end2a8f279bb4900b9bf3846378f36d7994 -end2a8f279bb4900b9bf3846378f36d7994: - ; return false } func rewriteValueAMD64_OpRsh32x16(v *Value, config *Config) bool { @@ -10979,7 +9578,7 @@ func rewriteValueAMD64_OpRsh32x16(v *Value, config *Config) bool { // match: (Rsh32x16 x y) // cond: // result: (SARL x (ORW y (NOTL (SBBLcarrymask (CMPWconst y [32]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -10999,9 +9598,6 @@ func rewriteValueAMD64_OpRsh32x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end1b3a698a50c89c656aa6f7acd72e3f5e -end1b3a698a50c89c656aa6f7acd72e3f5e: - ; return false } func rewriteValueAMD64_OpRsh32x32(v *Value, config *Config) bool { @@ -11010,7 +9606,7 @@ func rewriteValueAMD64_OpRsh32x32(v *Value, config *Config) bool { // match: (Rsh32x32 x y) // cond: // result: (SARL x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [32]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11030,9 +9626,6 @@ func rewriteValueAMD64_OpRsh32x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endc6596de1c198fd84c4076aaa3c6486e5 -endc6596de1c198fd84c4076aaa3c6486e5: - ; return false } func rewriteValueAMD64_OpRsh32x64(v *Value, config *Config) bool { @@ -11041,7 +9634,7 @@ func rewriteValueAMD64_OpRsh32x64(v *Value, config *Config) bool { // match: (Rsh32x64 x y) // cond: // result: (SARL x (ORQ y (NOTQ (SBBQcarrymask (CMPQconst y [32]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11061,9 +9654,6 @@ func rewriteValueAMD64_OpRsh32x64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto enddda2e730607e2d13b18f1006316e0ebb -enddda2e730607e2d13b18f1006316e0ebb: - ; return false } func rewriteValueAMD64_OpRsh32x8(v *Value, config *Config) bool { @@ -11072,7 +9662,7 @@ func rewriteValueAMD64_OpRsh32x8(v *Value, config *Config) bool { // match: (Rsh32x8 x y) // cond: // result: (SARL x (ORB y (NOTL (SBBLcarrymask (CMPBconst y [32]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11092,9 +9682,6 @@ func rewriteValueAMD64_OpRsh32x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endd9cb28c7e3a43fbd7a877750f34df72a -endd9cb28c7e3a43fbd7a877750f34df72a: - ; return false } func rewriteValueAMD64_OpRsh64Ux16(v *Value, config *Config) bool { @@ -11103,7 +9690,7 @@ func rewriteValueAMD64_OpRsh64Ux16(v *Value, config *Config) bool { // match: (Rsh64Ux16 x y) // cond: // result: (ANDQ (SHRQ x y) (SBBQcarrymask (CMPWconst y [64]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11120,9 +9707,6 @@ func rewriteValueAMD64_OpRsh64Ux16(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end04dfdfa8a2dcffaf7ab1ee93a96b8677 -end04dfdfa8a2dcffaf7ab1ee93a96b8677: - ; return false } func rewriteValueAMD64_OpRsh64Ux32(v *Value, config *Config) bool { @@ -11131,7 +9715,7 @@ func rewriteValueAMD64_OpRsh64Ux32(v *Value, config *Config) bool { // match: (Rsh64Ux32 x y) // cond: // result: (ANDQ (SHRQ x y) (SBBQcarrymask (CMPLconst y [64]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11148,9 +9732,6 @@ func rewriteValueAMD64_OpRsh64Ux32(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end2b2f03d14fb01fd490115a96d893ddb3 -end2b2f03d14fb01fd490115a96d893ddb3: - ; return false } func rewriteValueAMD64_OpRsh64Ux64(v *Value, config *Config) bool { @@ -11159,7 +9740,7 @@ func rewriteValueAMD64_OpRsh64Ux64(v *Value, config *Config) bool { // match: (Rsh64Ux64 x y) // cond: // result: (ANDQ (SHRQ x y) (SBBQcarrymask (CMPQconst y [64]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11176,9 +9757,6 @@ func rewriteValueAMD64_OpRsh64Ux64(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endb24ca32f261a5c799d3e5a572f7cdcff -endb24ca32f261a5c799d3e5a572f7cdcff: - ; return false } func rewriteValueAMD64_OpRsh64Ux8(v *Value, config *Config) bool { @@ -11187,7 +9765,7 @@ func rewriteValueAMD64_OpRsh64Ux8(v *Value, config *Config) bool { // match: (Rsh64Ux8 x y) // cond: // result: (ANDQ (SHRQ x y) (SBBQcarrymask (CMPBconst y [64]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11204,9 +9782,6 @@ func rewriteValueAMD64_OpRsh64Ux8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end05a9a99310c9e282df012d5c48b58475 -end05a9a99310c9e282df012d5c48b58475: - ; return false } func rewriteValueAMD64_OpRsh64x16(v *Value, config *Config) bool { @@ -11215,7 +9790,7 @@ func rewriteValueAMD64_OpRsh64x16(v *Value, config *Config) bool { // match: (Rsh64x16 x y) // cond: // result: (SARQ x (ORW y (NOTL (SBBLcarrymask (CMPWconst y [64]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11235,9 +9810,6 @@ func rewriteValueAMD64_OpRsh64x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endb97b88b7c4e431bd64ced5690f0e85c4 -endb97b88b7c4e431bd64ced5690f0e85c4: - ; return false } func rewriteValueAMD64_OpRsh64x32(v *Value, config *Config) bool { @@ -11246,7 +9818,7 @@ func rewriteValueAMD64_OpRsh64x32(v *Value, config *Config) bool { // match: (Rsh64x32 x y) // cond: // result: (SARQ x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [64]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11266,9 +9838,6 @@ func rewriteValueAMD64_OpRsh64x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end95f72c0d315e6b1d70015b31a0f5f4ca -end95f72c0d315e6b1d70015b31a0f5f4ca: - ; return false } func rewriteValueAMD64_OpRsh64x64(v *Value, config *Config) bool { @@ -11277,7 +9846,7 @@ func rewriteValueAMD64_OpRsh64x64(v *Value, config *Config) bool { // match: (Rsh64x64 x y) // cond: // result: (SARQ x (ORQ y (NOTQ (SBBQcarrymask (CMPQconst y [64]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11297,9 +9866,6 @@ func rewriteValueAMD64_OpRsh64x64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto enda8ddfaa8e519c0ed70c344a136ba9126 -enda8ddfaa8e519c0ed70c344a136ba9126: - ; return false } func rewriteValueAMD64_OpRsh64x8(v *Value, config *Config) bool { @@ -11308,7 +9874,7 @@ func rewriteValueAMD64_OpRsh64x8(v *Value, config *Config) bool { // match: (Rsh64x8 x y) // cond: // result: (SARQ x (ORB y (NOTL (SBBLcarrymask (CMPBconst y [64]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11328,9 +9894,6 @@ func rewriteValueAMD64_OpRsh64x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end62f4adae0bbd0c4d5d6eb7d5eda6a5e3 -end62f4adae0bbd0c4d5d6eb7d5eda6a5e3: - ; return false } func rewriteValueAMD64_OpRsh8Ux16(v *Value, config *Config) bool { @@ -11339,7 +9902,7 @@ func rewriteValueAMD64_OpRsh8Ux16(v *Value, config *Config) bool { // match: (Rsh8Ux16 x y) // cond: // result: (ANDB (SHRB x y) (SBBLcarrymask (CMPWconst y [8]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11356,9 +9919,6 @@ func rewriteValueAMD64_OpRsh8Ux16(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endb791c8283bd486da9809520a7262d5ba -endb791c8283bd486da9809520a7262d5ba: - ; return false } func rewriteValueAMD64_OpRsh8Ux32(v *Value, config *Config) bool { @@ -11367,7 +9927,7 @@ func rewriteValueAMD64_OpRsh8Ux32(v *Value, config *Config) bool { // match: (Rsh8Ux32 x y) // cond: // result: (ANDB (SHRB x y) (SBBLcarrymask (CMPLconst y [8]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11384,9 +9944,6 @@ func rewriteValueAMD64_OpRsh8Ux32(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end5f360ab34942dc218e8f75624c86bbb2 -end5f360ab34942dc218e8f75624c86bbb2: - ; return false } func rewriteValueAMD64_OpRsh8Ux64(v *Value, config *Config) bool { @@ -11395,7 +9952,7 @@ func rewriteValueAMD64_OpRsh8Ux64(v *Value, config *Config) bool { // match: (Rsh8Ux64 x y) // cond: // result: (ANDB (SHRB x y) (SBBLcarrymask (CMPQconst y [8]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11412,9 +9969,6 @@ func rewriteValueAMD64_OpRsh8Ux64(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end7138df590f00234cd21cf02da8ed109e -end7138df590f00234cd21cf02da8ed109e: - ; return false } func rewriteValueAMD64_OpRsh8Ux8(v *Value, config *Config) bool { @@ -11423,7 +9977,7 @@ func rewriteValueAMD64_OpRsh8Ux8(v *Value, config *Config) bool { // match: (Rsh8Ux8 x y) // cond: // result: (ANDB (SHRB x y) (SBBLcarrymask (CMPBconst y [8]))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11440,9 +9994,6 @@ func rewriteValueAMD64_OpRsh8Ux8(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end3aab873310bf7b2f3f90705fbd082b93 -end3aab873310bf7b2f3f90705fbd082b93: - ; return false } func rewriteValueAMD64_OpRsh8x16(v *Value, config *Config) bool { @@ -11451,7 +10002,7 @@ func rewriteValueAMD64_OpRsh8x16(v *Value, config *Config) bool { // match: (Rsh8x16 x y) // cond: // result: (SARB x (ORW y (NOTL (SBBLcarrymask (CMPWconst y [8]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11471,9 +10022,6 @@ func rewriteValueAMD64_OpRsh8x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto ende275bad06ac788b484b038f1bb3afc8d -ende275bad06ac788b484b038f1bb3afc8d: - ; return false } func rewriteValueAMD64_OpRsh8x32(v *Value, config *Config) bool { @@ -11482,7 +10030,7 @@ func rewriteValueAMD64_OpRsh8x32(v *Value, config *Config) bool { // match: (Rsh8x32 x y) // cond: // result: (SARB x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [8]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11502,9 +10050,6 @@ func rewriteValueAMD64_OpRsh8x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end00833cba5173dc390952b6c4644af376 -end00833cba5173dc390952b6c4644af376: - ; return false } func rewriteValueAMD64_OpRsh8x64(v *Value, config *Config) bool { @@ -11513,7 +10058,7 @@ func rewriteValueAMD64_OpRsh8x64(v *Value, config *Config) bool { // match: (Rsh8x64 x y) // cond: // result: (SARB x (ORQ y (NOTQ (SBBQcarrymask (CMPQconst y [8]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11533,9 +10078,6 @@ func rewriteValueAMD64_OpRsh8x64(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end039cf4d3a939b89164b058d09f532fb5 -end039cf4d3a939b89164b058d09f532fb5: - ; return false } func rewriteValueAMD64_OpRsh8x8(v *Value, config *Config) bool { @@ -11544,7 +10086,7 @@ func rewriteValueAMD64_OpRsh8x8(v *Value, config *Config) bool { // match: (Rsh8x8 x y) // cond: // result: (SARB x (ORB y (NOTL (SBBLcarrymask (CMPBconst y [8]))))) - { + for { t := v.Type x := v.Args[0] y := v.Args[1] @@ -11564,9 +10106,6 @@ func rewriteValueAMD64_OpRsh8x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end6453a48c573d0dc7c8b0163a266c6218 -end6453a48c573d0dc7c8b0163a266c6218: - ; return false } func rewriteValueAMD64_OpAMD64SARB(v *Value, config *Config) bool { @@ -11575,10 +10114,10 @@ func rewriteValueAMD64_OpAMD64SARB(v *Value, config *Config) bool { // match: (SARB x (MOVQconst [c])) // cond: // result: (SARBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end03194336f801b91c1423aed6f39247f0 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARBconst) @@ -11586,16 +10125,13 @@ func rewriteValueAMD64_OpAMD64SARB(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end03194336f801b91c1423aed6f39247f0 -end03194336f801b91c1423aed6f39247f0: - ; // match: (SARB x (MOVLconst [c])) // cond: // result: (SARBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end3f623e78dd789403b299106625e0d6df + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARBconst) @@ -11603,16 +10139,13 @@ end03194336f801b91c1423aed6f39247f0: v.AddArg(x) return true } - goto end3f623e78dd789403b299106625e0d6df -end3f623e78dd789403b299106625e0d6df: - ; // match: (SARB x (MOVWconst [c])) // cond: // result: (SARBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end4393e26c64e39342a0634d9a5706cb10 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARBconst) @@ -11620,16 +10153,13 @@ end3f623e78dd789403b299106625e0d6df: v.AddArg(x) return true } - goto end4393e26c64e39342a0634d9a5706cb10 -end4393e26c64e39342a0634d9a5706cb10: - ; // match: (SARB x (MOVBconst [c])) // cond: // result: (SARBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end3bf3d17717aa6c04462e56d1c87902ce + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARBconst) @@ -11637,9 +10167,6 @@ end4393e26c64e39342a0634d9a5706cb10: v.AddArg(x) return true } - goto end3bf3d17717aa6c04462e56d1c87902ce -end3bf3d17717aa6c04462e56d1c87902ce: - ; return false } func rewriteValueAMD64_OpAMD64SARBconst(v *Value, config *Config) bool { @@ -11648,19 +10175,16 @@ func rewriteValueAMD64_OpAMD64SARBconst(v *Value, config *Config) bool { // match: (SARBconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [d>>uint64(c)]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto end06e0e38775f0650ed672427d19cd8fff + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = d >> uint64(c) return true } - goto end06e0e38775f0650ed672427d19cd8fff -end06e0e38775f0650ed672427d19cd8fff: - ; return false } func rewriteValueAMD64_OpAMD64SARL(v *Value, config *Config) bool { @@ -11669,10 +10193,10 @@ func rewriteValueAMD64_OpAMD64SARL(v *Value, config *Config) bool { // match: (SARL x (MOVQconst [c])) // cond: // result: (SARLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end8fb4e77be1f4d21d0f2a0facf9a60add + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARLconst) @@ -11680,16 +10204,13 @@ func rewriteValueAMD64_OpAMD64SARL(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end8fb4e77be1f4d21d0f2a0facf9a60add -end8fb4e77be1f4d21d0f2a0facf9a60add: - ; // match: (SARL x (MOVLconst [c])) // cond: // result: (SARLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto ende586a72c1b232ee0b63e37c71eeb8470 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARLconst) @@ -11697,16 +10218,13 @@ end8fb4e77be1f4d21d0f2a0facf9a60add: v.AddArg(x) return true } - goto ende586a72c1b232ee0b63e37c71eeb8470 -ende586a72c1b232ee0b63e37c71eeb8470: - ; // match: (SARL x (MOVWconst [c])) // cond: // result: (SARLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end37389c13b9fb94c44bd10b1143809afb + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARLconst) @@ -11714,16 +10232,13 @@ ende586a72c1b232ee0b63e37c71eeb8470: v.AddArg(x) return true } - goto end37389c13b9fb94c44bd10b1143809afb -end37389c13b9fb94c44bd10b1143809afb: - ; // match: (SARL x (MOVBconst [c])) // cond: // result: (SARLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end72550eb8c44c45e76e40888bce753160 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARLconst) @@ -11731,9 +10246,6 @@ end37389c13b9fb94c44bd10b1143809afb: v.AddArg(x) return true } - goto end72550eb8c44c45e76e40888bce753160 -end72550eb8c44c45e76e40888bce753160: - ; return false } func rewriteValueAMD64_OpAMD64SARLconst(v *Value, config *Config) bool { @@ -11742,19 +10254,16 @@ func rewriteValueAMD64_OpAMD64SARLconst(v *Value, config *Config) bool { // match: (SARLconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [d>>uint64(c)]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto end8f34dc94323303e75b7bcc8e731cf1db + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = d >> uint64(c) return true } - goto end8f34dc94323303e75b7bcc8e731cf1db -end8f34dc94323303e75b7bcc8e731cf1db: - ; return false } func rewriteValueAMD64_OpAMD64SARQ(v *Value, config *Config) bool { @@ -11763,10 +10272,10 @@ func rewriteValueAMD64_OpAMD64SARQ(v *Value, config *Config) bool { // match: (SARQ x (MOVQconst [c])) // cond: // result: (SARQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end25e720ab203be2745dded5550e6d8a7c + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARQconst) @@ -11774,16 +10283,13 @@ func rewriteValueAMD64_OpAMD64SARQ(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end25e720ab203be2745dded5550e6d8a7c -end25e720ab203be2745dded5550e6d8a7c: - ; // match: (SARQ x (MOVLconst [c])) // cond: // result: (SARQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto endd04cf826c5db444107cf4e0bf789bcda + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARQconst) @@ -11791,16 +10297,13 @@ end25e720ab203be2745dded5550e6d8a7c: v.AddArg(x) return true } - goto endd04cf826c5db444107cf4e0bf789bcda -endd04cf826c5db444107cf4e0bf789bcda: - ; // match: (SARQ x (MOVWconst [c])) // cond: // result: (SARQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end6266051b3a126922286c298594535622 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARQconst) @@ -11808,16 +10311,13 @@ endd04cf826c5db444107cf4e0bf789bcda: v.AddArg(x) return true } - goto end6266051b3a126922286c298594535622 -end6266051b3a126922286c298594535622: - ; // match: (SARQ x (MOVBconst [c])) // cond: // result: (SARQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto endcf2a1bdfeda535fc96ae1e7f5c54d531 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARQconst) @@ -11825,9 +10325,6 @@ end6266051b3a126922286c298594535622: v.AddArg(x) return true } - goto endcf2a1bdfeda535fc96ae1e7f5c54d531 -endcf2a1bdfeda535fc96ae1e7f5c54d531: - ; return false } func rewriteValueAMD64_OpAMD64SARQconst(v *Value, config *Config) bool { @@ -11836,19 +10333,16 @@ func rewriteValueAMD64_OpAMD64SARQconst(v *Value, config *Config) bool { // match: (SARQconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [d>>uint64(c)]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto endd949ba69a1ff71ba62c49b39c68f269e + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = d >> uint64(c) return true } - goto endd949ba69a1ff71ba62c49b39c68f269e -endd949ba69a1ff71ba62c49b39c68f269e: - ; return false } func rewriteValueAMD64_OpAMD64SARW(v *Value, config *Config) bool { @@ -11857,10 +10351,10 @@ func rewriteValueAMD64_OpAMD64SARW(v *Value, config *Config) bool { // match: (SARW x (MOVQconst [c])) // cond: // result: (SARWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto endec8cafea5ff91b2a1b5cf5a169be924f + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARWconst) @@ -11868,16 +10362,13 @@ func rewriteValueAMD64_OpAMD64SARW(v *Value, config *Config) bool { v.AddArg(x) return true } - goto endec8cafea5ff91b2a1b5cf5a169be924f -endec8cafea5ff91b2a1b5cf5a169be924f: - ; // match: (SARW x (MOVLconst [c])) // cond: // result: (SARWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end9303d0edeebdc8a2a7e93fecf0fff61c + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARWconst) @@ -11885,16 +10376,13 @@ endec8cafea5ff91b2a1b5cf5a169be924f: v.AddArg(x) return true } - goto end9303d0edeebdc8a2a7e93fecf0fff61c -end9303d0edeebdc8a2a7e93fecf0fff61c: - ; // match: (SARW x (MOVWconst [c])) // cond: // result: (SARWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto endc46e3f211f94238f9a0aec3c498af490 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARWconst) @@ -11902,16 +10390,13 @@ end9303d0edeebdc8a2a7e93fecf0fff61c: v.AddArg(x) return true } - goto endc46e3f211f94238f9a0aec3c498af490 -endc46e3f211f94238f9a0aec3c498af490: - ; // match: (SARW x (MOVBconst [c])) // cond: // result: (SARWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end0bf07ce9cd2c536c07768f8dfbe13c62 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SARWconst) @@ -11919,9 +10404,6 @@ endc46e3f211f94238f9a0aec3c498af490: v.AddArg(x) return true } - goto end0bf07ce9cd2c536c07768f8dfbe13c62 -end0bf07ce9cd2c536c07768f8dfbe13c62: - ; return false } func rewriteValueAMD64_OpAMD64SARWconst(v *Value, config *Config) bool { @@ -11930,19 +10412,16 @@ func rewriteValueAMD64_OpAMD64SARWconst(v *Value, config *Config) bool { // match: (SARWconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [d>>uint64(c)]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto endca23e80dba22ab574f843c7a4cef24ab + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = d >> uint64(c) return true } - goto endca23e80dba22ab574f843c7a4cef24ab -endca23e80dba22ab574f843c7a4cef24ab: - ; return false } func rewriteValueAMD64_OpAMD64SBBLcarrymask(v *Value, config *Config) bool { @@ -11951,73 +10430,58 @@ func rewriteValueAMD64_OpAMD64SBBLcarrymask(v *Value, config *Config) bool { // match: (SBBLcarrymask (FlagEQ)) // cond: // result: (MOVLconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto end49bb4f49864044e2cd06c9c8e2c05f12 + break } v.reset(OpAMD64MOVLconst) v.AuxInt = 0 return true } - goto end49bb4f49864044e2cd06c9c8e2c05f12 -end49bb4f49864044e2cd06c9c8e2c05f12: - ; // match: (SBBLcarrymask (FlagLT_ULT)) // cond: // result: (MOVLconst [-1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto ende534d42c655e8b95b051e7ec44d4fdf9 + break } v.reset(OpAMD64MOVLconst) v.AuxInt = -1 return true } - goto ende534d42c655e8b95b051e7ec44d4fdf9 -ende534d42c655e8b95b051e7ec44d4fdf9: - ; // match: (SBBLcarrymask (FlagLT_UGT)) // cond: // result: (MOVLconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto end212628069f217f165eaf49dcfd9e8c76 + break } v.reset(OpAMD64MOVLconst) v.AuxInt = 0 return true } - goto end212628069f217f165eaf49dcfd9e8c76 -end212628069f217f165eaf49dcfd9e8c76: - ; // match: (SBBLcarrymask (FlagGT_ULT)) // cond: // result: (MOVLconst [-1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto end4df0bf7db9772a6011ed89bd3ce95f1d + break } v.reset(OpAMD64MOVLconst) v.AuxInt = -1 return true } - goto end4df0bf7db9772a6011ed89bd3ce95f1d -end4df0bf7db9772a6011ed89bd3ce95f1d: - ; // match: (SBBLcarrymask (FlagGT_UGT)) // cond: // result: (MOVLconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto end4d9d1509d6d260332f0a345332ce89e2 + break } v.reset(OpAMD64MOVLconst) v.AuxInt = 0 return true } - goto end4d9d1509d6d260332f0a345332ce89e2 -end4d9d1509d6d260332f0a345332ce89e2: - ; return false } func rewriteValueAMD64_OpAMD64SBBQcarrymask(v *Value, config *Config) bool { @@ -12026,73 +10490,58 @@ func rewriteValueAMD64_OpAMD64SBBQcarrymask(v *Value, config *Config) bool { // match: (SBBQcarrymask (FlagEQ)) // cond: // result: (MOVQconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto end6b4a6f105b53df8063846a528bab0abb + break } v.reset(OpAMD64MOVQconst) v.AuxInt = 0 return true } - goto end6b4a6f105b53df8063846a528bab0abb -end6b4a6f105b53df8063846a528bab0abb: - ; // match: (SBBQcarrymask (FlagLT_ULT)) // cond: // result: (MOVQconst [-1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto endbfed0a1a93d6d8570f304898550d9558 + break } v.reset(OpAMD64MOVQconst) v.AuxInt = -1 return true } - goto endbfed0a1a93d6d8570f304898550d9558 -endbfed0a1a93d6d8570f304898550d9558: - ; // match: (SBBQcarrymask (FlagLT_UGT)) // cond: // result: (MOVQconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto end8edf88458891c571a6ea6e52e0267b40 + break } v.reset(OpAMD64MOVQconst) v.AuxInt = 0 return true } - goto end8edf88458891c571a6ea6e52e0267b40 -end8edf88458891c571a6ea6e52e0267b40: - ; // match: (SBBQcarrymask (FlagGT_ULT)) // cond: // result: (MOVQconst [-1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto end4663340439f2fa7a666e81f0ebc68436 + break } v.reset(OpAMD64MOVQconst) v.AuxInt = -1 return true } - goto end4663340439f2fa7a666e81f0ebc68436 -end4663340439f2fa7a666e81f0ebc68436: - ; // match: (SBBQcarrymask (FlagGT_UGT)) // cond: // result: (MOVQconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto end7262400b0380a163bd65b88e0c3db985 + break } v.reset(OpAMD64MOVQconst) v.AuxInt = 0 return true } - goto end7262400b0380a163bd65b88e0c3db985 -end7262400b0380a163bd65b88e0c3db985: - ; return false } func rewriteValueAMD64_OpAMD64SETA(v *Value, config *Config) bool { @@ -12101,88 +10550,70 @@ func rewriteValueAMD64_OpAMD64SETA(v *Value, config *Config) bool { // match: (SETA (InvertFlags x)) // cond: // result: (SETB x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto enda4ac36e94fc279d762b5a6c7c6cc665d + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETB) v.AddArg(x) return true } - goto enda4ac36e94fc279d762b5a6c7c6cc665d -enda4ac36e94fc279d762b5a6c7c6cc665d: - ; // match: (SETA (FlagEQ)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto end1521942d06b7f0caba92883aee0bb90e + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end1521942d06b7f0caba92883aee0bb90e -end1521942d06b7f0caba92883aee0bb90e: - ; // match: (SETA (FlagLT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto endf79d69b18a140d5c6669216ad65f60f0 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto endf79d69b18a140d5c6669216ad65f60f0 -endf79d69b18a140d5c6669216ad65f60f0: - ; // match: (SETA (FlagLT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto end272c1e5fca714e319fb1c335023826db + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end272c1e5fca714e319fb1c335023826db -end272c1e5fca714e319fb1c335023826db: - ; // match: (SETA (FlagGT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto ende0cf0104de1315266d93ded9a092302c + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto ende0cf0104de1315266d93ded9a092302c -ende0cf0104de1315266d93ded9a092302c: - ; // match: (SETA (FlagGT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto end85507f7549319577f9994826ee379f3b + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end85507f7549319577f9994826ee379f3b -end85507f7549319577f9994826ee379f3b: - ; return false } func rewriteValueAMD64_OpAMD64SETAE(v *Value, config *Config) bool { @@ -12191,88 +10622,70 @@ func rewriteValueAMD64_OpAMD64SETAE(v *Value, config *Config) bool { // match: (SETAE (InvertFlags x)) // cond: // result: (SETBE x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto end0468f5be6caf682fdea6b91d6648991e + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETBE) v.AddArg(x) return true } - goto end0468f5be6caf682fdea6b91d6648991e -end0468f5be6caf682fdea6b91d6648991e: - ; // match: (SETAE (FlagEQ)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto endc6396df3825db703a99be0e624c6396f + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto endc6396df3825db703a99be0e624c6396f -endc6396df3825db703a99be0e624c6396f: - ; // match: (SETAE (FlagLT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto end2392c77d6746969c65a422c68ad193bc + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end2392c77d6746969c65a422c68ad193bc -end2392c77d6746969c65a422c68ad193bc: - ; // match: (SETAE (FlagLT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto end081f3b2b98d3a990739d2a5562d4f254 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end081f3b2b98d3a990739d2a5562d4f254 -end081f3b2b98d3a990739d2a5562d4f254: - ; // match: (SETAE (FlagGT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto end47a6cc5efdd00e349c5e23be3624d719 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end47a6cc5efdd00e349c5e23be3624d719 -end47a6cc5efdd00e349c5e23be3624d719: - ; // match: (SETAE (FlagGT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto endd47bb51035b00c560b5347b3be19e20e + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto endd47bb51035b00c560b5347b3be19e20e -endd47bb51035b00c560b5347b3be19e20e: - ; return false } func rewriteValueAMD64_OpAMD64SETB(v *Value, config *Config) bool { @@ -12281,88 +10694,70 @@ func rewriteValueAMD64_OpAMD64SETB(v *Value, config *Config) bool { // match: (SETB (InvertFlags x)) // cond: // result: (SETA x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto endc9eba7aa1e54a228570d2f5cc96f3565 + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETA) v.AddArg(x) return true } - goto endc9eba7aa1e54a228570d2f5cc96f3565 -endc9eba7aa1e54a228570d2f5cc96f3565: - ; // match: (SETB (FlagEQ)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto endaf8a2c61689b00c8ad90dd090e634c81 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto endaf8a2c61689b00c8ad90dd090e634c81 -endaf8a2c61689b00c8ad90dd090e634c81: - ; // match: (SETB (FlagLT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto endab96387d5f049ab9c87863473a5d6510 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto endab96387d5f049ab9c87863473a5d6510 -endab96387d5f049ab9c87863473a5d6510: - ; // match: (SETB (FlagLT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto endbf7af56278add8851974cd1a538b3b7f + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto endbf7af56278add8851974cd1a538b3b7f -endbf7af56278add8851974cd1a538b3b7f: - ; // match: (SETB (FlagGT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto end2d07a10db28e5160fccf66ee44c4823e + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end2d07a10db28e5160fccf66ee44c4823e -end2d07a10db28e5160fccf66ee44c4823e: - ; // match: (SETB (FlagGT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto end87ec5187683c0ee498c0a2c4de59f4c0 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end87ec5187683c0ee498c0a2c4de59f4c0 -end87ec5187683c0ee498c0a2c4de59f4c0: - ; return false } func rewriteValueAMD64_OpAMD64SETBE(v *Value, config *Config) bool { @@ -12371,88 +10766,70 @@ func rewriteValueAMD64_OpAMD64SETBE(v *Value, config *Config) bool { // match: (SETBE (InvertFlags x)) // cond: // result: (SETAE x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto end9d9031643469798b14b8cad1f5a7a1ba + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETAE) v.AddArg(x) return true } - goto end9d9031643469798b14b8cad1f5a7a1ba -end9d9031643469798b14b8cad1f5a7a1ba: - ; // match: (SETBE (FlagEQ)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto ende6a02d3ce0e1584e806c7861de97eb5b + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto ende6a02d3ce0e1584e806c7861de97eb5b -ende6a02d3ce0e1584e806c7861de97eb5b: - ; // match: (SETBE (FlagLT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto end7ea0208cd10e6311655d09e8aa354169 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end7ea0208cd10e6311655d09e8aa354169 -end7ea0208cd10e6311655d09e8aa354169: - ; // match: (SETBE (FlagLT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto enddbfa0595802c67348d3a3bd22b198231 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto enddbfa0595802c67348d3a3bd22b198231 -enddbfa0595802c67348d3a3bd22b198231: - ; // match: (SETBE (FlagGT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto end5b26e1d28d6a517ed004b0f9b80df27b + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end5b26e1d28d6a517ed004b0f9b80df27b -end5b26e1d28d6a517ed004b0f9b80df27b: - ; // match: (SETBE (FlagGT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto end679e2e0ccd0dd526ea781fc64102cb88 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end679e2e0ccd0dd526ea781fc64102cb88 -end679e2e0ccd0dd526ea781fc64102cb88: - ; return false } func rewriteValueAMD64_OpAMD64SETEQ(v *Value, config *Config) bool { @@ -12461,88 +10838,70 @@ func rewriteValueAMD64_OpAMD64SETEQ(v *Value, config *Config) bool { // match: (SETEQ (InvertFlags x)) // cond: // result: (SETEQ x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto end5d2039c9368d8c0cfba23b5a85b459e1 + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETEQ) v.AddArg(x) return true } - goto end5d2039c9368d8c0cfba23b5a85b459e1 -end5d2039c9368d8c0cfba23b5a85b459e1: - ; // match: (SETEQ (FlagEQ)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto end74e09087ca9d4bdf7740f4f052d2b9d3 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end74e09087ca9d4bdf7740f4f052d2b9d3 -end74e09087ca9d4bdf7740f4f052d2b9d3: - ; // match: (SETEQ (FlagLT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto ende5d3756d09e616648de68d364b2c308f + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto ende5d3756d09e616648de68d364b2c308f -ende5d3756d09e616648de68d364b2c308f: - ; // match: (SETEQ (FlagLT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto end1a86a603a5c6e0f328f63b9279137bcc + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end1a86a603a5c6e0f328f63b9279137bcc -end1a86a603a5c6e0f328f63b9279137bcc: - ; // match: (SETEQ (FlagGT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto endbf907332cd6004c73b88f43b5e20275f + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto endbf907332cd6004c73b88f43b5e20275f -endbf907332cd6004c73b88f43b5e20275f: - ; // match: (SETEQ (FlagGT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto end707540a9904307c186884f60e425ca62 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end707540a9904307c186884f60e425ca62 -end707540a9904307c186884f60e425ca62: - ; return false } func rewriteValueAMD64_OpAMD64SETG(v *Value, config *Config) bool { @@ -12551,88 +10910,70 @@ func rewriteValueAMD64_OpAMD64SETG(v *Value, config *Config) bool { // match: (SETG (InvertFlags x)) // cond: // result: (SETL x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto endf7586738694c9cd0b74ae28bbadb649f + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETL) v.AddArg(x) return true } - goto endf7586738694c9cd0b74ae28bbadb649f -endf7586738694c9cd0b74ae28bbadb649f: - ; // match: (SETG (FlagEQ)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto endc952db8883f26126822bac29276b0690 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto endc952db8883f26126822bac29276b0690 -endc952db8883f26126822bac29276b0690: - ; // match: (SETG (FlagLT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto end3b6d659c9285d30eba022a85c6c6f1c9 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end3b6d659c9285d30eba022a85c6c6f1c9 -end3b6d659c9285d30eba022a85c6c6f1c9: - ; // match: (SETG (FlagLT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto end2eabfc908ca06e7d5d217142dd48af33 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end2eabfc908ca06e7d5d217142dd48af33 -end2eabfc908ca06e7d5d217142dd48af33: - ; // match: (SETG (FlagGT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto end7c059e63a98776c77bb8e43759d2d864 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end7c059e63a98776c77bb8e43759d2d864 -end7c059e63a98776c77bb8e43759d2d864: - ; // match: (SETG (FlagGT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto enddcb3196491c82060bcb90da722ffa8bd + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto enddcb3196491c82060bcb90da722ffa8bd -enddcb3196491c82060bcb90da722ffa8bd: - ; return false } func rewriteValueAMD64_OpAMD64SETGE(v *Value, config *Config) bool { @@ -12641,88 +10982,70 @@ func rewriteValueAMD64_OpAMD64SETGE(v *Value, config *Config) bool { // match: (SETGE (InvertFlags x)) // cond: // result: (SETLE x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto end82c11eff6f842159f564f2dad3d2eedc + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETLE) v.AddArg(x) return true } - goto end82c11eff6f842159f564f2dad3d2eedc -end82c11eff6f842159f564f2dad3d2eedc: - ; // match: (SETGE (FlagEQ)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto end1152b03b15fb4ea1822b2cc1c6815887 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end1152b03b15fb4ea1822b2cc1c6815887 -end1152b03b15fb4ea1822b2cc1c6815887: - ; // match: (SETGE (FlagLT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto endd55763184b306cc32397b421df6fc994 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto endd55763184b306cc32397b421df6fc994 -endd55763184b306cc32397b421df6fc994: - ; // match: (SETGE (FlagLT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto end209fbc531c4d6696b0b226c1ac016add + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end209fbc531c4d6696b0b226c1ac016add -end209fbc531c4d6696b0b226c1ac016add: - ; // match: (SETGE (FlagGT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto end41600cc6b5af1497fc534af49eaf60a2 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end41600cc6b5af1497fc534af49eaf60a2 -end41600cc6b5af1497fc534af49eaf60a2: - ; // match: (SETGE (FlagGT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto endaa33fb1204dba90a141a9a945a9643a2 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto endaa33fb1204dba90a141a9a945a9643a2 -endaa33fb1204dba90a141a9a945a9643a2: - ; return false } func rewriteValueAMD64_OpAMD64SETL(v *Value, config *Config) bool { @@ -12731,88 +11054,70 @@ func rewriteValueAMD64_OpAMD64SETL(v *Value, config *Config) bool { // match: (SETL (InvertFlags x)) // cond: // result: (SETG x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto ende33160cd86b9d4d3b77e02fb4658d5d3 + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETG) v.AddArg(x) return true } - goto ende33160cd86b9d4d3b77e02fb4658d5d3 -ende33160cd86b9d4d3b77e02fb4658d5d3: - ; // match: (SETL (FlagEQ)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto end52e421ca76fa5dfba6b9bc35b220c0bf + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end52e421ca76fa5dfba6b9bc35b220c0bf -end52e421ca76fa5dfba6b9bc35b220c0bf: - ; // match: (SETL (FlagLT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto end4d9781536010887bcf6f6ffd563e6aac + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end4d9781536010887bcf6f6ffd563e6aac -end4d9781536010887bcf6f6ffd563e6aac: - ; // match: (SETL (FlagLT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto end9d0dd525ca800cb3ec73e94d60c3cbf1 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end9d0dd525ca800cb3ec73e94d60c3cbf1 -end9d0dd525ca800cb3ec73e94d60c3cbf1: - ; // match: (SETL (FlagGT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto end6d77da1539ee0ebebee0e162c55e8f6e + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end6d77da1539ee0ebebee0e162c55e8f6e -end6d77da1539ee0ebebee0e162c55e8f6e: - ; // match: (SETL (FlagGT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto end6c129bef0cc197325a338d17720516d1 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end6c129bef0cc197325a338d17720516d1 -end6c129bef0cc197325a338d17720516d1: - ; return false } func rewriteValueAMD64_OpAMD64SETLE(v *Value, config *Config) bool { @@ -12821,88 +11126,70 @@ func rewriteValueAMD64_OpAMD64SETLE(v *Value, config *Config) bool { // match: (SETLE (InvertFlags x)) // cond: // result: (SETGE x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto end9307d96753efbeb888d1c98a6aba7a29 + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETGE) v.AddArg(x) return true } - goto end9307d96753efbeb888d1c98a6aba7a29 -end9307d96753efbeb888d1c98a6aba7a29: - ; // match: (SETLE (FlagEQ)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto end43f998d2f9524fcdf45bab9fe672aa7c + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end43f998d2f9524fcdf45bab9fe672aa7c -end43f998d2f9524fcdf45bab9fe672aa7c: - ; // match: (SETLE (FlagLT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto end80212f1ca6a01bccdf4bbd5aa15d5aab + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end80212f1ca6a01bccdf4bbd5aa15d5aab -end80212f1ca6a01bccdf4bbd5aa15d5aab: - ; // match: (SETLE (FlagLT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto endd5ab2a8df7344cd7c8e1092d78bfd871 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto endd5ab2a8df7344cd7c8e1092d78bfd871 -endd5ab2a8df7344cd7c8e1092d78bfd871: - ; // match: (SETLE (FlagGT_ULT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto enda74997e85c6f82ff1c530e6051d01e21 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto enda74997e85c6f82ff1c530e6051d01e21 -enda74997e85c6f82ff1c530e6051d01e21: - ; // match: (SETLE (FlagGT_UGT)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto end7694b41632545d10fcc6339063c53f07 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end7694b41632545d10fcc6339063c53f07 -end7694b41632545d10fcc6339063c53f07: - ; return false } func rewriteValueAMD64_OpAMD64SETNE(v *Value, config *Config) bool { @@ -12911,88 +11198,70 @@ func rewriteValueAMD64_OpAMD64SETNE(v *Value, config *Config) bool { // match: (SETNE (InvertFlags x)) // cond: // result: (SETNE x) - { + for { if v.Args[0].Op != OpAMD64InvertFlags { - goto endbc71811b789475308014550f638026eb + break } x := v.Args[0].Args[0] v.reset(OpAMD64SETNE) v.AddArg(x) return true } - goto endbc71811b789475308014550f638026eb -endbc71811b789475308014550f638026eb: - ; // match: (SETNE (FlagEQ)) // cond: // result: (MOVBconst [0]) - { + for { if v.Args[0].Op != OpAMD64FlagEQ { - goto end6b66ea2ed518a926a071fe0d3dce46d8 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end6b66ea2ed518a926a071fe0d3dce46d8 -end6b66ea2ed518a926a071fe0d3dce46d8: - ; // match: (SETNE (FlagLT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_ULT { - goto ende4d3b99f9dff014be3067a577ba0b016 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto ende4d3b99f9dff014be3067a577ba0b016 -ende4d3b99f9dff014be3067a577ba0b016: - ; // match: (SETNE (FlagLT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagLT_UGT { - goto endb98d73ed6e5d3d21c2ea33840ab2a21c + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto endb98d73ed6e5d3d21c2ea33840ab2a21c -endb98d73ed6e5d3d21c2ea33840ab2a21c: - ; // match: (SETNE (FlagGT_ULT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_ULT { - goto end3bceb5cece8d0112cc8cd53435d64ef4 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end3bceb5cece8d0112cc8cd53435d64ef4 -end3bceb5cece8d0112cc8cd53435d64ef4: - ; // match: (SETNE (FlagGT_UGT)) // cond: // result: (MOVBconst [1]) - { + for { if v.Args[0].Op != OpAMD64FlagGT_UGT { - goto end9249b3ed3e1e582dd5435fb73cbc13ac + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 1 return true } - goto end9249b3ed3e1e582dd5435fb73cbc13ac -end9249b3ed3e1e582dd5435fb73cbc13ac: - ; return false } func rewriteValueAMD64_OpAMD64SHLB(v *Value, config *Config) bool { @@ -13001,10 +11270,10 @@ func rewriteValueAMD64_OpAMD64SHLB(v *Value, config *Config) bool { // match: (SHLB x (MOVQconst [c])) // cond: // result: (SHLBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto endb1f377b81b6f4c1864893934230ecbd1 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLBconst) @@ -13012,16 +11281,13 @@ func rewriteValueAMD64_OpAMD64SHLB(v *Value, config *Config) bool { v.AddArg(x) return true } - goto endb1f377b81b6f4c1864893934230ecbd1 -endb1f377b81b6f4c1864893934230ecbd1: - ; // match: (SHLB x (MOVLconst [c])) // cond: // result: (SHLBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end434bc4ee26d93bf1c734be760d7a1aa6 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLBconst) @@ -13029,16 +11295,13 @@ endb1f377b81b6f4c1864893934230ecbd1: v.AddArg(x) return true } - goto end434bc4ee26d93bf1c734be760d7a1aa6 -end434bc4ee26d93bf1c734be760d7a1aa6: - ; // match: (SHLB x (MOVWconst [c])) // cond: // result: (SHLBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end2c4fe4cce2ae24e0bc5c7d209d22e9d9 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLBconst) @@ -13046,16 +11309,13 @@ end434bc4ee26d93bf1c734be760d7a1aa6: v.AddArg(x) return true } - goto end2c4fe4cce2ae24e0bc5c7d209d22e9d9 -end2c4fe4cce2ae24e0bc5c7d209d22e9d9: - ; // match: (SHLB x (MOVBconst [c])) // cond: // result: (SHLBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end2d0d0111d831d8a575b5627284a6337a + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLBconst) @@ -13063,9 +11323,6 @@ end2c4fe4cce2ae24e0bc5c7d209d22e9d9: v.AddArg(x) return true } - goto end2d0d0111d831d8a575b5627284a6337a -end2d0d0111d831d8a575b5627284a6337a: - ; return false } func rewriteValueAMD64_OpAMD64SHLL(v *Value, config *Config) bool { @@ -13074,10 +11331,10 @@ func rewriteValueAMD64_OpAMD64SHLL(v *Value, config *Config) bool { // match: (SHLL x (MOVQconst [c])) // cond: // result: (SHLLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end1b4f8b8d62445fdcb3cf9cd5036b559b + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLLconst) @@ -13085,16 +11342,13 @@ func rewriteValueAMD64_OpAMD64SHLL(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end1b4f8b8d62445fdcb3cf9cd5036b559b -end1b4f8b8d62445fdcb3cf9cd5036b559b: - ; // match: (SHLL x (MOVLconst [c])) // cond: // result: (SHLLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end633f9ddcfbb63374c895a5f78da75d25 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLLconst) @@ -13102,16 +11356,13 @@ end1b4f8b8d62445fdcb3cf9cd5036b559b: v.AddArg(x) return true } - goto end633f9ddcfbb63374c895a5f78da75d25 -end633f9ddcfbb63374c895a5f78da75d25: - ; // match: (SHLL x (MOVWconst [c])) // cond: // result: (SHLLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto enda4f59495061db6cfe796b6dba8d3cad8 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLLconst) @@ -13119,16 +11370,13 @@ end633f9ddcfbb63374c895a5f78da75d25: v.AddArg(x) return true } - goto enda4f59495061db6cfe796b6dba8d3cad8 -enda4f59495061db6cfe796b6dba8d3cad8: - ; // match: (SHLL x (MOVBconst [c])) // cond: // result: (SHLLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto endd6f39b5f3174ca738ae1c48a96d837a6 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLLconst) @@ -13136,9 +11384,6 @@ enda4f59495061db6cfe796b6dba8d3cad8: v.AddArg(x) return true } - goto endd6f39b5f3174ca738ae1c48a96d837a6 -endd6f39b5f3174ca738ae1c48a96d837a6: - ; return false } func rewriteValueAMD64_OpAMD64SHLQ(v *Value, config *Config) bool { @@ -13147,10 +11392,10 @@ func rewriteValueAMD64_OpAMD64SHLQ(v *Value, config *Config) bool { // match: (SHLQ x (MOVQconst [c])) // cond: // result: (SHLQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end4d7e3a945cacdd6b6c8c0de6f465d4ae + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLQconst) @@ -13158,16 +11403,13 @@ func rewriteValueAMD64_OpAMD64SHLQ(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end4d7e3a945cacdd6b6c8c0de6f465d4ae -end4d7e3a945cacdd6b6c8c0de6f465d4ae: - ; // match: (SHLQ x (MOVLconst [c])) // cond: // result: (SHLQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end394bae2652a3e4bc4b70a6fc193949f8 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLQconst) @@ -13175,16 +11417,13 @@ end4d7e3a945cacdd6b6c8c0de6f465d4ae: v.AddArg(x) return true } - goto end394bae2652a3e4bc4b70a6fc193949f8 -end394bae2652a3e4bc4b70a6fc193949f8: - ; // match: (SHLQ x (MOVWconst [c])) // cond: // result: (SHLQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end358be4078efa15ceb443ccda7ce592a0 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLQconst) @@ -13192,16 +11431,13 @@ end394bae2652a3e4bc4b70a6fc193949f8: v.AddArg(x) return true } - goto end358be4078efa15ceb443ccda7ce592a0 -end358be4078efa15ceb443ccda7ce592a0: - ; // match: (SHLQ x (MOVBconst [c])) // cond: // result: (SHLQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end032e0efd085f37a12322dbc63795a1b2 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLQconst) @@ -13209,9 +11445,6 @@ end358be4078efa15ceb443ccda7ce592a0: v.AddArg(x) return true } - goto end032e0efd085f37a12322dbc63795a1b2 -end032e0efd085f37a12322dbc63795a1b2: - ; return false } func rewriteValueAMD64_OpAMD64SHLW(v *Value, config *Config) bool { @@ -13220,10 +11453,10 @@ func rewriteValueAMD64_OpAMD64SHLW(v *Value, config *Config) bool { // match: (SHLW x (MOVQconst [c])) // cond: // result: (SHLWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto enda29aa85ce58b1fdb63d71e2632efd6db + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLWconst) @@ -13231,16 +11464,13 @@ func rewriteValueAMD64_OpAMD64SHLW(v *Value, config *Config) bool { v.AddArg(x) return true } - goto enda29aa85ce58b1fdb63d71e2632efd6db -enda29aa85ce58b1fdb63d71e2632efd6db: - ; // match: (SHLW x (MOVLconst [c])) // cond: // result: (SHLWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end59ce264ffde0ef9af8ea1a25db7173b6 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLWconst) @@ -13248,16 +11478,13 @@ enda29aa85ce58b1fdb63d71e2632efd6db: v.AddArg(x) return true } - goto end59ce264ffde0ef9af8ea1a25db7173b6 -end59ce264ffde0ef9af8ea1a25db7173b6: - ; // match: (SHLW x (MOVWconst [c])) // cond: // result: (SHLWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto endba96a52aa58d28b3357828051e0e695c + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLWconst) @@ -13265,16 +11492,13 @@ end59ce264ffde0ef9af8ea1a25db7173b6: v.AddArg(x) return true } - goto endba96a52aa58d28b3357828051e0e695c -endba96a52aa58d28b3357828051e0e695c: - ; // match: (SHLW x (MOVBconst [c])) // cond: // result: (SHLWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto endf9c2165ea24ac7bbdd46cdf0e084104f + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHLWconst) @@ -13282,9 +11506,6 @@ endba96a52aa58d28b3357828051e0e695c: v.AddArg(x) return true } - goto endf9c2165ea24ac7bbdd46cdf0e084104f -endf9c2165ea24ac7bbdd46cdf0e084104f: - ; return false } func rewriteValueAMD64_OpAMD64SHRB(v *Value, config *Config) bool { @@ -13293,10 +11514,10 @@ func rewriteValueAMD64_OpAMD64SHRB(v *Value, config *Config) bool { // match: (SHRB x (MOVQconst [c])) // cond: // result: (SHRBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end2e7fb7a5406cbf51c69a0d04dc73d16a + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRBconst) @@ -13304,16 +11525,13 @@ func rewriteValueAMD64_OpAMD64SHRB(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end2e7fb7a5406cbf51c69a0d04dc73d16a -end2e7fb7a5406cbf51c69a0d04dc73d16a: - ; // match: (SHRB x (MOVLconst [c])) // cond: // result: (SHRBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end69603cc51e4f244388f368dd188a526a + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRBconst) @@ -13321,16 +11539,13 @@ end2e7fb7a5406cbf51c69a0d04dc73d16a: v.AddArg(x) return true } - goto end69603cc51e4f244388f368dd188a526a -end69603cc51e4f244388f368dd188a526a: - ; // match: (SHRB x (MOVWconst [c])) // cond: // result: (SHRBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto endd96421647299a1bb1b68ad0a90fa0be3 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRBconst) @@ -13338,16 +11553,13 @@ end69603cc51e4f244388f368dd188a526a: v.AddArg(x) return true } - goto endd96421647299a1bb1b68ad0a90fa0be3 -endd96421647299a1bb1b68ad0a90fa0be3: - ; // match: (SHRB x (MOVBconst [c])) // cond: // result: (SHRBconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto enddb1cd5aaa826d43fa4f6d1b2b8795e58 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRBconst) @@ -13355,9 +11567,6 @@ endd96421647299a1bb1b68ad0a90fa0be3: v.AddArg(x) return true } - goto enddb1cd5aaa826d43fa4f6d1b2b8795e58 -enddb1cd5aaa826d43fa4f6d1b2b8795e58: - ; return false } func rewriteValueAMD64_OpAMD64SHRL(v *Value, config *Config) bool { @@ -13366,10 +11575,10 @@ func rewriteValueAMD64_OpAMD64SHRL(v *Value, config *Config) bool { // match: (SHRL x (MOVQconst [c])) // cond: // result: (SHRLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end893880cdc59697295c1849a250163e59 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRLconst) @@ -13377,16 +11586,13 @@ func rewriteValueAMD64_OpAMD64SHRL(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end893880cdc59697295c1849a250163e59 -end893880cdc59697295c1849a250163e59: - ; // match: (SHRL x (MOVLconst [c])) // cond: // result: (SHRLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end344b8b9202e1925e8d0561f1c21412fc + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRLconst) @@ -13394,16 +11600,13 @@ end893880cdc59697295c1849a250163e59: v.AddArg(x) return true } - goto end344b8b9202e1925e8d0561f1c21412fc -end344b8b9202e1925e8d0561f1c21412fc: - ; // match: (SHRL x (MOVWconst [c])) // cond: // result: (SHRLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end561280f746f9983f4a4b4a5119b53028 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRLconst) @@ -13411,16 +11614,13 @@ end344b8b9202e1925e8d0561f1c21412fc: v.AddArg(x) return true } - goto end561280f746f9983f4a4b4a5119b53028 -end561280f746f9983f4a4b4a5119b53028: - ; // match: (SHRL x (MOVBconst [c])) // cond: // result: (SHRLconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto enda339271c59d274b73c04ba1f2c44c2b9 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRLconst) @@ -13428,9 +11628,6 @@ end561280f746f9983f4a4b4a5119b53028: v.AddArg(x) return true } - goto enda339271c59d274b73c04ba1f2c44c2b9 -enda339271c59d274b73c04ba1f2c44c2b9: - ; return false } func rewriteValueAMD64_OpAMD64SHRQ(v *Value, config *Config) bool { @@ -13439,10 +11636,10 @@ func rewriteValueAMD64_OpAMD64SHRQ(v *Value, config *Config) bool { // match: (SHRQ x (MOVQconst [c])) // cond: // result: (SHRQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end699d35e2d5cfa08b8a3b1c8a183ddcf3 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRQconst) @@ -13450,16 +11647,13 @@ func rewriteValueAMD64_OpAMD64SHRQ(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end699d35e2d5cfa08b8a3b1c8a183ddcf3 -end699d35e2d5cfa08b8a3b1c8a183ddcf3: - ; // match: (SHRQ x (MOVLconst [c])) // cond: // result: (SHRQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end3189f4abaac8028d9191c9ba64124999 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRQconst) @@ -13467,16 +11661,13 @@ end699d35e2d5cfa08b8a3b1c8a183ddcf3: v.AddArg(x) return true } - goto end3189f4abaac8028d9191c9ba64124999 -end3189f4abaac8028d9191c9ba64124999: - ; // match: (SHRQ x (MOVWconst [c])) // cond: // result: (SHRQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end0cbc86ae04a355c0e2a96400242f4633 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRQconst) @@ -13484,16 +11675,13 @@ end3189f4abaac8028d9191c9ba64124999: v.AddArg(x) return true } - goto end0cbc86ae04a355c0e2a96400242f4633 -end0cbc86ae04a355c0e2a96400242f4633: - ; // match: (SHRQ x (MOVBconst [c])) // cond: // result: (SHRQconst [c&63] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto endb9c003612674e7a1ea7c13e463c229d2 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRQconst) @@ -13501,9 +11689,6 @@ end0cbc86ae04a355c0e2a96400242f4633: v.AddArg(x) return true } - goto endb9c003612674e7a1ea7c13e463c229d2 -endb9c003612674e7a1ea7c13e463c229d2: - ; return false } func rewriteValueAMD64_OpAMD64SHRW(v *Value, config *Config) bool { @@ -13512,10 +11697,10 @@ func rewriteValueAMD64_OpAMD64SHRW(v *Value, config *Config) bool { // match: (SHRW x (MOVQconst [c])) // cond: // result: (SHRWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto endc5c82eea9a6b51b1d6b76e57f21f46ff + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRWconst) @@ -13523,16 +11708,13 @@ func rewriteValueAMD64_OpAMD64SHRW(v *Value, config *Config) bool { v.AddArg(x) return true } - goto endc5c82eea9a6b51b1d6b76e57f21f46ff -endc5c82eea9a6b51b1d6b76e57f21f46ff: - ; // match: (SHRW x (MOVLconst [c])) // cond: // result: (SHRWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end773e94c857256ae9a31eb5b3d667e64b + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRWconst) @@ -13540,16 +11722,13 @@ endc5c82eea9a6b51b1d6b76e57f21f46ff: v.AddArg(x) return true } - goto end773e94c857256ae9a31eb5b3d667e64b -end773e94c857256ae9a31eb5b3d667e64b: - ; // match: (SHRW x (MOVWconst [c])) // cond: // result: (SHRWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto endd75ff1f9b3e9ec9c942a39b6179da1b3 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRWconst) @@ -13557,16 +11736,13 @@ end773e94c857256ae9a31eb5b3d667e64b: v.AddArg(x) return true } - goto endd75ff1f9b3e9ec9c942a39b6179da1b3 -endd75ff1f9b3e9ec9c942a39b6179da1b3: - ; // match: (SHRW x (MOVBconst [c])) // cond: // result: (SHRWconst [c&31] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end6761530cd742ad00057c19a6a3c38ada + break } c := v.Args[1].AuxInt v.reset(OpAMD64SHRWconst) @@ -13574,9 +11750,6 @@ endd75ff1f9b3e9ec9c942a39b6179da1b3: v.AddArg(x) return true } - goto end6761530cd742ad00057c19a6a3c38ada -end6761530cd742ad00057c19a6a3c38ada: - ; return false } func rewriteValueAMD64_OpAMD64SUBB(v *Value, config *Config) bool { @@ -13585,10 +11758,10 @@ func rewriteValueAMD64_OpAMD64SUBB(v *Value, config *Config) bool { // match: (SUBB x (MOVBconst [c])) // cond: // result: (SUBBconst x [c]) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto end9ca5d2a70e2df1a5a3ed6786bce1f7b2 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SUBBconst) @@ -13596,15 +11769,12 @@ func rewriteValueAMD64_OpAMD64SUBB(v *Value, config *Config) bool { v.AuxInt = c return true } - goto end9ca5d2a70e2df1a5a3ed6786bce1f7b2 -end9ca5d2a70e2df1a5a3ed6786bce1f7b2: - ; // match: (SUBB (MOVBconst [c]) x) // cond: // result: (NEGB (SUBBconst x [c])) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto endc288755d69b04d24a6aac32a73956411 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -13615,24 +11785,18 @@ end9ca5d2a70e2df1a5a3ed6786bce1f7b2: v.AddArg(v0) return true } - goto endc288755d69b04d24a6aac32a73956411 -endc288755d69b04d24a6aac32a73956411: - ; // match: (SUBB x x) // cond: // result: (MOVBconst [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto ende8904403d937d95b0d6133d3ec92bb45 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto ende8904403d937d95b0d6133d3ec92bb45 -ende8904403d937d95b0d6133d3ec92bb45: - ; return false } func rewriteValueAMD64_OpAMD64SUBBconst(v *Value, config *Config) bool { @@ -13641,43 +11805,37 @@ func rewriteValueAMD64_OpAMD64SUBBconst(v *Value, config *Config) bool { // match: (SUBBconst [c] x) // cond: int8(c) == 0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int8(c) == 0) { - goto end974a26e947badc62fc104581f49138e6 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end974a26e947badc62fc104581f49138e6 -end974a26e947badc62fc104581f49138e6: - ; // match: (SUBBconst [c] (MOVBconst [d])) // cond: // result: (MOVBconst [d-c]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVBconst { - goto enddc5383558e2f3eae507afcb94eada964 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = d - c return true } - goto enddc5383558e2f3eae507afcb94eada964 -enddc5383558e2f3eae507afcb94eada964: - ; // match: (SUBBconst [c] (SUBBconst [d] x)) // cond: // result: (ADDBconst [-c-d] x) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64SUBBconst { - goto end035c57413a46eb347ecb3736d1510915 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -13686,9 +11844,6 @@ enddc5383558e2f3eae507afcb94eada964: v.AddArg(x) return true } - goto end035c57413a46eb347ecb3736d1510915 -end035c57413a46eb347ecb3736d1510915: - ; return false } func rewriteValueAMD64_OpAMD64SUBL(v *Value, config *Config) bool { @@ -13697,10 +11852,10 @@ func rewriteValueAMD64_OpAMD64SUBL(v *Value, config *Config) bool { // match: (SUBL x (MOVLconst [c])) // cond: // result: (SUBLconst x [c]) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto end178c1d6c86f9c16f6497586c2f7d8625 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SUBLconst) @@ -13708,15 +11863,12 @@ func rewriteValueAMD64_OpAMD64SUBL(v *Value, config *Config) bool { v.AuxInt = c return true } - goto end178c1d6c86f9c16f6497586c2f7d8625 -end178c1d6c86f9c16f6497586c2f7d8625: - ; // match: (SUBL (MOVLconst [c]) x) // cond: // result: (NEGL (SUBLconst x [c])) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto endb0efe6e15ec20486b849534a00483ae2 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -13727,24 +11879,18 @@ end178c1d6c86f9c16f6497586c2f7d8625: v.AddArg(v0) return true } - goto endb0efe6e15ec20486b849534a00483ae2 -endb0efe6e15ec20486b849534a00483ae2: - ; // match: (SUBL x x) // cond: // result: (MOVLconst [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end332f1f641f875c69bea7289191e69133 + break } v.reset(OpAMD64MOVLconst) v.AuxInt = 0 return true } - goto end332f1f641f875c69bea7289191e69133 -end332f1f641f875c69bea7289191e69133: - ; return false } func rewriteValueAMD64_OpAMD64SUBLconst(v *Value, config *Config) bool { @@ -13753,43 +11899,37 @@ func rewriteValueAMD64_OpAMD64SUBLconst(v *Value, config *Config) bool { // match: (SUBLconst [c] x) // cond: int32(c) == 0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int32(c) == 0) { - goto end3fa10eaa42f9e283cf1757e1b2d3cac2 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end3fa10eaa42f9e283cf1757e1b2d3cac2 -end3fa10eaa42f9e283cf1757e1b2d3cac2: - ; // match: (SUBLconst [c] (MOVLconst [d])) // cond: // result: (MOVLconst [d-c]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVLconst { - goto end6c5c6d58d4bdd0a5c2f7bf10b343b41e + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVLconst) v.AuxInt = d - c return true } - goto end6c5c6d58d4bdd0a5c2f7bf10b343b41e -end6c5c6d58d4bdd0a5c2f7bf10b343b41e: - ; // match: (SUBLconst [c] (SUBLconst [d] x)) // cond: // result: (ADDLconst [-c-d] x) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64SUBLconst { - goto end0c9ffb11e8a56ced1b14dbf6bf9a6737 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -13798,9 +11938,6 @@ end6c5c6d58d4bdd0a5c2f7bf10b343b41e: v.AddArg(x) return true } - goto end0c9ffb11e8a56ced1b14dbf6bf9a6737 -end0c9ffb11e8a56ced1b14dbf6bf9a6737: - ; return false } func rewriteValueAMD64_OpAMD64SUBQ(v *Value, config *Config) bool { @@ -13809,34 +11946,31 @@ func rewriteValueAMD64_OpAMD64SUBQ(v *Value, config *Config) bool { // match: (SUBQ x (MOVQconst [c])) // cond: is32Bit(c) // result: (SUBQconst x [c]) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end9bbb7b20824a498752c605942fad89c2 + break } c := v.Args[1].AuxInt if !(is32Bit(c)) { - goto end9bbb7b20824a498752c605942fad89c2 + break } v.reset(OpAMD64SUBQconst) v.AddArg(x) v.AuxInt = c return true } - goto end9bbb7b20824a498752c605942fad89c2 -end9bbb7b20824a498752c605942fad89c2: - ; // match: (SUBQ (MOVQconst [c]) x) // cond: is32Bit(c) // result: (NEGQ (SUBQconst x [c])) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto end8beb96de3efee9206d1bd4b7d777d2cb + break } c := v.Args[0].AuxInt x := v.Args[1] if !(is32Bit(c)) { - goto end8beb96de3efee9206d1bd4b7d777d2cb + break } v.reset(OpAMD64NEGQ) v0 := b.NewValue0(v.Line, OpAMD64SUBQconst, v.Type) @@ -13845,24 +11979,18 @@ end9bbb7b20824a498752c605942fad89c2: v.AddArg(v0) return true } - goto end8beb96de3efee9206d1bd4b7d777d2cb -end8beb96de3efee9206d1bd4b7d777d2cb: - ; // match: (SUBQ x x) // cond: // result: (MOVQconst [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto endd87d1d839d2dc54d9c90fa4f73383480 + break } v.reset(OpAMD64MOVQconst) v.AuxInt = 0 return true } - goto endd87d1d839d2dc54d9c90fa4f73383480 -endd87d1d839d2dc54d9c90fa4f73383480: - ; return false } func rewriteValueAMD64_OpAMD64SUBQconst(v *Value, config *Config) bool { @@ -13871,9 +11999,9 @@ func rewriteValueAMD64_OpAMD64SUBQconst(v *Value, config *Config) bool { // match: (SUBQconst [0] x) // cond: // result: x - { + for { if v.AuxInt != 0 { - goto endfce1d3cec7c543c9dd80a27d944eb09e + break } x := v.Args[0] v.reset(OpCopy) @@ -13881,32 +12009,26 @@ func rewriteValueAMD64_OpAMD64SUBQconst(v *Value, config *Config) bool { v.AddArg(x) return true } - goto endfce1d3cec7c543c9dd80a27d944eb09e -endfce1d3cec7c543c9dd80a27d944eb09e: - ; // match: (SUBQconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [d-c]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto endb0daebe6831cf381377c3e4248070f25 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = d - c return true } - goto endb0daebe6831cf381377c3e4248070f25 -endb0daebe6831cf381377c3e4248070f25: - ; // match: (SUBQconst [c] (SUBQconst [d] x)) // cond: // result: (ADDQconst [-c-d] x) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64SUBQconst { - goto end2d40ddb5ae9e90679456254c61858d9d + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -13915,9 +12037,6 @@ endb0daebe6831cf381377c3e4248070f25: v.AddArg(x) return true } - goto end2d40ddb5ae9e90679456254c61858d9d -end2d40ddb5ae9e90679456254c61858d9d: - ; return false } func rewriteValueAMD64_OpAMD64SUBW(v *Value, config *Config) bool { @@ -13926,10 +12045,10 @@ func rewriteValueAMD64_OpAMD64SUBW(v *Value, config *Config) bool { // match: (SUBW x (MOVWconst [c])) // cond: // result: (SUBWconst x [c]) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end135aa9100b2f61d58b37cede37b63731 + break } c := v.Args[1].AuxInt v.reset(OpAMD64SUBWconst) @@ -13937,15 +12056,12 @@ func rewriteValueAMD64_OpAMD64SUBW(v *Value, config *Config) bool { v.AuxInt = c return true } - goto end135aa9100b2f61d58b37cede37b63731 -end135aa9100b2f61d58b37cede37b63731: - ; // match: (SUBW (MOVWconst [c]) x) // cond: // result: (NEGW (SUBWconst x [c])) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto end44d23f7e65a4b1c42d0e6463f8e493b6 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -13956,24 +12072,18 @@ end135aa9100b2f61d58b37cede37b63731: v.AddArg(v0) return true } - goto end44d23f7e65a4b1c42d0e6463f8e493b6 -end44d23f7e65a4b1c42d0e6463f8e493b6: - ; // match: (SUBW x x) // cond: // result: (MOVWconst [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto endb970e7c318d04a1afe1dfe08a7ca0d9c + break } v.reset(OpAMD64MOVWconst) v.AuxInt = 0 return true } - goto endb970e7c318d04a1afe1dfe08a7ca0d9c -endb970e7c318d04a1afe1dfe08a7ca0d9c: - ; return false } func rewriteValueAMD64_OpAMD64SUBWconst(v *Value, config *Config) bool { @@ -13982,43 +12092,37 @@ func rewriteValueAMD64_OpAMD64SUBWconst(v *Value, config *Config) bool { // match: (SUBWconst [c] x) // cond: int16(c) == 0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int16(c) == 0) { - goto end1e7a493992465c9cc8314e3256ed6394 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end1e7a493992465c9cc8314e3256ed6394 -end1e7a493992465c9cc8314e3256ed6394: - ; // match: (SUBWconst [c] (MOVWconst [d])) // cond: // result: (MOVWconst [d-c]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVWconst { - goto endae629a229c399eaed7dbb95b1b0e6f8a + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVWconst) v.AuxInt = d - c return true } - goto endae629a229c399eaed7dbb95b1b0e6f8a -endae629a229c399eaed7dbb95b1b0e6f8a: - ; // match: (SUBWconst [c] (SUBWconst [d] x)) // cond: // result: (ADDWconst [-c-d] x) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64SUBWconst { - goto enda59f08d12aa08717b0443b7bb1b71374 + break } d := v.Args[0].AuxInt x := v.Args[0].Args[0] @@ -14027,9 +12131,6 @@ endae629a229c399eaed7dbb95b1b0e6f8a: v.AddArg(x) return true } - goto enda59f08d12aa08717b0443b7bb1b71374 -enda59f08d12aa08717b0443b7bb1b71374: - ; return false } func rewriteValueAMD64_OpSignExt16to32(v *Value, config *Config) bool { @@ -14038,15 +12139,12 @@ func rewriteValueAMD64_OpSignExt16to32(v *Value, config *Config) bool { // match: (SignExt16to32 x) // cond: // result: (MOVWQSX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVWQSX) v.AddArg(x) return true } - goto end21e4271c2b48a5aa3561ccfa8fa67cd9 -end21e4271c2b48a5aa3561ccfa8fa67cd9: - ; return false } func rewriteValueAMD64_OpSignExt16to64(v *Value, config *Config) bool { @@ -14055,15 +12153,12 @@ func rewriteValueAMD64_OpSignExt16to64(v *Value, config *Config) bool { // match: (SignExt16to64 x) // cond: // result: (MOVWQSX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVWQSX) v.AddArg(x) return true } - goto endc6d242ee3a3e195ef0f9e8dae47ada75 -endc6d242ee3a3e195ef0f9e8dae47ada75: - ; return false } func rewriteValueAMD64_OpSignExt32to64(v *Value, config *Config) bool { @@ -14072,15 +12167,12 @@ func rewriteValueAMD64_OpSignExt32to64(v *Value, config *Config) bool { // match: (SignExt32to64 x) // cond: // result: (MOVLQSX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVLQSX) v.AddArg(x) return true } - goto endb9f1a8b2d01eee44964a71a01bca165c -endb9f1a8b2d01eee44964a71a01bca165c: - ; return false } func rewriteValueAMD64_OpSignExt8to16(v *Value, config *Config) bool { @@ -14089,15 +12181,12 @@ func rewriteValueAMD64_OpSignExt8to16(v *Value, config *Config) bool { // match: (SignExt8to16 x) // cond: // result: (MOVBQSX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVBQSX) v.AddArg(x) return true } - goto end372869f08e147404b80634e5f83fd506 -end372869f08e147404b80634e5f83fd506: - ; return false } func rewriteValueAMD64_OpSignExt8to32(v *Value, config *Config) bool { @@ -14106,15 +12195,12 @@ func rewriteValueAMD64_OpSignExt8to32(v *Value, config *Config) bool { // match: (SignExt8to32 x) // cond: // result: (MOVBQSX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVBQSX) v.AddArg(x) return true } - goto end913e3575e5b4cf7f60585c108db40464 -end913e3575e5b4cf7f60585c108db40464: - ; return false } func rewriteValueAMD64_OpSignExt8to64(v *Value, config *Config) bool { @@ -14123,15 +12209,12 @@ func rewriteValueAMD64_OpSignExt8to64(v *Value, config *Config) bool { // match: (SignExt8to64 x) // cond: // result: (MOVBQSX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVBQSX) v.AddArg(x) return true } - goto endcef6d6001d3f25cf5dacee11a46e5c8c -endcef6d6001d3f25cf5dacee11a46e5c8c: - ; return false } func rewriteValueAMD64_OpSqrt(v *Value, config *Config) bool { @@ -14140,15 +12223,12 @@ func rewriteValueAMD64_OpSqrt(v *Value, config *Config) bool { // match: (Sqrt x) // cond: // result: (SQRTSD x) - { + for { x := v.Args[0] v.reset(OpAMD64SQRTSD) v.AddArg(x) return true } - goto end72f79ca9ec139e15856aaa03338cf543 -end72f79ca9ec139e15856aaa03338cf543: - ; return false } func rewriteValueAMD64_OpStaticCall(v *Value, config *Config) bool { @@ -14157,7 +12237,7 @@ func rewriteValueAMD64_OpStaticCall(v *Value, config *Config) bool { // match: (StaticCall [argwid] {target} mem) // cond: // result: (CALLstatic [argwid] {target} mem) - { + for { argwid := v.AuxInt target := v.Aux mem := v.Args[0] @@ -14167,9 +12247,6 @@ func rewriteValueAMD64_OpStaticCall(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end32c5cbec813d1c2ae94fc9b1090e4b2a -end32c5cbec813d1c2ae94fc9b1090e4b2a: - ; return false } func rewriteValueAMD64_OpStore(v *Value, config *Config) bool { @@ -14178,15 +12255,15 @@ func rewriteValueAMD64_OpStore(v *Value, config *Config) bool { // match: (Store [8] ptr val mem) // cond: is64BitFloat(val.Type) // result: (MOVSDstore ptr val mem) - { + for { if v.AuxInt != 8 { - goto endaeec4f61bc8e67dbf3fa2f79fe4c2b9e + break } ptr := v.Args[0] val := v.Args[1] mem := v.Args[2] if !(is64BitFloat(val.Type)) { - goto endaeec4f61bc8e67dbf3fa2f79fe4c2b9e + break } v.reset(OpAMD64MOVSDstore) v.AddArg(ptr) @@ -14194,21 +12271,18 @@ func rewriteValueAMD64_OpStore(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endaeec4f61bc8e67dbf3fa2f79fe4c2b9e -endaeec4f61bc8e67dbf3fa2f79fe4c2b9e: - ; // match: (Store [4] ptr val mem) // cond: is32BitFloat(val.Type) // result: (MOVSSstore ptr val mem) - { + for { if v.AuxInt != 4 { - goto endf638ca0a75871b5062da15324d0e0384 + break } ptr := v.Args[0] val := v.Args[1] mem := v.Args[2] if !(is32BitFloat(val.Type)) { - goto endf638ca0a75871b5062da15324d0e0384 + break } v.reset(OpAMD64MOVSSstore) v.AddArg(ptr) @@ -14216,15 +12290,12 @@ endaeec4f61bc8e67dbf3fa2f79fe4c2b9e: v.AddArg(mem) return true } - goto endf638ca0a75871b5062da15324d0e0384 -endf638ca0a75871b5062da15324d0e0384: - ; // match: (Store [8] ptr val mem) // cond: // result: (MOVQstore ptr val mem) - { + for { if v.AuxInt != 8 { - goto endd1eb7c3ea0c806e7a53ff3be86186eb7 + break } ptr := v.Args[0] val := v.Args[1] @@ -14235,15 +12306,12 @@ endf638ca0a75871b5062da15324d0e0384: v.AddArg(mem) return true } - goto endd1eb7c3ea0c806e7a53ff3be86186eb7 -endd1eb7c3ea0c806e7a53ff3be86186eb7: - ; // match: (Store [4] ptr val mem) // cond: // result: (MOVLstore ptr val mem) - { + for { if v.AuxInt != 4 { - goto end44e3b22360da76ecd59be9a8c2dd1347 + break } ptr := v.Args[0] val := v.Args[1] @@ -14254,15 +12322,12 @@ endd1eb7c3ea0c806e7a53ff3be86186eb7: v.AddArg(mem) return true } - goto end44e3b22360da76ecd59be9a8c2dd1347 -end44e3b22360da76ecd59be9a8c2dd1347: - ; // match: (Store [2] ptr val mem) // cond: // result: (MOVWstore ptr val mem) - { + for { if v.AuxInt != 2 { - goto endd0342b7fd3d0713f3e26922660047c71 + break } ptr := v.Args[0] val := v.Args[1] @@ -14273,15 +12338,12 @@ end44e3b22360da76ecd59be9a8c2dd1347: v.AddArg(mem) return true } - goto endd0342b7fd3d0713f3e26922660047c71 -endd0342b7fd3d0713f3e26922660047c71: - ; // match: (Store [1] ptr val mem) // cond: // result: (MOVBstore ptr val mem) - { + for { if v.AuxInt != 1 { - goto end8e76e20031197ca875889d2b4d0eb1d1 + break } ptr := v.Args[0] val := v.Args[1] @@ -14292,9 +12354,6 @@ endd0342b7fd3d0713f3e26922660047c71: v.AddArg(mem) return true } - goto end8e76e20031197ca875889d2b4d0eb1d1 -end8e76e20031197ca875889d2b4d0eb1d1: - ; return false } func rewriteValueAMD64_OpSub16(v *Value, config *Config) bool { @@ -14303,7 +12362,7 @@ func rewriteValueAMD64_OpSub16(v *Value, config *Config) bool { // match: (Sub16 x y) // cond: // result: (SUBW x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SUBW) @@ -14311,9 +12370,6 @@ func rewriteValueAMD64_OpSub16(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end54adc5de883c0460ca71c6ee464d4244 -end54adc5de883c0460ca71c6ee464d4244: - ; return false } func rewriteValueAMD64_OpSub32(v *Value, config *Config) bool { @@ -14322,7 +12378,7 @@ func rewriteValueAMD64_OpSub32(v *Value, config *Config) bool { // match: (Sub32 x y) // cond: // result: (SUBL x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SUBL) @@ -14330,9 +12386,6 @@ func rewriteValueAMD64_OpSub32(v *Value, config *Config) bool { v.AddArg(y) return true } - goto enddc3a2a488bda8c5856f93343e5ffe5f8 -enddc3a2a488bda8c5856f93343e5ffe5f8: - ; return false } func rewriteValueAMD64_OpSub32F(v *Value, config *Config) bool { @@ -14341,7 +12394,7 @@ func rewriteValueAMD64_OpSub32F(v *Value, config *Config) bool { // match: (Sub32F x y) // cond: // result: (SUBSS x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SUBSS) @@ -14349,9 +12402,6 @@ func rewriteValueAMD64_OpSub32F(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end20193c1804b0e707702a884fb8abd60d -end20193c1804b0e707702a884fb8abd60d: - ; return false } func rewriteValueAMD64_OpSub64(v *Value, config *Config) bool { @@ -14360,7 +12410,7 @@ func rewriteValueAMD64_OpSub64(v *Value, config *Config) bool { // match: (Sub64 x y) // cond: // result: (SUBQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SUBQ) @@ -14368,9 +12418,6 @@ func rewriteValueAMD64_OpSub64(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endd88d5646309fd9174584888ecc8aca2c -endd88d5646309fd9174584888ecc8aca2c: - ; return false } func rewriteValueAMD64_OpSub64F(v *Value, config *Config) bool { @@ -14379,7 +12426,7 @@ func rewriteValueAMD64_OpSub64F(v *Value, config *Config) bool { // match: (Sub64F x y) // cond: // result: (SUBSD x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SUBSD) @@ -14387,9 +12434,6 @@ func rewriteValueAMD64_OpSub64F(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end5d5af7b8a3326bf9151f00a0013b73d7 -end5d5af7b8a3326bf9151f00a0013b73d7: - ; return false } func rewriteValueAMD64_OpSub8(v *Value, config *Config) bool { @@ -14398,7 +12442,7 @@ func rewriteValueAMD64_OpSub8(v *Value, config *Config) bool { // match: (Sub8 x y) // cond: // result: (SUBB x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SUBB) @@ -14406,9 +12450,6 @@ func rewriteValueAMD64_OpSub8(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end7d33bf9bdfa505f96b930563eca7955f -end7d33bf9bdfa505f96b930563eca7955f: - ; return false } func rewriteValueAMD64_OpSubPtr(v *Value, config *Config) bool { @@ -14417,7 +12458,7 @@ func rewriteValueAMD64_OpSubPtr(v *Value, config *Config) bool { // match: (SubPtr x y) // cond: // result: (SUBQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64SUBQ) @@ -14425,9 +12466,6 @@ func rewriteValueAMD64_OpSubPtr(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end748f63f755afe0b97a8f3cf7e4d9cbfe -end748f63f755afe0b97a8f3cf7e4d9cbfe: - ; return false } func rewriteValueAMD64_OpTrunc16to8(v *Value, config *Config) bool { @@ -14436,16 +12474,13 @@ func rewriteValueAMD64_OpTrunc16to8(v *Value, config *Config) bool { // match: (Trunc16to8 x) // cond: // result: x - { + for { x := v.Args[0] v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end8e2f5e0a6e3a06423c077747de6c2bdd -end8e2f5e0a6e3a06423c077747de6c2bdd: - ; return false } func rewriteValueAMD64_OpTrunc32to16(v *Value, config *Config) bool { @@ -14454,16 +12489,13 @@ func rewriteValueAMD64_OpTrunc32to16(v *Value, config *Config) bool { // match: (Trunc32to16 x) // cond: // result: x - { + for { x := v.Args[0] v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end5bed0e3a3c1c6374d86beb5a4397708c -end5bed0e3a3c1c6374d86beb5a4397708c: - ; return false } func rewriteValueAMD64_OpTrunc32to8(v *Value, config *Config) bool { @@ -14472,16 +12504,13 @@ func rewriteValueAMD64_OpTrunc32to8(v *Value, config *Config) bool { // match: (Trunc32to8 x) // cond: // result: x - { + for { x := v.Args[0] v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endef0b8032ce91979ce6cd0004260c04ee -endef0b8032ce91979ce6cd0004260c04ee: - ; return false } func rewriteValueAMD64_OpTrunc64to16(v *Value, config *Config) bool { @@ -14490,16 +12519,13 @@ func rewriteValueAMD64_OpTrunc64to16(v *Value, config *Config) bool { // match: (Trunc64to16 x) // cond: // result: x - { + for { x := v.Args[0] v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endd32fd6e0ce970c212835e6f71c3dcbfd -endd32fd6e0ce970c212835e6f71c3dcbfd: - ; return false } func rewriteValueAMD64_OpTrunc64to32(v *Value, config *Config) bool { @@ -14508,16 +12534,13 @@ func rewriteValueAMD64_OpTrunc64to32(v *Value, config *Config) bool { // match: (Trunc64to32 x) // cond: // result: x - { + for { x := v.Args[0] v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end1212c4e84153210aff7fd630fb3e1883 -end1212c4e84153210aff7fd630fb3e1883: - ; return false } func rewriteValueAMD64_OpTrunc64to8(v *Value, config *Config) bool { @@ -14526,16 +12549,13 @@ func rewriteValueAMD64_OpTrunc64to8(v *Value, config *Config) bool { // match: (Trunc64to8 x) // cond: // result: x - { + for { x := v.Args[0] v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end734f017d4b2810ca2288f7037365824c -end734f017d4b2810ca2288f7037365824c: - ; return false } func rewriteValueAMD64_OpAMD64XORB(v *Value, config *Config) bool { @@ -14544,10 +12564,10 @@ func rewriteValueAMD64_OpAMD64XORB(v *Value, config *Config) bool { // match: (XORB x (MOVBconst [c])) // cond: // result: (XORBconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVBconst { - goto enda9ed9fdd115ffdffa8127c007c34d7b7 + break } c := v.Args[1].AuxInt v.reset(OpAMD64XORBconst) @@ -14555,15 +12575,12 @@ func rewriteValueAMD64_OpAMD64XORB(v *Value, config *Config) bool { v.AddArg(x) return true } - goto enda9ed9fdd115ffdffa8127c007c34d7b7 -enda9ed9fdd115ffdffa8127c007c34d7b7: - ; // match: (XORB (MOVBconst [c]) x) // cond: // result: (XORBconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVBconst { - goto endb02a07d9dc7b802c59f013116e952f3f + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -14572,24 +12589,18 @@ enda9ed9fdd115ffdffa8127c007c34d7b7: v.AddArg(x) return true } - goto endb02a07d9dc7b802c59f013116e952f3f -endb02a07d9dc7b802c59f013116e952f3f: - ; // match: (XORB x x) // cond: // result: (MOVBconst [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end2afddc39503d04d572a3a07878f6c9c9 + break } v.reset(OpAMD64MOVBconst) v.AuxInt = 0 return true } - goto end2afddc39503d04d572a3a07878f6c9c9 -end2afddc39503d04d572a3a07878f6c9c9: - ; return false } func rewriteValueAMD64_OpAMD64XORBconst(v *Value, config *Config) bool { @@ -14598,36 +12609,30 @@ func rewriteValueAMD64_OpAMD64XORBconst(v *Value, config *Config) bool { // match: (XORBconst [c] x) // cond: int8(c)==0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int8(c) == 0) { - goto end14b03b70e5579dfe3f9b243e02a887c3 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end14b03b70e5579dfe3f9b243e02a887c3 -end14b03b70e5579dfe3f9b243e02a887c3: - ; // match: (XORBconst [c] (MOVBconst [d])) // cond: // result: (MOVBconst [c^d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVBconst { - goto end6d8d1b612af9d253605c8bc69b822903 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVBconst) v.AuxInt = c ^ d return true } - goto end6d8d1b612af9d253605c8bc69b822903 -end6d8d1b612af9d253605c8bc69b822903: - ; return false } func rewriteValueAMD64_OpAMD64XORL(v *Value, config *Config) bool { @@ -14636,10 +12641,10 @@ func rewriteValueAMD64_OpAMD64XORL(v *Value, config *Config) bool { // match: (XORL x (MOVLconst [c])) // cond: // result: (XORLconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVLconst { - goto enda9459d509d3416da67d13a22dd074a9c + break } c := v.Args[1].AuxInt v.reset(OpAMD64XORLconst) @@ -14647,15 +12652,12 @@ func rewriteValueAMD64_OpAMD64XORL(v *Value, config *Config) bool { v.AddArg(x) return true } - goto enda9459d509d3416da67d13a22dd074a9c -enda9459d509d3416da67d13a22dd074a9c: - ; // match: (XORL (MOVLconst [c]) x) // cond: // result: (XORLconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVLconst { - goto end9c1a0af00eeadd8aa325e55f1f3fb89c + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -14664,24 +12666,18 @@ enda9459d509d3416da67d13a22dd074a9c: v.AddArg(x) return true } - goto end9c1a0af00eeadd8aa325e55f1f3fb89c -end9c1a0af00eeadd8aa325e55f1f3fb89c: - ; // match: (XORL x x) // cond: // result: (MOVLconst [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end7bcf9cfeb69a0d7647389124eb53ce2a + break } v.reset(OpAMD64MOVLconst) v.AuxInt = 0 return true } - goto end7bcf9cfeb69a0d7647389124eb53ce2a -end7bcf9cfeb69a0d7647389124eb53ce2a: - ; return false } func rewriteValueAMD64_OpAMD64XORLconst(v *Value, config *Config) bool { @@ -14690,36 +12686,30 @@ func rewriteValueAMD64_OpAMD64XORLconst(v *Value, config *Config) bool { // match: (XORLconst [c] x) // cond: int32(c)==0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int32(c) == 0) { - goto end99808ca9fb8e3220e42f5678e1042a08 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end99808ca9fb8e3220e42f5678e1042a08 -end99808ca9fb8e3220e42f5678e1042a08: - ; // match: (XORLconst [c] (MOVLconst [d])) // cond: // result: (MOVLconst [c^d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVLconst { - goto end71238075b10b68a226903cc453c4715c + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVLconst) v.AuxInt = c ^ d return true } - goto end71238075b10b68a226903cc453c4715c -end71238075b10b68a226903cc453c4715c: - ; return false } func rewriteValueAMD64_OpAMD64XORQ(v *Value, config *Config) bool { @@ -14728,58 +12718,49 @@ func rewriteValueAMD64_OpAMD64XORQ(v *Value, config *Config) bool { // match: (XORQ x (MOVQconst [c])) // cond: is32Bit(c) // result: (XORQconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVQconst { - goto end452341f950062e0483f16438fb9ec500 + break } c := v.Args[1].AuxInt if !(is32Bit(c)) { - goto end452341f950062e0483f16438fb9ec500 + break } v.reset(OpAMD64XORQconst) v.AuxInt = c v.AddArg(x) return true } - goto end452341f950062e0483f16438fb9ec500 -end452341f950062e0483f16438fb9ec500: - ; // match: (XORQ (MOVQconst [c]) x) // cond: is32Bit(c) // result: (XORQconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVQconst { - goto endd221a7e3daaaaa29ee385ad36e061b57 + break } c := v.Args[0].AuxInt x := v.Args[1] if !(is32Bit(c)) { - goto endd221a7e3daaaaa29ee385ad36e061b57 + break } v.reset(OpAMD64XORQconst) v.AuxInt = c v.AddArg(x) return true } - goto endd221a7e3daaaaa29ee385ad36e061b57 -endd221a7e3daaaaa29ee385ad36e061b57: - ; // match: (XORQ x x) // cond: // result: (MOVQconst [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end10575a5d711cf14e6d4dffbb0e8dfaeb + break } v.reset(OpAMD64MOVQconst) v.AuxInt = 0 return true } - goto end10575a5d711cf14e6d4dffbb0e8dfaeb -end10575a5d711cf14e6d4dffbb0e8dfaeb: - ; return false } func rewriteValueAMD64_OpAMD64XORQconst(v *Value, config *Config) bool { @@ -14788,9 +12769,9 @@ func rewriteValueAMD64_OpAMD64XORQconst(v *Value, config *Config) bool { // match: (XORQconst [0] x) // cond: // result: x - { + for { if v.AuxInt != 0 { - goto end0ee8d195a97eff476cf1f69a4dc0ec75 + break } x := v.Args[0] v.reset(OpCopy) @@ -14798,25 +12779,19 @@ func rewriteValueAMD64_OpAMD64XORQconst(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end0ee8d195a97eff476cf1f69a4dc0ec75 -end0ee8d195a97eff476cf1f69a4dc0ec75: - ; // match: (XORQconst [c] (MOVQconst [d])) // cond: // result: (MOVQconst [c^d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVQconst { - goto end3f404d4f07362319fbad2e1ba0827a9f + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVQconst) v.AuxInt = c ^ d return true } - goto end3f404d4f07362319fbad2e1ba0827a9f -end3f404d4f07362319fbad2e1ba0827a9f: - ; return false } func rewriteValueAMD64_OpAMD64XORW(v *Value, config *Config) bool { @@ -14825,10 +12800,10 @@ func rewriteValueAMD64_OpAMD64XORW(v *Value, config *Config) bool { // match: (XORW x (MOVWconst [c])) // cond: // result: (XORWconst [c] x) - { + for { x := v.Args[0] if v.Args[1].Op != OpAMD64MOVWconst { - goto end2ca109efd66c221a5691a4da95ec6c67 + break } c := v.Args[1].AuxInt v.reset(OpAMD64XORWconst) @@ -14836,15 +12811,12 @@ func rewriteValueAMD64_OpAMD64XORW(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end2ca109efd66c221a5691a4da95ec6c67 -end2ca109efd66c221a5691a4da95ec6c67: - ; // match: (XORW (MOVWconst [c]) x) // cond: // result: (XORWconst [c] x) - { + for { if v.Args[0].Op != OpAMD64MOVWconst { - goto end51ee62a06d4301e5a4aed7a6639b1d53 + break } c := v.Args[0].AuxInt x := v.Args[1] @@ -14853,24 +12825,18 @@ end2ca109efd66c221a5691a4da95ec6c67: v.AddArg(x) return true } - goto end51ee62a06d4301e5a4aed7a6639b1d53 -end51ee62a06d4301e5a4aed7a6639b1d53: - ; // match: (XORW x x) // cond: // result: (MOVWconst [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end07f332e857be0c2707797ed480a2faf4 + break } v.reset(OpAMD64MOVWconst) v.AuxInt = 0 return true } - goto end07f332e857be0c2707797ed480a2faf4 -end07f332e857be0c2707797ed480a2faf4: - ; return false } func rewriteValueAMD64_OpAMD64XORWconst(v *Value, config *Config) bool { @@ -14879,36 +12845,30 @@ func rewriteValueAMD64_OpAMD64XORWconst(v *Value, config *Config) bool { // match: (XORWconst [c] x) // cond: int16(c)==0 // result: x - { + for { c := v.AuxInt x := v.Args[0] if !(int16(c) == 0) { - goto enda371132353dee83828836da851240f0a + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto enda371132353dee83828836da851240f0a -enda371132353dee83828836da851240f0a: - ; // match: (XORWconst [c] (MOVWconst [d])) // cond: // result: (MOVWconst [c^d]) - { + for { c := v.AuxInt if v.Args[0].Op != OpAMD64MOVWconst { - goto ende24881ccdfa8486c4593fd9aa5df1ed6 + break } d := v.Args[0].AuxInt v.reset(OpAMD64MOVWconst) v.AuxInt = c ^ d return true } - goto ende24881ccdfa8486c4593fd9aa5df1ed6 -ende24881ccdfa8486c4593fd9aa5df1ed6: - ; return false } func rewriteValueAMD64_OpXor16(v *Value, config *Config) bool { @@ -14917,7 +12877,7 @@ func rewriteValueAMD64_OpXor16(v *Value, config *Config) bool { // match: (Xor16 x y) // cond: // result: (XORW x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64XORW) @@ -14925,9 +12885,6 @@ func rewriteValueAMD64_OpXor16(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end20efdd5dfd5130abf818de5546a991a0 -end20efdd5dfd5130abf818de5546a991a0: - ; return false } func rewriteValueAMD64_OpXor32(v *Value, config *Config) bool { @@ -14936,7 +12893,7 @@ func rewriteValueAMD64_OpXor32(v *Value, config *Config) bool { // match: (Xor32 x y) // cond: // result: (XORL x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64XORL) @@ -14944,9 +12901,6 @@ func rewriteValueAMD64_OpXor32(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end9da6bce98b437e2609488346116a75d8 -end9da6bce98b437e2609488346116a75d8: - ; return false } func rewriteValueAMD64_OpXor64(v *Value, config *Config) bool { @@ -14955,7 +12909,7 @@ func rewriteValueAMD64_OpXor64(v *Value, config *Config) bool { // match: (Xor64 x y) // cond: // result: (XORQ x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64XORQ) @@ -14963,9 +12917,6 @@ func rewriteValueAMD64_OpXor64(v *Value, config *Config) bool { v.AddArg(y) return true } - goto endc88cd189c2a6f07ecff324ed94809f8f -endc88cd189c2a6f07ecff324ed94809f8f: - ; return false } func rewriteValueAMD64_OpXor8(v *Value, config *Config) bool { @@ -14974,7 +12925,7 @@ func rewriteValueAMD64_OpXor8(v *Value, config *Config) bool { // match: (Xor8 x y) // cond: // result: (XORB x y) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpAMD64XORB) @@ -14982,9 +12933,6 @@ func rewriteValueAMD64_OpXor8(v *Value, config *Config) bool { v.AddArg(y) return true } - goto end50f4434ef96916d3e65ad3cc236d1723 -end50f4434ef96916d3e65ad3cc236d1723: - ; return false } func rewriteValueAMD64_OpZero(v *Value, config *Config) bool { @@ -14993,9 +12941,9 @@ func rewriteValueAMD64_OpZero(v *Value, config *Config) bool { // match: (Zero [0] _ mem) // cond: // result: mem - { + for { if v.AuxInt != 0 { - goto endc9a38a60f0322f93682daa824611272c + break } mem := v.Args[1] v.reset(OpCopy) @@ -15003,15 +12951,12 @@ func rewriteValueAMD64_OpZero(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endc9a38a60f0322f93682daa824611272c -endc9a38a60f0322f93682daa824611272c: - ; // match: (Zero [1] destptr mem) // cond: // result: (MOVBstoreconst [0] destptr mem) - { + for { if v.AuxInt != 1 { - goto ende0161981658beee468c9e2368fe31eb8 + break } destptr := v.Args[0] mem := v.Args[1] @@ -15021,15 +12966,12 @@ endc9a38a60f0322f93682daa824611272c: v.AddArg(mem) return true } - goto ende0161981658beee468c9e2368fe31eb8 -ende0161981658beee468c9e2368fe31eb8: - ; // match: (Zero [2] destptr mem) // cond: // result: (MOVWstoreconst [0] destptr mem) - { + for { if v.AuxInt != 2 { - goto end4e4aaf641bf2818bb71f1397e4685bdd + break } destptr := v.Args[0] mem := v.Args[1] @@ -15039,15 +12981,12 @@ ende0161981658beee468c9e2368fe31eb8: v.AddArg(mem) return true } - goto end4e4aaf641bf2818bb71f1397e4685bdd -end4e4aaf641bf2818bb71f1397e4685bdd: - ; // match: (Zero [4] destptr mem) // cond: // result: (MOVLstoreconst [0] destptr mem) - { + for { if v.AuxInt != 4 { - goto end7612f59dd66ebfc632ea5bc85f5437b5 + break } destptr := v.Args[0] mem := v.Args[1] @@ -15057,15 +12996,12 @@ end4e4aaf641bf2818bb71f1397e4685bdd: v.AddArg(mem) return true } - goto end7612f59dd66ebfc632ea5bc85f5437b5 -end7612f59dd66ebfc632ea5bc85f5437b5: - ; // match: (Zero [8] destptr mem) // cond: // result: (MOVQstoreconst [0] destptr mem) - { + for { if v.AuxInt != 8 { - goto end07aaaebfa15a48c52cd79b68e28d266f + break } destptr := v.Args[0] mem := v.Args[1] @@ -15075,15 +13011,12 @@ end7612f59dd66ebfc632ea5bc85f5437b5: v.AddArg(mem) return true } - goto end07aaaebfa15a48c52cd79b68e28d266f -end07aaaebfa15a48c52cd79b68e28d266f: - ; // match: (Zero [3] destptr mem) // cond: // result: (MOVBstoreconst [makeValAndOff(0,2)] destptr (MOVWstoreconst [0] destptr mem)) - { + for { if v.AuxInt != 3 { - goto end3bf4a24a87e0727b9bcfbb5fcd24aabe + break } destptr := v.Args[0] mem := v.Args[1] @@ -15097,15 +13030,12 @@ end07aaaebfa15a48c52cd79b68e28d266f: v.AddArg(v0) return true } - goto end3bf4a24a87e0727b9bcfbb5fcd24aabe -end3bf4a24a87e0727b9bcfbb5fcd24aabe: - ; // match: (Zero [5] destptr mem) // cond: // result: (MOVBstoreconst [makeValAndOff(0,4)] destptr (MOVLstoreconst [0] destptr mem)) - { + for { if v.AuxInt != 5 { - goto end567e4a90c6867faf1dfc2cd57daf2ce4 + break } destptr := v.Args[0] mem := v.Args[1] @@ -15119,15 +13049,12 @@ end3bf4a24a87e0727b9bcfbb5fcd24aabe: v.AddArg(v0) return true } - goto end567e4a90c6867faf1dfc2cd57daf2ce4 -end567e4a90c6867faf1dfc2cd57daf2ce4: - ; // match: (Zero [6] destptr mem) // cond: // result: (MOVWstoreconst [makeValAndOff(0,4)] destptr (MOVLstoreconst [0] destptr mem)) - { + for { if v.AuxInt != 6 { - goto end7cddcaf215fcc2cbca9aa958147b2380 + break } destptr := v.Args[0] mem := v.Args[1] @@ -15141,15 +13068,12 @@ end567e4a90c6867faf1dfc2cd57daf2ce4: v.AddArg(v0) return true } - goto end7cddcaf215fcc2cbca9aa958147b2380 -end7cddcaf215fcc2cbca9aa958147b2380: - ; // match: (Zero [7] destptr mem) // cond: // result: (MOVLstoreconst [makeValAndOff(0,3)] destptr (MOVLstoreconst [0] destptr mem)) - { + for { if v.AuxInt != 7 { - goto end1b58cabccbc912ea4e1cf99be8a9fbf7 + break } destptr := v.Args[0] mem := v.Args[1] @@ -15163,18 +13087,15 @@ end7cddcaf215fcc2cbca9aa958147b2380: v.AddArg(v0) return true } - goto end1b58cabccbc912ea4e1cf99be8a9fbf7 -end1b58cabccbc912ea4e1cf99be8a9fbf7: - ; // match: (Zero [size] destptr mem) // cond: size%8 != 0 && size > 8 // result: (Zero [size-size%8] (ADDQconst destptr [size%8]) (MOVQstoreconst [0] destptr mem)) - { + for { size := v.AuxInt destptr := v.Args[0] mem := v.Args[1] if !(size%8 != 0 && size > 8) { - goto endc8760f86b83b1372fce0042ab5200fc1 + break } v.reset(OpZero) v.AuxInt = size - size%8 @@ -15189,15 +13110,12 @@ end1b58cabccbc912ea4e1cf99be8a9fbf7: v.AddArg(v1) return true } - goto endc8760f86b83b1372fce0042ab5200fc1 -endc8760f86b83b1372fce0042ab5200fc1: - ; // match: (Zero [16] destptr mem) // cond: // result: (MOVQstoreconst [makeValAndOff(0,8)] destptr (MOVQstoreconst [0] destptr mem)) - { + for { if v.AuxInt != 16 { - goto endf1447d60cbf8025adaf1a02a2cd219c4 + break } destptr := v.Args[0] mem := v.Args[1] @@ -15211,15 +13129,12 @@ endc8760f86b83b1372fce0042ab5200fc1: v.AddArg(v0) return true } - goto endf1447d60cbf8025adaf1a02a2cd219c4 -endf1447d60cbf8025adaf1a02a2cd219c4: - ; // match: (Zero [24] destptr mem) // cond: // result: (MOVQstoreconst [makeValAndOff(0,16)] destptr (MOVQstoreconst [makeValAndOff(0,8)] destptr (MOVQstoreconst [0] destptr mem))) - { + for { if v.AuxInt != 24 { - goto end57f2984a61c64f71a528e7fa75576095 + break } destptr := v.Args[0] mem := v.Args[1] @@ -15237,15 +13152,12 @@ endf1447d60cbf8025adaf1a02a2cd219c4: v.AddArg(v0) return true } - goto end57f2984a61c64f71a528e7fa75576095 -end57f2984a61c64f71a528e7fa75576095: - ; // match: (Zero [32] destptr mem) // cond: // result: (MOVQstoreconst [makeValAndOff(0,24)] destptr (MOVQstoreconst [makeValAndOff(0,16)] destptr (MOVQstoreconst [makeValAndOff(0,8)] destptr (MOVQstoreconst [0] destptr mem)))) - { + for { if v.AuxInt != 32 { - goto end418a59f9f84dd389d37ae5c24aba2760 + break } destptr := v.Args[0] mem := v.Args[1] @@ -15267,18 +13179,15 @@ end57f2984a61c64f71a528e7fa75576095: v.AddArg(v0) return true } - goto end418a59f9f84dd389d37ae5c24aba2760 -end418a59f9f84dd389d37ae5c24aba2760: - ; // match: (Zero [size] destptr mem) // cond: size <= 1024 && size%8 == 0 && size%16 != 0 // result: (Zero [size-8] (ADDQconst [8] destptr) (MOVQstore destptr (MOVQconst [0]) mem)) - { + for { size := v.AuxInt destptr := v.Args[0] mem := v.Args[1] if !(size <= 1024 && size%8 == 0 && size%16 != 0) { - goto end240266449c3e493db1c3b38a78682ff0 + break } v.reset(OpZero) v.AuxInt = size - 8 @@ -15295,18 +13204,15 @@ end418a59f9f84dd389d37ae5c24aba2760: v.AddArg(v1) return true } - goto end240266449c3e493db1c3b38a78682ff0 -end240266449c3e493db1c3b38a78682ff0: - ; // match: (Zero [size] destptr mem) // cond: size <= 1024 && size%16 == 0 // result: (DUFFZERO [duffStart(size)] (ADDQconst [duffAdj(size)] destptr) (MOVOconst [0]) mem) - { + for { size := v.AuxInt destptr := v.Args[0] mem := v.Args[1] if !(size <= 1024 && size%16 == 0) { - goto endf508bb887eee9119069b22c23dbca138 + break } v.reset(OpAMD64DUFFZERO) v.AuxInt = duffStart(size) @@ -15320,18 +13226,15 @@ end240266449c3e493db1c3b38a78682ff0: v.AddArg(mem) return true } - goto endf508bb887eee9119069b22c23dbca138 -endf508bb887eee9119069b22c23dbca138: - ; // match: (Zero [size] destptr mem) // cond: size > 1024 && size%8 == 0 // result: (REPSTOSQ destptr (MOVQconst [size/8]) (MOVQconst [0]) mem) - { + for { size := v.AuxInt destptr := v.Args[0] mem := v.Args[1] if !(size > 1024 && size%8 == 0) { - goto endb9d55d4ba0e70ed918e3ac757727441b + break } v.reset(OpAMD64REPSTOSQ) v.AddArg(destptr) @@ -15344,9 +13247,6 @@ endf508bb887eee9119069b22c23dbca138: v.AddArg(mem) return true } - goto endb9d55d4ba0e70ed918e3ac757727441b -endb9d55d4ba0e70ed918e3ac757727441b: - ; return false } func rewriteValueAMD64_OpZeroExt16to32(v *Value, config *Config) bool { @@ -15355,15 +13255,12 @@ func rewriteValueAMD64_OpZeroExt16to32(v *Value, config *Config) bool { // match: (ZeroExt16to32 x) // cond: // result: (MOVWQZX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVWQZX) v.AddArg(x) return true } - goto endbfff79412a2cc96095069c66812844b4 -endbfff79412a2cc96095069c66812844b4: - ; return false } func rewriteValueAMD64_OpZeroExt16to64(v *Value, config *Config) bool { @@ -15372,15 +13269,12 @@ func rewriteValueAMD64_OpZeroExt16to64(v *Value, config *Config) bool { // match: (ZeroExt16to64 x) // cond: // result: (MOVWQZX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVWQZX) v.AddArg(x) return true } - goto end7a40262c5c856101058d2bd518ed0910 -end7a40262c5c856101058d2bd518ed0910: - ; return false } func rewriteValueAMD64_OpZeroExt32to64(v *Value, config *Config) bool { @@ -15389,15 +13283,12 @@ func rewriteValueAMD64_OpZeroExt32to64(v *Value, config *Config) bool { // match: (ZeroExt32to64 x) // cond: // result: (MOVLQZX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVLQZX) v.AddArg(x) return true } - goto enddf83bdc8cc6c5673a9ef7aca7affe45a -enddf83bdc8cc6c5673a9ef7aca7affe45a: - ; return false } func rewriteValueAMD64_OpZeroExt8to16(v *Value, config *Config) bool { @@ -15406,15 +13297,12 @@ func rewriteValueAMD64_OpZeroExt8to16(v *Value, config *Config) bool { // match: (ZeroExt8to16 x) // cond: // result: (MOVBQZX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVBQZX) v.AddArg(x) return true } - goto endd03d53d2a585727e4107ae1a3cc55479 -endd03d53d2a585727e4107ae1a3cc55479: - ; return false } func rewriteValueAMD64_OpZeroExt8to32(v *Value, config *Config) bool { @@ -15423,15 +13311,12 @@ func rewriteValueAMD64_OpZeroExt8to32(v *Value, config *Config) bool { // match: (ZeroExt8to32 x) // cond: // result: (MOVBQZX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVBQZX) v.AddArg(x) return true } - goto endcbd33e965b3dab14fced5ae93d8949de -endcbd33e965b3dab14fced5ae93d8949de: - ; return false } func rewriteValueAMD64_OpZeroExt8to64(v *Value, config *Config) bool { @@ -15440,15 +13325,12 @@ func rewriteValueAMD64_OpZeroExt8to64(v *Value, config *Config) bool { // match: (ZeroExt8to64 x) // cond: // result: (MOVBQZX x) - { + for { x := v.Args[0] v.reset(OpAMD64MOVBQZX) v.AddArg(x) return true } - goto end63ae7cc15db9d15189b2f1342604b2cb -end63ae7cc15db9d15189b2f1342604b2cb: - ; return false } func rewriteBlockAMD64(b *Block) bool { @@ -15457,10 +13339,10 @@ func rewriteBlockAMD64(b *Block) bool { // match: (EQ (InvertFlags cmp) yes no) // cond: // result: (EQ cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto end6b8e9afc73b1c4d528f31a60d2575fae + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15471,16 +13353,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end6b8e9afc73b1c4d528f31a60d2575fae - end6b8e9afc73b1c4d528f31a60d2575fae: - ; // match: (EQ (FlagEQ) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto end9ff0ac95bed10cc8e2b88351720bf254 + break } yes := b.Succs[0] no := b.Succs[1] @@ -15490,16 +13369,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end9ff0ac95bed10cc8e2b88351720bf254 - end9ff0ac95bed10cc8e2b88351720bf254: - ; // match: (EQ (FlagLT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto endb087fca771315fb0f3e36b4f3daa1b4f + break } yes := b.Succs[0] no := b.Succs[1] @@ -15510,16 +13386,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto endb087fca771315fb0f3e36b4f3daa1b4f - endb087fca771315fb0f3e36b4f3daa1b4f: - ; // match: (EQ (FlagLT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto endd1884731c9bd3c1cc1b27617e4573add + break } yes := b.Succs[0] no := b.Succs[1] @@ -15530,16 +13403,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto endd1884731c9bd3c1cc1b27617e4573add - endd1884731c9bd3c1cc1b27617e4573add: - ; // match: (EQ (FlagGT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto end13acc127fef124a130ad1e79fd6a58c9 + break } yes := b.Succs[0] no := b.Succs[1] @@ -15550,16 +13420,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end13acc127fef124a130ad1e79fd6a58c9 - end13acc127fef124a130ad1e79fd6a58c9: - ; // match: (EQ (FlagGT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto end4bdb3694a7ed9860cc65f54840b11e84 + break } yes := b.Succs[0] no := b.Succs[1] @@ -15570,17 +13437,14 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end4bdb3694a7ed9860cc65f54840b11e84 - end4bdb3694a7ed9860cc65f54840b11e84: - ; case BlockAMD64GE: // match: (GE (InvertFlags cmp) yes no) // cond: // result: (LE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto end0610f000a6988ee8310307ec2ea138f8 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15591,16 +13455,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end0610f000a6988ee8310307ec2ea138f8 - end0610f000a6988ee8310307ec2ea138f8: - ; // match: (GE (FlagEQ) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto end24ae40580bbb8675d15f6d1451beeb56 + break } yes := b.Succs[0] no := b.Succs[1] @@ -15610,16 +13471,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end24ae40580bbb8675d15f6d1451beeb56 - end24ae40580bbb8675d15f6d1451beeb56: - ; // match: (GE (FlagLT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto end40cf2bb5d1a99146cc6ce5e9a9dc7eee + break } yes := b.Succs[0] no := b.Succs[1] @@ -15630,16 +13488,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end40cf2bb5d1a99146cc6ce5e9a9dc7eee - end40cf2bb5d1a99146cc6ce5e9a9dc7eee: - ; // match: (GE (FlagLT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto end2d4809306e6243116f4c1b27c7c9e503 + break } yes := b.Succs[0] no := b.Succs[1] @@ -15650,16 +13505,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end2d4809306e6243116f4c1b27c7c9e503 - end2d4809306e6243116f4c1b27c7c9e503: - ; // match: (GE (FlagGT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto end842c411ddb1c5583e1e986f2826bb3cf + break } yes := b.Succs[0] no := b.Succs[1] @@ -15669,16 +13521,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end842c411ddb1c5583e1e986f2826bb3cf - end842c411ddb1c5583e1e986f2826bb3cf: - ; // match: (GE (FlagGT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto end7402ddc29ccc96070353e9a04e126444 + break } yes := b.Succs[0] no := b.Succs[1] @@ -15688,17 +13537,14 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end7402ddc29ccc96070353e9a04e126444 - end7402ddc29ccc96070353e9a04e126444: - ; case BlockAMD64GT: // match: (GT (InvertFlags cmp) yes no) // cond: // result: (LT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto endf60c0660b6a8aa9565c97fc87f04eb34 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15709,16 +13555,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endf60c0660b6a8aa9565c97fc87f04eb34 - endf60c0660b6a8aa9565c97fc87f04eb34: - ; // match: (GT (FlagEQ) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto end2ba8650a12af813cee310b2a81b9ba1b + break } yes := b.Succs[0] no := b.Succs[1] @@ -15729,16 +13572,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end2ba8650a12af813cee310b2a81b9ba1b - end2ba8650a12af813cee310b2a81b9ba1b: - ; // match: (GT (FlagLT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto endbe873b5adbcdd272c99e04e063f9b7ce + break } yes := b.Succs[0] no := b.Succs[1] @@ -15749,16 +13589,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto endbe873b5adbcdd272c99e04e063f9b7ce - endbe873b5adbcdd272c99e04e063f9b7ce: - ; // match: (GT (FlagLT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto ende5dd5906f7fdb5c0e59eeed92a3684d3 + break } yes := b.Succs[0] no := b.Succs[1] @@ -15769,16 +13606,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto ende5dd5906f7fdb5c0e59eeed92a3684d3 - ende5dd5906f7fdb5c0e59eeed92a3684d3: - ; // match: (GT (FlagGT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto end7d92e57429ee02c3707f39d861c94f4c + break } yes := b.Succs[0] no := b.Succs[1] @@ -15788,16 +13622,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end7d92e57429ee02c3707f39d861c94f4c - end7d92e57429ee02c3707f39d861c94f4c: - ; // match: (GT (FlagGT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto end9d77d9a15c1b0938558a4ce821d50aa1 + break } yes := b.Succs[0] no := b.Succs[1] @@ -15807,17 +13638,14 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end9d77d9a15c1b0938558a4ce821d50aa1 - end9d77d9a15c1b0938558a4ce821d50aa1: - ; case BlockIf: // match: (If (SETL cmp) yes no) // cond: // result: (LT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETL { - goto end94277282f4b83f0c035b23711a075801 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15828,16 +13656,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end94277282f4b83f0c035b23711a075801 - end94277282f4b83f0c035b23711a075801: - ; // match: (If (SETLE cmp) yes no) // cond: // result: (LE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETLE { - goto enda84798dd797927b54a9a2987421b2ba2 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15848,16 +13673,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto enda84798dd797927b54a9a2987421b2ba2 - enda84798dd797927b54a9a2987421b2ba2: - ; // match: (If (SETG cmp) yes no) // cond: // result: (GT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETG { - goto end3434ef985979cbf394455ab5b559567c + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15868,16 +13690,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end3434ef985979cbf394455ab5b559567c - end3434ef985979cbf394455ab5b559567c: - ; // match: (If (SETGE cmp) yes no) // cond: // result: (GE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETGE { - goto endee147d81d8620a5e23cb92bd9f13cf8d + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15888,16 +13707,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endee147d81d8620a5e23cb92bd9f13cf8d - endee147d81d8620a5e23cb92bd9f13cf8d: - ; // match: (If (SETEQ cmp) yes no) // cond: // result: (EQ cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETEQ { - goto ende7d85ccc850fc3963c50a91df096de17 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15908,16 +13724,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto ende7d85ccc850fc3963c50a91df096de17 - ende7d85ccc850fc3963c50a91df096de17: - ; // match: (If (SETNE cmp) yes no) // cond: // result: (NE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETNE { - goto endba4b54260ecda1b5731b129c0eb493d0 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15928,16 +13741,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endba4b54260ecda1b5731b129c0eb493d0 - endba4b54260ecda1b5731b129c0eb493d0: - ; // match: (If (SETB cmp) yes no) // cond: // result: (ULT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETB { - goto endf84eedfcd3f18f5c9c3f3d1045a24330 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15948,16 +13758,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endf84eedfcd3f18f5c9c3f3d1045a24330 - endf84eedfcd3f18f5c9c3f3d1045a24330: - ; // match: (If (SETBE cmp) yes no) // cond: // result: (ULE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETBE { - goto endfe0178f6f4406945ca8966817d04be60 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15968,16 +13775,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endfe0178f6f4406945ca8966817d04be60 - endfe0178f6f4406945ca8966817d04be60: - ; // match: (If (SETA cmp) yes no) // cond: // result: (UGT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETA { - goto end2b5a2d7756bdba01a732bf54d9acdb73 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -15988,16 +13792,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end2b5a2d7756bdba01a732bf54d9acdb73 - end2b5a2d7756bdba01a732bf54d9acdb73: - ; // match: (If (SETAE cmp) yes no) // cond: // result: (UGE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETAE { - goto end9bea9963c3c5dfb97249a5feb8287f94 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16008,16 +13809,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end9bea9963c3c5dfb97249a5feb8287f94 - end9bea9963c3c5dfb97249a5feb8287f94: - ; // match: (If (SETGF cmp) yes no) // cond: // result: (UGT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETGF { - goto enda72d68674cfa26b5982a43756bca6767 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16028,16 +13826,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto enda72d68674cfa26b5982a43756bca6767 - enda72d68674cfa26b5982a43756bca6767: - ; // match: (If (SETGEF cmp) yes no) // cond: // result: (UGE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETGEF { - goto endccc171c1d66dd60ac0275d1f78259315 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16048,16 +13843,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endccc171c1d66dd60ac0275d1f78259315 - endccc171c1d66dd60ac0275d1f78259315: - ; // match: (If (SETEQF cmp) yes no) // cond: // result: (EQF cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETEQF { - goto end58cb74d05266a79003ebdd733afb66fa + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16068,16 +13860,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end58cb74d05266a79003ebdd733afb66fa - end58cb74d05266a79003ebdd733afb66fa: - ; // match: (If (SETNEF cmp) yes no) // cond: // result: (NEF cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64SETNEF { - goto endaa989df10b5bbc5fdf8f7f0b81767e86 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16088,13 +13877,10 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endaa989df10b5bbc5fdf8f7f0b81767e86 - endaa989df10b5bbc5fdf8f7f0b81767e86: - ; // match: (If cond yes no) // cond: // result: (NE (TESTB cond cond) yes no) - { + for { v := b.Control cond := v yes := b.Succs[0] @@ -16108,17 +13894,14 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end5bdbb8d5ea62ff2a76dccf3f9e89d94d - end5bdbb8d5ea62ff2a76dccf3f9e89d94d: - ; case BlockAMD64LE: // match: (LE (InvertFlags cmp) yes no) // cond: // result: (GE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto end0d49d7d087fe7578e8015cf13dae37e3 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16129,16 +13912,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end0d49d7d087fe7578e8015cf13dae37e3 - end0d49d7d087fe7578e8015cf13dae37e3: - ; // match: (LE (FlagEQ) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto end794469f5273ff9b2867ec900775c72d2 + break } yes := b.Succs[0] no := b.Succs[1] @@ -16148,16 +13928,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end794469f5273ff9b2867ec900775c72d2 - end794469f5273ff9b2867ec900775c72d2: - ; // match: (LE (FlagLT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto end0b9fee7a7eb47fe268039bc0e529d6ac + break } yes := b.Succs[0] no := b.Succs[1] @@ -16167,16 +13944,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end0b9fee7a7eb47fe268039bc0e529d6ac - end0b9fee7a7eb47fe268039bc0e529d6ac: - ; // match: (LE (FlagLT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto end519d8c93a652b9062fba49942dc7d28d + break } yes := b.Succs[0] no := b.Succs[1] @@ -16186,16 +13960,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end519d8c93a652b9062fba49942dc7d28d - end519d8c93a652b9062fba49942dc7d28d: - ; // match: (LE (FlagGT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto endbd11ec75f000579a43fd6507282b307d + break } yes := b.Succs[0] no := b.Succs[1] @@ -16206,16 +13977,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto endbd11ec75f000579a43fd6507282b307d - endbd11ec75f000579a43fd6507282b307d: - ; // match: (LE (FlagGT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto end3828ab56cc3c548c96ac30592e5f865a + break } yes := b.Succs[0] no := b.Succs[1] @@ -16226,17 +13994,14 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end3828ab56cc3c548c96ac30592e5f865a - end3828ab56cc3c548c96ac30592e5f865a: - ; case BlockAMD64LT: // match: (LT (InvertFlags cmp) yes no) // cond: // result: (GT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto end6a408cde0fee0ae7b7da0443c8d902bf + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16247,16 +14012,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end6a408cde0fee0ae7b7da0443c8d902bf - end6a408cde0fee0ae7b7da0443c8d902bf: - ; // match: (LT (FlagEQ) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto enda9dfcd37198ce9684d4bb3a2e54feea9 + break } yes := b.Succs[0] no := b.Succs[1] @@ -16267,16 +14029,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto enda9dfcd37198ce9684d4bb3a2e54feea9 - enda9dfcd37198ce9684d4bb3a2e54feea9: - ; // match: (LT (FlagLT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto ende2b678683d46e68bb0b1503f351917dc + break } yes := b.Succs[0] no := b.Succs[1] @@ -16286,16 +14045,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto ende2b678683d46e68bb0b1503f351917dc - ende2b678683d46e68bb0b1503f351917dc: - ; // match: (LT (FlagLT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto end24e744700aa56591fbd23e1335d6e293 + break } yes := b.Succs[0] no := b.Succs[1] @@ -16305,16 +14061,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end24e744700aa56591fbd23e1335d6e293 - end24e744700aa56591fbd23e1335d6e293: - ; // match: (LT (FlagGT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto enda178f2150e3da5c17e768a4f81af5f9a + break } yes := b.Succs[0] no := b.Succs[1] @@ -16325,16 +14078,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto enda178f2150e3da5c17e768a4f81af5f9a - enda178f2150e3da5c17e768a4f81af5f9a: - ; // match: (LT (FlagGT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto end361a42127127ede8ea30e991bb099ebb + break } yes := b.Succs[0] no := b.Succs[1] @@ -16345,20 +14095,17 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end361a42127127ede8ea30e991bb099ebb - end361a42127127ede8ea30e991bb099ebb: - ; case BlockAMD64NE: // match: (NE (TESTB (SETL cmp)) yes no) // cond: // result: (LT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto end0b9ca165d6b395de676eebef94bc62f7 + break } if v.Args[0].Op != OpAMD64SETL { - goto end0b9ca165d6b395de676eebef94bc62f7 + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16369,19 +14116,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end0b9ca165d6b395de676eebef94bc62f7 - end0b9ca165d6b395de676eebef94bc62f7: - ; // match: (NE (TESTB (SETLE cmp)) yes no) // cond: // result: (LE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto endaaba0ee4d0ff8c66a1c3107d2a14c4bc + break } if v.Args[0].Op != OpAMD64SETLE { - goto endaaba0ee4d0ff8c66a1c3107d2a14c4bc + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16392,19 +14136,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endaaba0ee4d0ff8c66a1c3107d2a14c4bc - endaaba0ee4d0ff8c66a1c3107d2a14c4bc: - ; // match: (NE (TESTB (SETG cmp)) yes no) // cond: // result: (GT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto end1b689463137526b36ba9ceed1e76e512 + break } if v.Args[0].Op != OpAMD64SETG { - goto end1b689463137526b36ba9ceed1e76e512 + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16415,19 +14156,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end1b689463137526b36ba9ceed1e76e512 - end1b689463137526b36ba9ceed1e76e512: - ; // match: (NE (TESTB (SETGE cmp)) yes no) // cond: // result: (GE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto end99eefee595c658b997f41577ed853c2e + break } if v.Args[0].Op != OpAMD64SETGE { - goto end99eefee595c658b997f41577ed853c2e + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16438,19 +14176,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end99eefee595c658b997f41577ed853c2e - end99eefee595c658b997f41577ed853c2e: - ; // match: (NE (TESTB (SETEQ cmp)) yes no) // cond: // result: (EQ cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto end371b67d3d63e9b92d848b09c3324e8b9 + break } if v.Args[0].Op != OpAMD64SETEQ { - goto end371b67d3d63e9b92d848b09c3324e8b9 + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16461,19 +14196,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end371b67d3d63e9b92d848b09c3324e8b9 - end371b67d3d63e9b92d848b09c3324e8b9: - ; // match: (NE (TESTB (SETNE cmp)) yes no) // cond: // result: (NE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto endd245f2aac2191d32e57cd2e321daa453 + break } if v.Args[0].Op != OpAMD64SETNE { - goto endd245f2aac2191d32e57cd2e321daa453 + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16484,19 +14216,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endd245f2aac2191d32e57cd2e321daa453 - endd245f2aac2191d32e57cd2e321daa453: - ; // match: (NE (TESTB (SETB cmp)) yes no) // cond: // result: (ULT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto end90c4bec851e734d37457d611b1a5ff28 + break } if v.Args[0].Op != OpAMD64SETB { - goto end90c4bec851e734d37457d611b1a5ff28 + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16507,19 +14236,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end90c4bec851e734d37457d611b1a5ff28 - end90c4bec851e734d37457d611b1a5ff28: - ; // match: (NE (TESTB (SETBE cmp)) yes no) // cond: // result: (ULE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto end3a68a28114e9b89ee0708823386bc1ee + break } if v.Args[0].Op != OpAMD64SETBE { - goto end3a68a28114e9b89ee0708823386bc1ee + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16530,19 +14256,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end3a68a28114e9b89ee0708823386bc1ee - end3a68a28114e9b89ee0708823386bc1ee: - ; // match: (NE (TESTB (SETA cmp)) yes no) // cond: // result: (UGT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto end16496f57185756e960d536b057c776c0 + break } if v.Args[0].Op != OpAMD64SETA { - goto end16496f57185756e960d536b057c776c0 + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16553,19 +14276,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end16496f57185756e960d536b057c776c0 - end16496f57185756e960d536b057c776c0: - ; // match: (NE (TESTB (SETAE cmp)) yes no) // cond: // result: (UGE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto endbd122fd599aeb9e60881a0fa735e2fde + break } if v.Args[0].Op != OpAMD64SETAE { - goto endbd122fd599aeb9e60881a0fa735e2fde + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16576,19 +14296,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endbd122fd599aeb9e60881a0fa735e2fde - endbd122fd599aeb9e60881a0fa735e2fde: - ; // match: (NE (TESTB (SETGF cmp)) yes no) // cond: // result: (UGT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto endb2499521f7f351e24757f8c918c3598e + break } if v.Args[0].Op != OpAMD64SETGF { - goto endb2499521f7f351e24757f8c918c3598e + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16599,19 +14316,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endb2499521f7f351e24757f8c918c3598e - endb2499521f7f351e24757f8c918c3598e: - ; // match: (NE (TESTB (SETGEF cmp)) yes no) // cond: // result: (UGE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto end20461774babea665c4ca7c4f790a7209 + break } if v.Args[0].Op != OpAMD64SETGEF { - goto end20461774babea665c4ca7c4f790a7209 + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16622,19 +14336,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end20461774babea665c4ca7c4f790a7209 - end20461774babea665c4ca7c4f790a7209: - ; // match: (NE (TESTB (SETEQF cmp)) yes no) // cond: // result: (EQF cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto end236616ef13d489b78736cda7bcc1d168 + break } if v.Args[0].Op != OpAMD64SETEQF { - goto end236616ef13d489b78736cda7bcc1d168 + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16645,19 +14356,16 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end236616ef13d489b78736cda7bcc1d168 - end236616ef13d489b78736cda7bcc1d168: - ; // match: (NE (TESTB (SETNEF cmp)) yes no) // cond: // result: (NEF cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64TESTB { - goto endc992f3c266b16cb5f6aa98faa8f55600 + break } if v.Args[0].Op != OpAMD64SETNEF { - goto endc992f3c266b16cb5f6aa98faa8f55600 + break } cmp := v.Args[0].Args[0] yes := b.Succs[0] @@ -16668,16 +14376,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endc992f3c266b16cb5f6aa98faa8f55600 - endc992f3c266b16cb5f6aa98faa8f55600: - ; // match: (NE (InvertFlags cmp) yes no) // cond: // result: (NE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto end713001aba794e50b582fbff930e110af + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16688,16 +14393,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end713001aba794e50b582fbff930e110af - end713001aba794e50b582fbff930e110af: - ; // match: (NE (FlagEQ) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto end55cc491bc7fc08ef27cadaa80d197545 + break } yes := b.Succs[0] no := b.Succs[1] @@ -16708,16 +14410,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end55cc491bc7fc08ef27cadaa80d197545 - end55cc491bc7fc08ef27cadaa80d197545: - ; // match: (NE (FlagLT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto end3293c7b37d9fcc6bd5add16c94108a4b + break } yes := b.Succs[0] no := b.Succs[1] @@ -16727,16 +14426,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end3293c7b37d9fcc6bd5add16c94108a4b - end3293c7b37d9fcc6bd5add16c94108a4b: - ; // match: (NE (FlagLT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto end1a49ef88420e9d7fd745f9675ca01d6e + break } yes := b.Succs[0] no := b.Succs[1] @@ -16746,16 +14442,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end1a49ef88420e9d7fd745f9675ca01d6e - end1a49ef88420e9d7fd745f9675ca01d6e: - ; // match: (NE (FlagGT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto endbd468825bdf21bca47f8d83d580794ec + break } yes := b.Succs[0] no := b.Succs[1] @@ -16765,16 +14458,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endbd468825bdf21bca47f8d83d580794ec - endbd468825bdf21bca47f8d83d580794ec: - ; // match: (NE (FlagGT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto end43cf7171afb4610818c4b63cc14c1f30 + break } yes := b.Succs[0] no := b.Succs[1] @@ -16784,17 +14474,14 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end43cf7171afb4610818c4b63cc14c1f30 - end43cf7171afb4610818c4b63cc14c1f30: - ; case BlockAMD64UGE: // match: (UGE (InvertFlags cmp) yes no) // cond: // result: (ULE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto ende3e4ddc183ca1a46598b11c2d0d13966 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16805,16 +14492,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto ende3e4ddc183ca1a46598b11c2d0d13966 - ende3e4ddc183ca1a46598b11c2d0d13966: - ; // match: (UGE (FlagEQ) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto end13b873811b0cfc7b08501fa2b96cbaa5 + break } yes := b.Succs[0] no := b.Succs[1] @@ -16824,16 +14508,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end13b873811b0cfc7b08501fa2b96cbaa5 - end13b873811b0cfc7b08501fa2b96cbaa5: - ; // match: (UGE (FlagLT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto end399c10dc3dcdb5864558ecbac4566b7d + break } yes := b.Succs[0] no := b.Succs[1] @@ -16844,16 +14525,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end399c10dc3dcdb5864558ecbac4566b7d - end399c10dc3dcdb5864558ecbac4566b7d: - ; // match: (UGE (FlagLT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto end3013dbd3841b20b5030bafb98ee5e38f + break } yes := b.Succs[0] no := b.Succs[1] @@ -16863,16 +14541,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end3013dbd3841b20b5030bafb98ee5e38f - end3013dbd3841b20b5030bafb98ee5e38f: - ; // match: (UGE (FlagGT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto end9727eb4bb399457be62dc382bb9a0913 + break } yes := b.Succs[0] no := b.Succs[1] @@ -16883,16 +14558,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end9727eb4bb399457be62dc382bb9a0913 - end9727eb4bb399457be62dc382bb9a0913: - ; // match: (UGE (FlagGT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto ende4099f954bd6511668fda560c56e89b1 + break } yes := b.Succs[0] no := b.Succs[1] @@ -16902,17 +14574,14 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto ende4099f954bd6511668fda560c56e89b1 - ende4099f954bd6511668fda560c56e89b1: - ; case BlockAMD64UGT: // match: (UGT (InvertFlags cmp) yes no) // cond: // result: (ULT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto end49818853af2e5251175d06c62768cae7 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -16923,16 +14592,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end49818853af2e5251175d06c62768cae7 - end49818853af2e5251175d06c62768cae7: - ; // match: (UGT (FlagEQ) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto end97e91c3348cb91e9278902aaa7fb050a + break } yes := b.Succs[0] no := b.Succs[1] @@ -16943,16 +14609,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end97e91c3348cb91e9278902aaa7fb050a - end97e91c3348cb91e9278902aaa7fb050a: - ; // match: (UGT (FlagLT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto ende2c57da783c6ad18203c9c418ab0de6a + break } yes := b.Succs[0] no := b.Succs[1] @@ -16963,16 +14626,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto ende2c57da783c6ad18203c9c418ab0de6a - ende2c57da783c6ad18203c9c418ab0de6a: - ; // match: (UGT (FlagLT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto end65100b76cf3975a42b235b0e10fea2b1 + break } yes := b.Succs[0] no := b.Succs[1] @@ -16982,16 +14642,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end65100b76cf3975a42b235b0e10fea2b1 - end65100b76cf3975a42b235b0e10fea2b1: - ; // match: (UGT (FlagGT_ULT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto end5db8fa9a32980847176e980aa1899bb3 + break } yes := b.Succs[0] no := b.Succs[1] @@ -17002,16 +14659,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end5db8fa9a32980847176e980aa1899bb3 - end5db8fa9a32980847176e980aa1899bb3: - ; // match: (UGT (FlagGT_UGT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto end1095a388cf1534294952f4ef4ce3e940 + break } yes := b.Succs[0] no := b.Succs[1] @@ -17021,17 +14675,14 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end1095a388cf1534294952f4ef4ce3e940 - end1095a388cf1534294952f4ef4ce3e940: - ; case BlockAMD64ULE: // match: (ULE (InvertFlags cmp) yes no) // cond: // result: (UGE cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto endd6698aac0d67261293b558c95ea17b4f + break } cmp := v.Args[0] yes := b.Succs[0] @@ -17042,16 +14693,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endd6698aac0d67261293b558c95ea17b4f - endd6698aac0d67261293b558c95ea17b4f: - ; // match: (ULE (FlagEQ) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto end2d801e9ad76753e9ff3e19ee7c9f8a86 + break } yes := b.Succs[0] no := b.Succs[1] @@ -17061,16 +14709,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end2d801e9ad76753e9ff3e19ee7c9f8a86 - end2d801e9ad76753e9ff3e19ee7c9f8a86: - ; // match: (ULE (FlagLT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto end93b751a70b8587ce2c2dc0545a77246c + break } yes := b.Succs[0] no := b.Succs[1] @@ -17080,16 +14725,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end93b751a70b8587ce2c2dc0545a77246c - end93b751a70b8587ce2c2dc0545a77246c: - ; // match: (ULE (FlagLT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto enda318623645491582b19f9de9b3da20e9 + break } yes := b.Succs[0] no := b.Succs[1] @@ -17100,16 +14742,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto enda318623645491582b19f9de9b3da20e9 - enda318623645491582b19f9de9b3da20e9: - ; // match: (ULE (FlagGT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto end1dfb9e417c0a518e1fa9c92edd57723e + break } yes := b.Succs[0] no := b.Succs[1] @@ -17119,16 +14758,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end1dfb9e417c0a518e1fa9c92edd57723e - end1dfb9e417c0a518e1fa9c92edd57723e: - ; // match: (ULE (FlagGT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto end7c9881aac5c0b34d8df3572c8f7b50f3 + break } yes := b.Succs[0] no := b.Succs[1] @@ -17139,17 +14775,14 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end7c9881aac5c0b34d8df3572c8f7b50f3 - end7c9881aac5c0b34d8df3572c8f7b50f3: - ; case BlockAMD64ULT: // match: (ULT (InvertFlags cmp) yes no) // cond: // result: (UGT cmp yes no) - { + for { v := b.Control if v.Op != OpAMD64InvertFlags { - goto end35105dbc9646f02577167e45ae2f2fd2 + break } cmp := v.Args[0] yes := b.Succs[0] @@ -17160,16 +14793,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end35105dbc9646f02577167e45ae2f2fd2 - end35105dbc9646f02577167e45ae2f2fd2: - ; // match: (ULT (FlagEQ) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagEQ { - goto end4f7ea32f328981623154b68f21c9585f + break } yes := b.Succs[0] no := b.Succs[1] @@ -17180,16 +14810,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end4f7ea32f328981623154b68f21c9585f - end4f7ea32f328981623154b68f21c9585f: - ; // match: (ULT (FlagLT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_ULT { - goto endf8739cbf4e7cdcb02b891bbfc103654a + break } yes := b.Succs[0] no := b.Succs[1] @@ -17199,16 +14826,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto endf8739cbf4e7cdcb02b891bbfc103654a - endf8739cbf4e7cdcb02b891bbfc103654a: - ; // match: (ULT (FlagLT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagLT_UGT { - goto enddb12a8de4bdb237aa8a1b6186a0f5f01 + break } yes := b.Succs[0] no := b.Succs[1] @@ -17219,16 +14843,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto enddb12a8de4bdb237aa8a1b6186a0f5f01 - enddb12a8de4bdb237aa8a1b6186a0f5f01: - ; // match: (ULT (FlagGT_ULT) yes no) // cond: // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_ULT { - goto end5ceb130f54533e645b6be48ac28dd7a1 + break } yes := b.Succs[0] no := b.Succs[1] @@ -17238,16 +14859,13 @@ func rewriteBlockAMD64(b *Block) bool { b.Succs[1] = no return true } - goto end5ceb130f54533e645b6be48ac28dd7a1 - end5ceb130f54533e645b6be48ac28dd7a1: - ; // match: (ULT (FlagGT_UGT) yes no) // cond: // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpAMD64FlagGT_UGT { - goto end17191a994592b633cbf6f935efbeaf72 + break } yes := b.Succs[0] no := b.Succs[1] @@ -17258,8 +14876,6 @@ func rewriteBlockAMD64(b *Block) bool { b.Likely *= -1 return true } - goto end17191a994592b633cbf6f935efbeaf72 - end17191a994592b633cbf6f935efbeaf72: } return false } diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go index 505ea77457..0c091c7a32 100644 --- a/src/cmd/compile/internal/ssa/rewritegeneric.go +++ b/src/cmd/compile/internal/ssa/rewritegeneric.go @@ -302,34 +302,31 @@ func rewriteValuegeneric_OpAdd16(v *Value, config *Config) bool { // match: (Add16 (Const16 [c]) (Const16 [d])) // cond: // result: (Const16 [c+d]) - { + for { if v.Args[0].Op != OpConst16 { - goto end359c546ef662b7990116329cb30d6892 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto end359c546ef662b7990116329cb30d6892 + break } d := v.Args[1].AuxInt v.reset(OpConst16) v.AuxInt = c + d return true } - goto end359c546ef662b7990116329cb30d6892 -end359c546ef662b7990116329cb30d6892: - ; // match: (Add16 x (Const16 [c])) // cond: x.Op != OpConst16 // result: (Add16 (Const16 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end89b69a89778f375b0ebbc683b0c63176 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst16) { - goto end89b69a89778f375b0ebbc683b0c63176 + break } v.reset(OpAdd16) v0 := b.NewValue0(v.Line, OpConst16, t) @@ -338,9 +335,6 @@ end359c546ef662b7990116329cb30d6892: v.AddArg(x) return true } - goto end89b69a89778f375b0ebbc683b0c63176 -end89b69a89778f375b0ebbc683b0c63176: - ; return false } func rewriteValuegeneric_OpAdd32(v *Value, config *Config) bool { @@ -349,34 +343,31 @@ func rewriteValuegeneric_OpAdd32(v *Value, config *Config) bool { // match: (Add32 (Const32 [c]) (Const32 [d])) // cond: // result: (Const32 [c+d]) - { + for { if v.Args[0].Op != OpConst32 { - goto enda3edaa9a512bd1d7a95f002c890bfb88 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto enda3edaa9a512bd1d7a95f002c890bfb88 + break } d := v.Args[1].AuxInt v.reset(OpConst32) v.AuxInt = c + d return true } - goto enda3edaa9a512bd1d7a95f002c890bfb88 -enda3edaa9a512bd1d7a95f002c890bfb88: - ; // match: (Add32 x (Const32 [c])) // cond: x.Op != OpConst32 // result: (Add32 (Const32 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end28a8c474bfa6968950dce0ed73b14a0b + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst32) { - goto end28a8c474bfa6968950dce0ed73b14a0b + break } v.reset(OpAdd32) v0 := b.NewValue0(v.Line, OpConst32, t) @@ -385,9 +376,6 @@ enda3edaa9a512bd1d7a95f002c890bfb88: v.AddArg(x) return true } - goto end28a8c474bfa6968950dce0ed73b14a0b -end28a8c474bfa6968950dce0ed73b14a0b: - ; return false } func rewriteValuegeneric_OpAdd64(v *Value, config *Config) bool { @@ -396,34 +384,31 @@ func rewriteValuegeneric_OpAdd64(v *Value, config *Config) bool { // match: (Add64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c+d]) - { + for { if v.Args[0].Op != OpConst64 { - goto end8c46df6f85a11cb1d594076b0e467908 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end8c46df6f85a11cb1d594076b0e467908 + break } d := v.Args[1].AuxInt v.reset(OpConst64) v.AuxInt = c + d return true } - goto end8c46df6f85a11cb1d594076b0e467908 -end8c46df6f85a11cb1d594076b0e467908: - ; // match: (Add64 x (Const64 [c])) // cond: x.Op != OpConst64 // result: (Add64 (Const64 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end39caa6cf1044f5c47ddbeb062d1a13bd + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst64) { - goto end39caa6cf1044f5c47ddbeb062d1a13bd + break } v.reset(OpAdd64) v0 := b.NewValue0(v.Line, OpConst64, t) @@ -432,9 +417,6 @@ end8c46df6f85a11cb1d594076b0e467908: v.AddArg(x) return true } - goto end39caa6cf1044f5c47ddbeb062d1a13bd -end39caa6cf1044f5c47ddbeb062d1a13bd: - ; return false } func rewriteValuegeneric_OpAdd8(v *Value, config *Config) bool { @@ -443,34 +425,31 @@ func rewriteValuegeneric_OpAdd8(v *Value, config *Config) bool { // match: (Add8 (Const8 [c]) (Const8 [d])) // cond: // result: (Const8 [c+d]) - { + for { if v.Args[0].Op != OpConst8 { - goto end60c66721511a442aade8e4da2fb326bd + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto end60c66721511a442aade8e4da2fb326bd + break } d := v.Args[1].AuxInt v.reset(OpConst8) v.AuxInt = c + d return true } - goto end60c66721511a442aade8e4da2fb326bd -end60c66721511a442aade8e4da2fb326bd: - ; // match: (Add8 x (Const8 [c])) // cond: x.Op != OpConst8 // result: (Add8 (Const8 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end8c2901b8d12fa5c37f190783b4db8df5 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst8) { - goto end8c2901b8d12fa5c37f190783b4db8df5 + break } v.reset(OpAdd8) v0 := b.NewValue0(v.Line, OpConst8, t) @@ -479,9 +458,6 @@ end60c66721511a442aade8e4da2fb326bd: v.AddArg(x) return true } - goto end8c2901b8d12fa5c37f190783b4db8df5 -end8c2901b8d12fa5c37f190783b4db8df5: - ; return false } func rewriteValuegeneric_OpAnd16(v *Value, config *Config) bool { @@ -490,19 +466,16 @@ func rewriteValuegeneric_OpAnd16(v *Value, config *Config) bool { // match: (And16 x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto end69ed6ee2a4fb0491b56c17f3c1926b10 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end69ed6ee2a4fb0491b56c17f3c1926b10 -end69ed6ee2a4fb0491b56c17f3c1926b10: - ; return false } func rewriteValuegeneric_OpAnd32(v *Value, config *Config) bool { @@ -511,19 +484,16 @@ func rewriteValuegeneric_OpAnd32(v *Value, config *Config) bool { // match: (And32 x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto endbbe8c3c5b2ca8f013aa178d856f3a99c + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endbbe8c3c5b2ca8f013aa178d856f3a99c -endbbe8c3c5b2ca8f013aa178d856f3a99c: - ; return false } func rewriteValuegeneric_OpAnd64(v *Value, config *Config) bool { @@ -532,19 +502,16 @@ func rewriteValuegeneric_OpAnd64(v *Value, config *Config) bool { // match: (And64 x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto endc9736bf24d2e5cd8d662e1bcf3164640 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endc9736bf24d2e5cd8d662e1bcf3164640 -endc9736bf24d2e5cd8d662e1bcf3164640: - ; return false } func rewriteValuegeneric_OpAnd8(v *Value, config *Config) bool { @@ -553,19 +520,16 @@ func rewriteValuegeneric_OpAnd8(v *Value, config *Config) bool { // match: (And8 x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto endeaf127389bd0d4b0e0e297830f8f463b + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endeaf127389bd0d4b0e0e297830f8f463b -endeaf127389bd0d4b0e0e297830f8f463b: - ; return false } func rewriteValuegeneric_OpArg(v *Value, config *Config) bool { @@ -574,11 +538,11 @@ func rewriteValuegeneric_OpArg(v *Value, config *Config) bool { // match: (Arg {n} [off]) // cond: v.Type.IsString() // result: (StringMake (Arg {n} [off]) (Arg {n} [off+config.PtrSize])) - { + for { n := v.Aux off := v.AuxInt if !(v.Type.IsString()) { - goto end939d3f946bf61eb85b46b374e7afa9e9 + break } v.reset(OpStringMake) v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeBytePtr()) @@ -591,17 +555,14 @@ func rewriteValuegeneric_OpArg(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end939d3f946bf61eb85b46b374e7afa9e9 -end939d3f946bf61eb85b46b374e7afa9e9: - ; // match: (Arg {n} [off]) // cond: v.Type.IsSlice() // result: (SliceMake (Arg {n} [off]) (Arg {n} [off+config.PtrSize]) (Arg {n} [off+2*config.PtrSize])) - { + for { n := v.Aux off := v.AuxInt if !(v.Type.IsSlice()) { - goto endab4b93ad3b1cf55e5bf25d1fd9cd498e + break } v.reset(OpSliceMake) v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeBytePtr()) @@ -618,17 +579,14 @@ end939d3f946bf61eb85b46b374e7afa9e9: v.AddArg(v2) return true } - goto endab4b93ad3b1cf55e5bf25d1fd9cd498e -endab4b93ad3b1cf55e5bf25d1fd9cd498e: - ; // match: (Arg {n} [off]) // cond: v.Type.IsInterface() // result: (IMake (Arg {n} [off]) (Arg {n} [off+config.PtrSize])) - { + for { n := v.Aux off := v.AuxInt if !(v.Type.IsInterface()) { - goto end851de8e588a39e81b4e2aef06566bf3e + break } v.reset(OpIMake) v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeBytePtr()) @@ -641,17 +599,14 @@ endab4b93ad3b1cf55e5bf25d1fd9cd498e: v.AddArg(v1) return true } - goto end851de8e588a39e81b4e2aef06566bf3e -end851de8e588a39e81b4e2aef06566bf3e: - ; // match: (Arg {n} [off]) // cond: v.Type.IsComplex() && v.Type.Size() == 16 // result: (ComplexMake (Arg {n} [off]) (Arg {n} [off+8])) - { + for { n := v.Aux off := v.AuxInt if !(v.Type.IsComplex() && v.Type.Size() == 16) { - goto end0988fc6a62c810b2f4976cb6cf44387f + break } v.reset(OpComplexMake) v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeFloat64()) @@ -664,17 +619,14 @@ end851de8e588a39e81b4e2aef06566bf3e: v.AddArg(v1) return true } - goto end0988fc6a62c810b2f4976cb6cf44387f -end0988fc6a62c810b2f4976cb6cf44387f: - ; // match: (Arg {n} [off]) // cond: v.Type.IsComplex() && v.Type.Size() == 8 // result: (ComplexMake (Arg {n} [off]) (Arg {n} [off+4])) - { + for { n := v.Aux off := v.AuxInt if !(v.Type.IsComplex() && v.Type.Size() == 8) { - goto enda348e93e0036873dd7089a2939c22e3e + break } v.reset(OpComplexMake) v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeFloat32()) @@ -687,32 +639,26 @@ end0988fc6a62c810b2f4976cb6cf44387f: v.AddArg(v1) return true } - goto enda348e93e0036873dd7089a2939c22e3e -enda348e93e0036873dd7089a2939c22e3e: - ; // match: (Arg ) // cond: t.IsStruct() && t.NumFields() == 0 && config.fe.CanSSA(t) // result: (StructMake0) - { + for { t := v.Type if !(t.IsStruct() && t.NumFields() == 0 && config.fe.CanSSA(t)) { - goto ende233eeefa826638b0e541bcca531d701 + break } v.reset(OpStructMake0) return true } - goto ende233eeefa826638b0e541bcca531d701 -ende233eeefa826638b0e541bcca531d701: - ; // match: (Arg {n} [off]) // cond: t.IsStruct() && t.NumFields() == 1 && config.fe.CanSSA(t) // result: (StructMake1 (Arg {n} [off+t.FieldOff(0)])) - { + for { t := v.Type n := v.Aux off := v.AuxInt if !(t.IsStruct() && t.NumFields() == 1 && config.fe.CanSSA(t)) { - goto ende953e77a0617051dd3f7ad4d58c9ab37 + break } v.reset(OpStructMake1) v0 := b.NewValue0(v.Line, OpArg, t.FieldType(0)) @@ -721,18 +667,15 @@ ende233eeefa826638b0e541bcca531d701: v.AddArg(v0) return true } - goto ende953e77a0617051dd3f7ad4d58c9ab37 -ende953e77a0617051dd3f7ad4d58c9ab37: - ; // match: (Arg {n} [off]) // cond: t.IsStruct() && t.NumFields() == 2 && config.fe.CanSSA(t) // result: (StructMake2 (Arg {n} [off+t.FieldOff(0)]) (Arg {n} [off+t.FieldOff(1)])) - { + for { t := v.Type n := v.Aux off := v.AuxInt if !(t.IsStruct() && t.NumFields() == 2 && config.fe.CanSSA(t)) { - goto end9a008048978aabad9de0723212e60631 + break } v.reset(OpStructMake2) v0 := b.NewValue0(v.Line, OpArg, t.FieldType(0)) @@ -745,18 +688,15 @@ ende953e77a0617051dd3f7ad4d58c9ab37: v.AddArg(v1) return true } - goto end9a008048978aabad9de0723212e60631 -end9a008048978aabad9de0723212e60631: - ; // match: (Arg {n} [off]) // cond: t.IsStruct() && t.NumFields() == 3 && config.fe.CanSSA(t) // result: (StructMake3 (Arg {n} [off+t.FieldOff(0)]) (Arg {n} [off+t.FieldOff(1)]) (Arg {n} [off+t.FieldOff(2)])) - { + for { t := v.Type n := v.Aux off := v.AuxInt if !(t.IsStruct() && t.NumFields() == 3 && config.fe.CanSSA(t)) { - goto end0196e61dbeebc6402f3aa1e9a182210b + break } v.reset(OpStructMake3) v0 := b.NewValue0(v.Line, OpArg, t.FieldType(0)) @@ -773,18 +713,15 @@ end9a008048978aabad9de0723212e60631: v.AddArg(v2) return true } - goto end0196e61dbeebc6402f3aa1e9a182210b -end0196e61dbeebc6402f3aa1e9a182210b: - ; // match: (Arg {n} [off]) // cond: t.IsStruct() && t.NumFields() == 4 && config.fe.CanSSA(t) // result: (StructMake4 (Arg {n} [off+t.FieldOff(0)]) (Arg {n} [off+t.FieldOff(1)]) (Arg {n} [off+t.FieldOff(2)]) (Arg {n} [off+t.FieldOff(3)])) - { + for { t := v.Type n := v.Aux off := v.AuxInt if !(t.IsStruct() && t.NumFields() == 4 && config.fe.CanSSA(t)) { - goto end6bc133c93e50cb14c2e6cc9401850738 + break } v.reset(OpStructMake4) v0 := b.NewValue0(v.Line, OpArg, t.FieldType(0)) @@ -805,9 +742,6 @@ end0196e61dbeebc6402f3aa1e9a182210b: v.AddArg(v3) return true } - goto end6bc133c93e50cb14c2e6cc9401850738 -end6bc133c93e50cb14c2e6cc9401850738: - ; return false } func rewriteValuegeneric_OpArrayIndex(v *Value, config *Config) bool { @@ -816,15 +750,15 @@ func rewriteValuegeneric_OpArrayIndex(v *Value, config *Config) bool { // match: (ArrayIndex (Load ptr mem) idx) // cond: b == v.Args[0].Block // result: (Load (PtrIndex ptr idx) mem) - { + for { if v.Args[0].Op != OpLoad { - goto end68b373270d9d605c420497edefaa71df + break } ptr := v.Args[0].Args[0] mem := v.Args[0].Args[1] idx := v.Args[1] if !(b == v.Args[0].Block) { - goto end68b373270d9d605c420497edefaa71df + break } v.reset(OpLoad) v0 := b.NewValue0(v.Line, OpPtrIndex, v.Type.PtrTo()) @@ -834,9 +768,6 @@ func rewriteValuegeneric_OpArrayIndex(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto end68b373270d9d605c420497edefaa71df -end68b373270d9d605c420497edefaa71df: - ; return false } func rewriteValuegeneric_OpCom16(v *Value, config *Config) bool { @@ -845,9 +776,9 @@ func rewriteValuegeneric_OpCom16(v *Value, config *Config) bool { // match: (Com16 (Com16 x)) // cond: // result: x - { + for { if v.Args[0].Op != OpCom16 { - goto end1ea17710dd4dd7ba4e710e0e4c7b5a56 + break } x := v.Args[0].Args[0] v.reset(OpCopy) @@ -855,9 +786,6 @@ func rewriteValuegeneric_OpCom16(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end1ea17710dd4dd7ba4e710e0e4c7b5a56 -end1ea17710dd4dd7ba4e710e0e4c7b5a56: - ; return false } func rewriteValuegeneric_OpCom32(v *Value, config *Config) bool { @@ -866,9 +794,9 @@ func rewriteValuegeneric_OpCom32(v *Value, config *Config) bool { // match: (Com32 (Com32 x)) // cond: // result: x - { + for { if v.Args[0].Op != OpCom32 { - goto end9a04ed536496e292c27bef4414128cbf + break } x := v.Args[0].Args[0] v.reset(OpCopy) @@ -876,9 +804,6 @@ func rewriteValuegeneric_OpCom32(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end9a04ed536496e292c27bef4414128cbf -end9a04ed536496e292c27bef4414128cbf: - ; return false } func rewriteValuegeneric_OpCom64(v *Value, config *Config) bool { @@ -887,9 +812,9 @@ func rewriteValuegeneric_OpCom64(v *Value, config *Config) bool { // match: (Com64 (Com64 x)) // cond: // result: x - { + for { if v.Args[0].Op != OpCom64 { - goto ended44e29d5968f0f7b86972b7bf417ab3 + break } x := v.Args[0].Args[0] v.reset(OpCopy) @@ -897,9 +822,6 @@ func rewriteValuegeneric_OpCom64(v *Value, config *Config) bool { v.AddArg(x) return true } - goto ended44e29d5968f0f7b86972b7bf417ab3 -ended44e29d5968f0f7b86972b7bf417ab3: - ; return false } func rewriteValuegeneric_OpCom8(v *Value, config *Config) bool { @@ -908,9 +830,9 @@ func rewriteValuegeneric_OpCom8(v *Value, config *Config) bool { // match: (Com8 (Com8 x)) // cond: // result: x - { + for { if v.Args[0].Op != OpCom8 { - goto end4d92ff3ba567d9afd38fc9ca113602ad + break } x := v.Args[0].Args[0] v.reset(OpCopy) @@ -918,9 +840,6 @@ func rewriteValuegeneric_OpCom8(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end4d92ff3ba567d9afd38fc9ca113602ad -end4d92ff3ba567d9afd38fc9ca113602ad: - ; return false } func rewriteValuegeneric_OpComplexImag(v *Value, config *Config) bool { @@ -929,9 +848,9 @@ func rewriteValuegeneric_OpComplexImag(v *Value, config *Config) bool { // match: (ComplexImag (ComplexMake _ imag )) // cond: // result: imag - { + for { if v.Args[0].Op != OpComplexMake { - goto endec3009fd8727d03002021997936e091f + break } imag := v.Args[0].Args[1] v.reset(OpCopy) @@ -939,9 +858,6 @@ func rewriteValuegeneric_OpComplexImag(v *Value, config *Config) bool { v.AddArg(imag) return true } - goto endec3009fd8727d03002021997936e091f -endec3009fd8727d03002021997936e091f: - ; return false } func rewriteValuegeneric_OpComplexReal(v *Value, config *Config) bool { @@ -950,9 +866,9 @@ func rewriteValuegeneric_OpComplexReal(v *Value, config *Config) bool { // match: (ComplexReal (ComplexMake real _ )) // cond: // result: real - { + for { if v.Args[0].Op != OpComplexMake { - goto end8db3e16bd59af1adaa4b734c8adcc71d + break } real := v.Args[0].Args[0] v.reset(OpCopy) @@ -960,9 +876,6 @@ func rewriteValuegeneric_OpComplexReal(v *Value, config *Config) bool { v.AddArg(real) return true } - goto end8db3e16bd59af1adaa4b734c8adcc71d -end8db3e16bd59af1adaa4b734c8adcc71d: - ; return false } func rewriteValuegeneric_OpConstInterface(v *Value, config *Config) bool { @@ -971,7 +884,7 @@ func rewriteValuegeneric_OpConstInterface(v *Value, config *Config) bool { // match: (ConstInterface) // cond: // result: (IMake (ConstNil ) (ConstNil )) - { + for { v.reset(OpIMake) v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr()) v.AddArg(v0) @@ -979,9 +892,6 @@ func rewriteValuegeneric_OpConstInterface(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end0367bd8f20a320cc41568f2b28657f6b -end0367bd8f20a320cc41568f2b28657f6b: - ; return false } func rewriteValuegeneric_OpConstSlice(v *Value, config *Config) bool { @@ -990,9 +900,9 @@ func rewriteValuegeneric_OpConstSlice(v *Value, config *Config) bool { // match: (ConstSlice) // cond: config.PtrSize == 4 // result: (SliceMake (ConstNil ) (Const32 [0]) (Const32 [0])) - { + for { if !(config.PtrSize == 4) { - goto end9ba6baf9c7247b1f5ba4099c0c3910ce + break } v.reset(OpSliceMake) v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr()) @@ -1005,15 +915,12 @@ func rewriteValuegeneric_OpConstSlice(v *Value, config *Config) bool { v.AddArg(v2) return true } - goto end9ba6baf9c7247b1f5ba4099c0c3910ce -end9ba6baf9c7247b1f5ba4099c0c3910ce: - ; // match: (ConstSlice) // cond: config.PtrSize == 8 // result: (SliceMake (ConstNil ) (Const64 [0]) (Const64 [0])) - { + for { if !(config.PtrSize == 8) { - goto endabee2aa6bd3e3261628f677221ad2640 + break } v.reset(OpSliceMake) v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr()) @@ -1026,9 +933,6 @@ end9ba6baf9c7247b1f5ba4099c0c3910ce: v.AddArg(v2) return true } - goto endabee2aa6bd3e3261628f677221ad2640 -endabee2aa6bd3e3261628f677221ad2640: - ; return false } func rewriteValuegeneric_OpConstString(v *Value, config *Config) bool { @@ -1037,10 +941,10 @@ func rewriteValuegeneric_OpConstString(v *Value, config *Config) bool { // match: (ConstString {s}) // cond: config.PtrSize == 4 && s.(string) == "" // result: (StringMake (ConstNil) (Const32 [0])) - { + for { s := v.Aux if !(config.PtrSize == 4 && s.(string) == "") { - goto end85d5f388ba947643af63cdc68c1155a5 + break } v.reset(OpStringMake) v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr()) @@ -1050,16 +954,13 @@ func rewriteValuegeneric_OpConstString(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end85d5f388ba947643af63cdc68c1155a5 -end85d5f388ba947643af63cdc68c1155a5: - ; // match: (ConstString {s}) // cond: config.PtrSize == 8 && s.(string) == "" // result: (StringMake (ConstNil) (Const64 [0])) - { + for { s := v.Aux if !(config.PtrSize == 8 && s.(string) == "") { - goto endc807259a5ed2760fbbd3dc7386641343 + break } v.reset(OpStringMake) v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr()) @@ -1069,16 +970,13 @@ end85d5f388ba947643af63cdc68c1155a5: v.AddArg(v1) return true } - goto endc807259a5ed2760fbbd3dc7386641343 -endc807259a5ed2760fbbd3dc7386641343: - ; // match: (ConstString {s}) // cond: config.PtrSize == 4 && s.(string) != "" // result: (StringMake (Addr {config.fe.StringData(s.(string))} (SB)) (Const32 [int64(len(s.(string)))])) - { + for { s := v.Aux if !(config.PtrSize == 4 && s.(string) != "") { - goto end107a700a4519d18f418602421444ddb6 + break } v.reset(OpStringMake) v0 := b.NewValue0(v.Line, OpAddr, config.fe.TypeBytePtr()) @@ -1091,16 +989,13 @@ endc807259a5ed2760fbbd3dc7386641343: v.AddArg(v2) return true } - goto end107a700a4519d18f418602421444ddb6 -end107a700a4519d18f418602421444ddb6: - ; // match: (ConstString {s}) // cond: config.PtrSize == 8 && s.(string) != "" // result: (StringMake (Addr {config.fe.StringData(s.(string))} (SB)) (Const64 [int64(len(s.(string)))])) - { + for { s := v.Aux if !(config.PtrSize == 8 && s.(string) != "") { - goto end7ce9db29d17866f26d21e6e12f442e54 + break } v.reset(OpStringMake) v0 := b.NewValue0(v.Line, OpAddr, config.fe.TypeBytePtr()) @@ -1113,9 +1008,6 @@ end107a700a4519d18f418602421444ddb6: v.AddArg(v2) return true } - goto end7ce9db29d17866f26d21e6e12f442e54 -end7ce9db29d17866f26d21e6e12f442e54: - ; return false } func rewriteValuegeneric_OpConvert(v *Value, config *Config) bool { @@ -1124,47 +1016,41 @@ func rewriteValuegeneric_OpConvert(v *Value, config *Config) bool { // match: (Convert (Add64 (Convert ptr mem) off) mem) // cond: // result: (Add64 ptr off) - { + for { if v.Args[0].Op != OpAdd64 { - goto endbbc9f1666b4d39a130e1b86f109e7c1b + break } if v.Args[0].Args[0].Op != OpConvert { - goto endbbc9f1666b4d39a130e1b86f109e7c1b + break } ptr := v.Args[0].Args[0].Args[0] mem := v.Args[0].Args[0].Args[1] off := v.Args[0].Args[1] if v.Args[1] != mem { - goto endbbc9f1666b4d39a130e1b86f109e7c1b + break } v.reset(OpAdd64) v.AddArg(ptr) v.AddArg(off) return true } - goto endbbc9f1666b4d39a130e1b86f109e7c1b -endbbc9f1666b4d39a130e1b86f109e7c1b: - ; // match: (Convert (Convert ptr mem) mem) // cond: // result: ptr - { + for { if v.Args[0].Op != OpConvert { - goto end98c5e0ca257eb216989171786f91b42d + break } ptr := v.Args[0].Args[0] mem := v.Args[0].Args[1] if v.Args[1] != mem { - goto end98c5e0ca257eb216989171786f91b42d + break } v.reset(OpCopy) v.Type = ptr.Type v.AddArg(ptr) return true } - goto end98c5e0ca257eb216989171786f91b42d -end98c5e0ca257eb216989171786f91b42d: - ; return false } func rewriteValuegeneric_OpEq16(v *Value, config *Config) bool { @@ -1173,35 +1059,32 @@ func rewriteValuegeneric_OpEq16(v *Value, config *Config) bool { // match: (Eq16 x x) // cond: // result: (ConstBool [1]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end0c0fe5fdfba3821add3448fd3f1fc6b7 + break } v.reset(OpConstBool) v.AuxInt = 1 return true } - goto end0c0fe5fdfba3821add3448fd3f1fc6b7 -end0c0fe5fdfba3821add3448fd3f1fc6b7: - ; // match: (Eq16 (Const16 [c]) (Add16 (Const16 [d]) x)) // cond: // result: (Eq16 (Const16 [c-d]) x) - { + for { if v.Args[0].Op != OpConst16 { - goto end79c830afa265161fc0f0532c4c4e7f50 + break } t := v.Args[0].Type c := v.Args[0].AuxInt if v.Args[1].Op != OpAdd16 { - goto end79c830afa265161fc0f0532c4c4e7f50 + break } if v.Args[1].Args[0].Op != OpConst16 { - goto end79c830afa265161fc0f0532c4c4e7f50 + break } if v.Args[1].Args[0].Type != v.Args[0].Type { - goto end79c830afa265161fc0f0532c4c4e7f50 + break } d := v.Args[1].Args[0].AuxInt x := v.Args[1].Args[1] @@ -1212,21 +1095,18 @@ end0c0fe5fdfba3821add3448fd3f1fc6b7: v.AddArg(x) return true } - goto end79c830afa265161fc0f0532c4c4e7f50 -end79c830afa265161fc0f0532c4c4e7f50: - ; // match: (Eq16 x (Const16 [c])) // cond: x.Op != OpConst16 // result: (Eq16 (Const16 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end5d89fe1eeb145f14e11578f41282c904 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst16) { - goto end5d89fe1eeb145f14e11578f41282c904 + break } v.reset(OpEq16) v0 := b.NewValue0(v.Line, OpConst16, t) @@ -1235,28 +1115,22 @@ end79c830afa265161fc0f0532c4c4e7f50: v.AddArg(x) return true } - goto end5d89fe1eeb145f14e11578f41282c904 -end5d89fe1eeb145f14e11578f41282c904: - ; // match: (Eq16 (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(int16(c) == int16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto end4532e1d01c10d8906fe1da14f9dfaa88 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto end4532e1d01c10d8906fe1da14f9dfaa88 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int16(c) == int16(d)) return true } - goto end4532e1d01c10d8906fe1da14f9dfaa88 -end4532e1d01c10d8906fe1da14f9dfaa88: - ; return false } func rewriteValuegeneric_OpEq32(v *Value, config *Config) bool { @@ -1265,35 +1139,32 @@ func rewriteValuegeneric_OpEq32(v *Value, config *Config) bool { // match: (Eq32 x x) // cond: // result: (ConstBool [1]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end6da547ec4ee93d787434f3bda873e4a0 + break } v.reset(OpConstBool) v.AuxInt = 1 return true } - goto end6da547ec4ee93d787434f3bda873e4a0 -end6da547ec4ee93d787434f3bda873e4a0: - ; // match: (Eq32 (Const32 [c]) (Add32 (Const32 [d]) x)) // cond: // result: (Eq32 (Const32 [c-d]) x) - { + for { if v.Args[0].Op != OpConst32 { - goto end1a69730a32c6e432784dcdf643320ecd + break } t := v.Args[0].Type c := v.Args[0].AuxInt if v.Args[1].Op != OpAdd32 { - goto end1a69730a32c6e432784dcdf643320ecd + break } if v.Args[1].Args[0].Op != OpConst32 { - goto end1a69730a32c6e432784dcdf643320ecd + break } if v.Args[1].Args[0].Type != v.Args[0].Type { - goto end1a69730a32c6e432784dcdf643320ecd + break } d := v.Args[1].Args[0].AuxInt x := v.Args[1].Args[1] @@ -1304,21 +1175,18 @@ end6da547ec4ee93d787434f3bda873e4a0: v.AddArg(x) return true } - goto end1a69730a32c6e432784dcdf643320ecd -end1a69730a32c6e432784dcdf643320ecd: - ; // match: (Eq32 x (Const32 [c])) // cond: x.Op != OpConst32 // result: (Eq32 (Const32 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end0ca4ef4cf416ec3083d38667e263cf45 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst32) { - goto end0ca4ef4cf416ec3083d38667e263cf45 + break } v.reset(OpEq32) v0 := b.NewValue0(v.Line, OpConst32, t) @@ -1327,28 +1195,22 @@ end1a69730a32c6e432784dcdf643320ecd: v.AddArg(x) return true } - goto end0ca4ef4cf416ec3083d38667e263cf45 -end0ca4ef4cf416ec3083d38667e263cf45: - ; // match: (Eq32 (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(int32(c) == int32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end00a2464e02c9ca00e8d0077acacbb5ad + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end00a2464e02c9ca00e8d0077acacbb5ad + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int32(c) == int32(d)) return true } - goto end00a2464e02c9ca00e8d0077acacbb5ad -end00a2464e02c9ca00e8d0077acacbb5ad: - ; return false } func rewriteValuegeneric_OpEq64(v *Value, config *Config) bool { @@ -1357,35 +1219,32 @@ func rewriteValuegeneric_OpEq64(v *Value, config *Config) bool { // match: (Eq64 x x) // cond: // result: (ConstBool [1]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto endb1d471cc503ba8bb05440f01dbf33d81 + break } v.reset(OpConstBool) v.AuxInt = 1 return true } - goto endb1d471cc503ba8bb05440f01dbf33d81 -endb1d471cc503ba8bb05440f01dbf33d81: - ; // match: (Eq64 (Const64 [c]) (Add64 (Const64 [d]) x)) // cond: // result: (Eq64 (Const64 [c-d]) x) - { + for { if v.Args[0].Op != OpConst64 { - goto endffd67f3b83f6972cd459153d318f714d + break } t := v.Args[0].Type c := v.Args[0].AuxInt if v.Args[1].Op != OpAdd64 { - goto endffd67f3b83f6972cd459153d318f714d + break } if v.Args[1].Args[0].Op != OpConst64 { - goto endffd67f3b83f6972cd459153d318f714d + break } if v.Args[1].Args[0].Type != v.Args[0].Type { - goto endffd67f3b83f6972cd459153d318f714d + break } d := v.Args[1].Args[0].AuxInt x := v.Args[1].Args[1] @@ -1396,21 +1255,18 @@ endb1d471cc503ba8bb05440f01dbf33d81: v.AddArg(x) return true } - goto endffd67f3b83f6972cd459153d318f714d -endffd67f3b83f6972cd459153d318f714d: - ; // match: (Eq64 x (Const64 [c])) // cond: x.Op != OpConst64 // result: (Eq64 (Const64 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto endc2ecf8254dc736e97c5815362d0b477d + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst64) { - goto endc2ecf8254dc736e97c5815362d0b477d + break } v.reset(OpEq64) v0 := b.NewValue0(v.Line, OpConst64, t) @@ -1419,28 +1275,22 @@ endffd67f3b83f6972cd459153d318f714d: v.AddArg(x) return true } - goto endc2ecf8254dc736e97c5815362d0b477d -endc2ecf8254dc736e97c5815362d0b477d: - ; // match: (Eq64 (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(int64(c) == int64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto end405568a707dbbc86432e91f4ce7d97d7 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end405568a707dbbc86432e91f4ce7d97d7 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int64(c) == int64(d)) return true } - goto end405568a707dbbc86432e91f4ce7d97d7 -end405568a707dbbc86432e91f4ce7d97d7: - ; return false } func rewriteValuegeneric_OpEq8(v *Value, config *Config) bool { @@ -1449,35 +1299,32 @@ func rewriteValuegeneric_OpEq8(v *Value, config *Config) bool { // match: (Eq8 x x) // cond: // result: (ConstBool [1]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto enda66da0d3e7e51624ee46527727c48a9a + break } v.reset(OpConstBool) v.AuxInt = 1 return true } - goto enda66da0d3e7e51624ee46527727c48a9a -enda66da0d3e7e51624ee46527727c48a9a: - ; // match: (Eq8 (Const8 [c]) (Add8 (Const8 [d]) x)) // cond: // result: (Eq8 (Const8 [c-d]) x) - { + for { if v.Args[0].Op != OpConst8 { - goto end6912961350bb485f56ef176522aa683b + break } t := v.Args[0].Type c := v.Args[0].AuxInt if v.Args[1].Op != OpAdd8 { - goto end6912961350bb485f56ef176522aa683b + break } if v.Args[1].Args[0].Op != OpConst8 { - goto end6912961350bb485f56ef176522aa683b + break } if v.Args[1].Args[0].Type != v.Args[0].Type { - goto end6912961350bb485f56ef176522aa683b + break } d := v.Args[1].Args[0].AuxInt x := v.Args[1].Args[1] @@ -1488,21 +1335,18 @@ enda66da0d3e7e51624ee46527727c48a9a: v.AddArg(x) return true } - goto end6912961350bb485f56ef176522aa683b -end6912961350bb485f56ef176522aa683b: - ; // match: (Eq8 x (Const8 [c])) // cond: x.Op != OpConst8 // result: (Eq8 (Const8 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end70d0b569427b24e7a912a1aa8fab3b20 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst8) { - goto end70d0b569427b24e7a912a1aa8fab3b20 + break } v.reset(OpEq8) v0 := b.NewValue0(v.Line, OpConst8, t) @@ -1511,28 +1355,22 @@ end6912961350bb485f56ef176522aa683b: v.AddArg(x) return true } - goto end70d0b569427b24e7a912a1aa8fab3b20 -end70d0b569427b24e7a912a1aa8fab3b20: - ; // match: (Eq8 (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(int8(c) == int8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto endd49f3700ba2d1e500d3ab4fa34fd090d + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto endd49f3700ba2d1e500d3ab4fa34fd090d + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int8(c) == int8(d)) return true } - goto endd49f3700ba2d1e500d3ab4fa34fd090d -endd49f3700ba2d1e500d3ab4fa34fd090d: - ; return false } func rewriteValuegeneric_OpEqInter(v *Value, config *Config) bool { @@ -1541,7 +1379,7 @@ func rewriteValuegeneric_OpEqInter(v *Value, config *Config) bool { // match: (EqInter x y) // cond: // result: (EqPtr (ITab x) (ITab y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpEqPtr) @@ -1553,9 +1391,6 @@ func rewriteValuegeneric_OpEqInter(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end1cc40483caab33ece971ab7e6c8fdfca -end1cc40483caab33ece971ab7e6c8fdfca: - ; return false } func rewriteValuegeneric_OpEqPtr(v *Value, config *Config) bool { @@ -1564,10 +1399,10 @@ func rewriteValuegeneric_OpEqPtr(v *Value, config *Config) bool { // match: (EqPtr p (ConstNil)) // cond: // result: (Not (IsNonNil p)) - { + for { p := v.Args[0] if v.Args[1].Op != OpConstNil { - goto ende701cdb6a2c1fff4d4b283b7f8f6178b + break } v.reset(OpNot) v0 := b.NewValue0(v.Line, OpIsNonNil, config.fe.TypeBool()) @@ -1575,15 +1410,12 @@ func rewriteValuegeneric_OpEqPtr(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto ende701cdb6a2c1fff4d4b283b7f8f6178b -ende701cdb6a2c1fff4d4b283b7f8f6178b: - ; // match: (EqPtr (ConstNil) p) // cond: // result: (Not (IsNonNil p)) - { + for { if v.Args[0].Op != OpConstNil { - goto end7cdc0d5c38fbffe6287c8928803b038e + break } p := v.Args[1] v.reset(OpNot) @@ -1592,9 +1424,6 @@ ende701cdb6a2c1fff4d4b283b7f8f6178b: v.AddArg(v0) return true } - goto end7cdc0d5c38fbffe6287c8928803b038e -end7cdc0d5c38fbffe6287c8928803b038e: - ; return false } func rewriteValuegeneric_OpEqSlice(v *Value, config *Config) bool { @@ -1603,7 +1432,7 @@ func rewriteValuegeneric_OpEqSlice(v *Value, config *Config) bool { // match: (EqSlice x y) // cond: // result: (EqPtr (SlicePtr x) (SlicePtr y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpEqPtr) @@ -1615,9 +1444,6 @@ func rewriteValuegeneric_OpEqSlice(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end9cd53ca57ee90aa09c54f8071c8e8769 -end9cd53ca57ee90aa09c54f8071c8e8769: - ; return false } func rewriteValuegeneric_OpGeq16(v *Value, config *Config) bool { @@ -1626,22 +1452,19 @@ func rewriteValuegeneric_OpGeq16(v *Value, config *Config) bool { // match: (Geq16 (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(int16(c) >= int16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto endbac100e9f1065e7d2ff863951f686f4b + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto endbac100e9f1065e7d2ff863951f686f4b + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int16(c) >= int16(d)) return true } - goto endbac100e9f1065e7d2ff863951f686f4b -endbac100e9f1065e7d2ff863951f686f4b: - ; return false } func rewriteValuegeneric_OpGeq16U(v *Value, config *Config) bool { @@ -1650,22 +1473,19 @@ func rewriteValuegeneric_OpGeq16U(v *Value, config *Config) bool { // match: (Geq16U (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(uint16(c) >= uint16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto end11c6acbc5827fc9508424b0ffcf98b34 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto end11c6acbc5827fc9508424b0ffcf98b34 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint16(c) >= uint16(d)) return true } - goto end11c6acbc5827fc9508424b0ffcf98b34 -end11c6acbc5827fc9508424b0ffcf98b34: - ; return false } func rewriteValuegeneric_OpGeq32(v *Value, config *Config) bool { @@ -1674,22 +1494,19 @@ func rewriteValuegeneric_OpGeq32(v *Value, config *Config) bool { // match: (Geq32 (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(int32(c) >= int32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end89ced97524ac75045911ca7cf6d44b28 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end89ced97524ac75045911ca7cf6d44b28 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int32(c) >= int32(d)) return true } - goto end89ced97524ac75045911ca7cf6d44b28 -end89ced97524ac75045911ca7cf6d44b28: - ; return false } func rewriteValuegeneric_OpGeq32U(v *Value, config *Config) bool { @@ -1698,22 +1515,19 @@ func rewriteValuegeneric_OpGeq32U(v *Value, config *Config) bool { // match: (Geq32U (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(uint32(c) >= uint32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end92fbe85c7bbbf0db287932822bdde991 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end92fbe85c7bbbf0db287932822bdde991 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint32(c) >= uint32(d)) return true } - goto end92fbe85c7bbbf0db287932822bdde991 -end92fbe85c7bbbf0db287932822bdde991: - ; return false } func rewriteValuegeneric_OpGeq64(v *Value, config *Config) bool { @@ -1722,22 +1536,19 @@ func rewriteValuegeneric_OpGeq64(v *Value, config *Config) bool { // match: (Geq64 (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(int64(c) >= int64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto end08a5a4bff12a346befe05ad561b080ac + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end08a5a4bff12a346befe05ad561b080ac + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int64(c) >= int64(d)) return true } - goto end08a5a4bff12a346befe05ad561b080ac -end08a5a4bff12a346befe05ad561b080ac: - ; return false } func rewriteValuegeneric_OpGeq64U(v *Value, config *Config) bool { @@ -1746,22 +1557,19 @@ func rewriteValuegeneric_OpGeq64U(v *Value, config *Config) bool { // match: (Geq64U (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(uint64(c) >= uint64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto endd72c497b6cc2b01d43a39ec12d5010b3 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto endd72c497b6cc2b01d43a39ec12d5010b3 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint64(c) >= uint64(d)) return true } - goto endd72c497b6cc2b01d43a39ec12d5010b3 -endd72c497b6cc2b01d43a39ec12d5010b3: - ; return false } func rewriteValuegeneric_OpGeq8(v *Value, config *Config) bool { @@ -1770,22 +1578,19 @@ func rewriteValuegeneric_OpGeq8(v *Value, config *Config) bool { // match: (Geq8 (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(int8(c) >= int8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto endea141068e84038c63cbdd87a8cb227d7 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto endea141068e84038c63cbdd87a8cb227d7 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int8(c) >= int8(d)) return true } - goto endea141068e84038c63cbdd87a8cb227d7 -endea141068e84038c63cbdd87a8cb227d7: - ; return false } func rewriteValuegeneric_OpGeq8U(v *Value, config *Config) bool { @@ -1794,22 +1599,19 @@ func rewriteValuegeneric_OpGeq8U(v *Value, config *Config) bool { // match: (Geq8U (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(uint8(c) >= uint8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto end47c128ccdc54151a243c5856b0c52ef1 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto end47c128ccdc54151a243c5856b0c52ef1 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint8(c) >= uint8(d)) return true } - goto end47c128ccdc54151a243c5856b0c52ef1 -end47c128ccdc54151a243c5856b0c52ef1: - ; return false } func rewriteValuegeneric_OpGreater16(v *Value, config *Config) bool { @@ -1818,22 +1620,19 @@ func rewriteValuegeneric_OpGreater16(v *Value, config *Config) bool { // match: (Greater16 (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(int16(c) > int16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto end390bae49463ace4d703dd24e18920f66 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto end390bae49463ace4d703dd24e18920f66 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int16(c) > int16(d)) return true } - goto end390bae49463ace4d703dd24e18920f66 -end390bae49463ace4d703dd24e18920f66: - ; return false } func rewriteValuegeneric_OpGreater16U(v *Value, config *Config) bool { @@ -1842,22 +1641,19 @@ func rewriteValuegeneric_OpGreater16U(v *Value, config *Config) bool { // match: (Greater16U (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(uint16(c) > uint16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto end89ba3caf5c156fa6d908ac04c058187b + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto end89ba3caf5c156fa6d908ac04c058187b + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint16(c) > uint16(d)) return true } - goto end89ba3caf5c156fa6d908ac04c058187b -end89ba3caf5c156fa6d908ac04c058187b: - ; return false } func rewriteValuegeneric_OpGreater32(v *Value, config *Config) bool { @@ -1866,22 +1662,19 @@ func rewriteValuegeneric_OpGreater32(v *Value, config *Config) bool { // match: (Greater32 (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(int32(c) > int32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end86482a9dc6439e8470da5352dd74d68d + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end86482a9dc6439e8470da5352dd74d68d + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int32(c) > int32(d)) return true } - goto end86482a9dc6439e8470da5352dd74d68d -end86482a9dc6439e8470da5352dd74d68d: - ; return false } func rewriteValuegeneric_OpGreater32U(v *Value, config *Config) bool { @@ -1890,22 +1683,19 @@ func rewriteValuegeneric_OpGreater32U(v *Value, config *Config) bool { // match: (Greater32U (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(uint32(c) > uint32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end1bf3f05c1e3599a969b8be1f5f6949e4 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end1bf3f05c1e3599a969b8be1f5f6949e4 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint32(c) > uint32(d)) return true } - goto end1bf3f05c1e3599a969b8be1f5f6949e4 -end1bf3f05c1e3599a969b8be1f5f6949e4: - ; return false } func rewriteValuegeneric_OpGreater64(v *Value, config *Config) bool { @@ -1914,22 +1704,19 @@ func rewriteValuegeneric_OpGreater64(v *Value, config *Config) bool { // match: (Greater64 (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(int64(c) > int64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto end96a82e893fda4882f23b6bab5f7fbff7 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end96a82e893fda4882f23b6bab5f7fbff7 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int64(c) > int64(d)) return true } - goto end96a82e893fda4882f23b6bab5f7fbff7 -end96a82e893fda4882f23b6bab5f7fbff7: - ; return false } func rewriteValuegeneric_OpGreater64U(v *Value, config *Config) bool { @@ -1938,22 +1725,19 @@ func rewriteValuegeneric_OpGreater64U(v *Value, config *Config) bool { // match: (Greater64U (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(uint64(c) > uint64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto end2d8f5ad85fbffeb92af985a888f6fa69 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end2d8f5ad85fbffeb92af985a888f6fa69 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint64(c) > uint64(d)) return true } - goto end2d8f5ad85fbffeb92af985a888f6fa69 -end2d8f5ad85fbffeb92af985a888f6fa69: - ; return false } func rewriteValuegeneric_OpGreater8(v *Value, config *Config) bool { @@ -1962,22 +1746,19 @@ func rewriteValuegeneric_OpGreater8(v *Value, config *Config) bool { // match: (Greater8 (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(int8(c) > int8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto ende221967c7516b7749109cf8343fe9c83 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto ende221967c7516b7749109cf8343fe9c83 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int8(c) > int8(d)) return true } - goto ende221967c7516b7749109cf8343fe9c83 -ende221967c7516b7749109cf8343fe9c83: - ; return false } func rewriteValuegeneric_OpGreater8U(v *Value, config *Config) bool { @@ -1986,22 +1767,19 @@ func rewriteValuegeneric_OpGreater8U(v *Value, config *Config) bool { // match: (Greater8U (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(uint8(c) > uint8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto enda9398c8188156dd46689fa2939147525 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto enda9398c8188156dd46689fa2939147525 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint8(c) > uint8(d)) return true } - goto enda9398c8188156dd46689fa2939147525 -enda9398c8188156dd46689fa2939147525: - ; return false } func rewriteValuegeneric_OpIData(v *Value, config *Config) bool { @@ -2010,9 +1788,9 @@ func rewriteValuegeneric_OpIData(v *Value, config *Config) bool { // match: (IData (IMake _ data)) // cond: // result: data - { + for { if v.Args[0].Op != OpIMake { - goto endbfa1bb944cdc07933effb16a35152e12 + break } data := v.Args[0].Args[1] v.reset(OpCopy) @@ -2020,9 +1798,6 @@ func rewriteValuegeneric_OpIData(v *Value, config *Config) bool { v.AddArg(data) return true } - goto endbfa1bb944cdc07933effb16a35152e12 -endbfa1bb944cdc07933effb16a35152e12: - ; return false } func rewriteValuegeneric_OpITab(v *Value, config *Config) bool { @@ -2031,9 +1806,9 @@ func rewriteValuegeneric_OpITab(v *Value, config *Config) bool { // match: (ITab (IMake itab _)) // cond: // result: itab - { + for { if v.Args[0].Op != OpIMake { - goto endfcbb9414a776ff9c8512da3e0f4d8fbd + break } itab := v.Args[0].Args[0] v.reset(OpCopy) @@ -2041,9 +1816,6 @@ func rewriteValuegeneric_OpITab(v *Value, config *Config) bool { v.AddArg(itab) return true } - goto endfcbb9414a776ff9c8512da3e0f4d8fbd -endfcbb9414a776ff9c8512da3e0f4d8fbd: - ; return false } func rewriteValuegeneric_OpIsInBounds(v *Value, config *Config) bool { @@ -2052,41 +1824,35 @@ func rewriteValuegeneric_OpIsInBounds(v *Value, config *Config) bool { // match: (IsInBounds (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(inBounds32(c,d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto endf0a2ecfe84b293de6ff0919e45d19d9d + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto endf0a2ecfe84b293de6ff0919e45d19d9d + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(inBounds32(c, d)) return true } - goto endf0a2ecfe84b293de6ff0919e45d19d9d -endf0a2ecfe84b293de6ff0919e45d19d9d: - ; // match: (IsInBounds (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(inBounds64(c,d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto end4b406f402c135f50f71effcc904ecb2b + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end4b406f402c135f50f71effcc904ecb2b + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(inBounds64(c, d)) return true } - goto end4b406f402c135f50f71effcc904ecb2b -end4b406f402c135f50f71effcc904ecb2b: - ; return false } func rewriteValuegeneric_OpIsSliceInBounds(v *Value, config *Config) bool { @@ -2095,41 +1861,35 @@ func rewriteValuegeneric_OpIsSliceInBounds(v *Value, config *Config) bool { // match: (IsSliceInBounds (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(sliceInBounds32(c,d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end5e84a230c28cac987437cfed8f432cc3 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end5e84a230c28cac987437cfed8f432cc3 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(sliceInBounds32(c, d)) return true } - goto end5e84a230c28cac987437cfed8f432cc3 -end5e84a230c28cac987437cfed8f432cc3: - ; // match: (IsSliceInBounds (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(sliceInBounds64(c,d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto end3880a6fe20ad4152e98f76d84da233a7 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end3880a6fe20ad4152e98f76d84da233a7 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(sliceInBounds64(c, d)) return true } - goto end3880a6fe20ad4152e98f76d84da233a7 -end3880a6fe20ad4152e98f76d84da233a7: - ; return false } func rewriteValuegeneric_OpLeq16(v *Value, config *Config) bool { @@ -2138,22 +1898,19 @@ func rewriteValuegeneric_OpLeq16(v *Value, config *Config) bool { // match: (Leq16 (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(int16(c) <= int16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto end76b1c51f9b7cd7ee2f75b9f7057569de + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto end76b1c51f9b7cd7ee2f75b9f7057569de + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int16(c) <= int16(d)) return true } - goto end76b1c51f9b7cd7ee2f75b9f7057569de -end76b1c51f9b7cd7ee2f75b9f7057569de: - ; return false } func rewriteValuegeneric_OpLeq16U(v *Value, config *Config) bool { @@ -2162,22 +1919,19 @@ func rewriteValuegeneric_OpLeq16U(v *Value, config *Config) bool { // match: (Leq16U (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(uint16(c) <= uint16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto endf010fdf7f2c438ec18c33f493dd062aa + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto endf010fdf7f2c438ec18c33f493dd062aa + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint16(c) <= uint16(d)) return true } - goto endf010fdf7f2c438ec18c33f493dd062aa -endf010fdf7f2c438ec18c33f493dd062aa: - ; return false } func rewriteValuegeneric_OpLeq32(v *Value, config *Config) bool { @@ -2186,22 +1940,19 @@ func rewriteValuegeneric_OpLeq32(v *Value, config *Config) bool { // match: (Leq32 (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(int32(c) <= int32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end6c7d61cfd188680bea8a5e23f08ca1de + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end6c7d61cfd188680bea8a5e23f08ca1de + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int32(c) <= int32(d)) return true } - goto end6c7d61cfd188680bea8a5e23f08ca1de -end6c7d61cfd188680bea8a5e23f08ca1de: - ; return false } func rewriteValuegeneric_OpLeq32U(v *Value, config *Config) bool { @@ -2210,22 +1961,19 @@ func rewriteValuegeneric_OpLeq32U(v *Value, config *Config) bool { // match: (Leq32U (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(uint32(c) <= uint32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end4363555333511ee9b649b36f1a0ba34e + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end4363555333511ee9b649b36f1a0ba34e + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint32(c) <= uint32(d)) return true } - goto end4363555333511ee9b649b36f1a0ba34e -end4363555333511ee9b649b36f1a0ba34e: - ; return false } func rewriteValuegeneric_OpLeq64(v *Value, config *Config) bool { @@ -2234,22 +1982,19 @@ func rewriteValuegeneric_OpLeq64(v *Value, config *Config) bool { // match: (Leq64 (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(int64(c) <= int64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto enddc865cd7ac2093abc7617bedbf371c22 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto enddc865cd7ac2093abc7617bedbf371c22 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int64(c) <= int64(d)) return true } - goto enddc865cd7ac2093abc7617bedbf371c22 -enddc865cd7ac2093abc7617bedbf371c22: - ; return false } func rewriteValuegeneric_OpLeq64U(v *Value, config *Config) bool { @@ -2258,22 +2003,19 @@ func rewriteValuegeneric_OpLeq64U(v *Value, config *Config) bool { // match: (Leq64U (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(uint64(c) <= uint64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto end412eadb168738ba92f3f0705d4495305 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end412eadb168738ba92f3f0705d4495305 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint64(c) <= uint64(d)) return true } - goto end412eadb168738ba92f3f0705d4495305 -end412eadb168738ba92f3f0705d4495305: - ; return false } func rewriteValuegeneric_OpLeq8(v *Value, config *Config) bool { @@ -2282,22 +2024,19 @@ func rewriteValuegeneric_OpLeq8(v *Value, config *Config) bool { // match: (Leq8 (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(int8(c) <= int8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto endb5a459da8e18c40abc0c7a20e71d0187 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto endb5a459da8e18c40abc0c7a20e71d0187 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int8(c) <= int8(d)) return true } - goto endb5a459da8e18c40abc0c7a20e71d0187 -endb5a459da8e18c40abc0c7a20e71d0187: - ; return false } func rewriteValuegeneric_OpLeq8U(v *Value, config *Config) bool { @@ -2306,22 +2045,19 @@ func rewriteValuegeneric_OpLeq8U(v *Value, config *Config) bool { // match: (Leq8U (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(uint8(c) <= uint8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto endd6622d55fcdf3fa7b08e7511cd3b7d85 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto endd6622d55fcdf3fa7b08e7511cd3b7d85 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint8(c) <= uint8(d)) return true } - goto endd6622d55fcdf3fa7b08e7511cd3b7d85 -endd6622d55fcdf3fa7b08e7511cd3b7d85: - ; return false } func rewriteValuegeneric_OpLess16(v *Value, config *Config) bool { @@ -2330,22 +2066,19 @@ func rewriteValuegeneric_OpLess16(v *Value, config *Config) bool { // match: (Less16 (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(int16(c) < int16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto end0dc915d089f05e79589ebb5c498cc360 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto end0dc915d089f05e79589ebb5c498cc360 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int16(c) < int16(d)) return true } - goto end0dc915d089f05e79589ebb5c498cc360 -end0dc915d089f05e79589ebb5c498cc360: - ; return false } func rewriteValuegeneric_OpLess16U(v *Value, config *Config) bool { @@ -2354,22 +2087,19 @@ func rewriteValuegeneric_OpLess16U(v *Value, config *Config) bool { // match: (Less16U (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(uint16(c) < uint16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto endd2bb8249443788690946fc184631a00a + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto endd2bb8249443788690946fc184631a00a + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint16(c) < uint16(d)) return true } - goto endd2bb8249443788690946fc184631a00a -endd2bb8249443788690946fc184631a00a: - ; return false } func rewriteValuegeneric_OpLess32(v *Value, config *Config) bool { @@ -2378,22 +2108,19 @@ func rewriteValuegeneric_OpLess32(v *Value, config *Config) bool { // match: (Less32 (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(int32(c) < int32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto endc86f65e499688809d414f03539bec5bf + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto endc86f65e499688809d414f03539bec5bf + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int32(c) < int32(d)) return true } - goto endc86f65e499688809d414f03539bec5bf -endc86f65e499688809d414f03539bec5bf: - ; return false } func rewriteValuegeneric_OpLess32U(v *Value, config *Config) bool { @@ -2402,22 +2129,19 @@ func rewriteValuegeneric_OpLess32U(v *Value, config *Config) bool { // match: (Less32U (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(uint32(c) < uint32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end2cc68b5247b1afb90a9d3923b28ff247 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end2cc68b5247b1afb90a9d3923b28ff247 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint32(c) < uint32(d)) return true } - goto end2cc68b5247b1afb90a9d3923b28ff247 -end2cc68b5247b1afb90a9d3923b28ff247: - ; return false } func rewriteValuegeneric_OpLess64(v *Value, config *Config) bool { @@ -2426,22 +2150,19 @@ func rewriteValuegeneric_OpLess64(v *Value, config *Config) bool { // match: (Less64 (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(int64(c) < int64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto end505de73cd15125dbb59b05d8975d3128 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end505de73cd15125dbb59b05d8975d3128 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int64(c) < int64(d)) return true } - goto end505de73cd15125dbb59b05d8975d3128 -end505de73cd15125dbb59b05d8975d3128: - ; return false } func rewriteValuegeneric_OpLess64U(v *Value, config *Config) bool { @@ -2450,22 +2171,19 @@ func rewriteValuegeneric_OpLess64U(v *Value, config *Config) bool { // match: (Less64U (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(uint64(c) < uint64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto endeb249ef36416cd1abf4f807026c059cd + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto endeb249ef36416cd1abf4f807026c059cd + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint64(c) < uint64(d)) return true } - goto endeb249ef36416cd1abf4f807026c059cd -endeb249ef36416cd1abf4f807026c059cd: - ; return false } func rewriteValuegeneric_OpLess8(v *Value, config *Config) bool { @@ -2474,22 +2192,19 @@ func rewriteValuegeneric_OpLess8(v *Value, config *Config) bool { // match: (Less8 (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(int8(c) < int8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto endef134de03bc8537ac1f38d5eccff7673 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto endef134de03bc8537ac1f38d5eccff7673 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int8(c) < int8(d)) return true } - goto endef134de03bc8537ac1f38d5eccff7673 -endef134de03bc8537ac1f38d5eccff7673: - ; return false } func rewriteValuegeneric_OpLess8U(v *Value, config *Config) bool { @@ -2498,22 +2213,19 @@ func rewriteValuegeneric_OpLess8U(v *Value, config *Config) bool { // match: (Less8U (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(uint8(c) < uint8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto end263ecdc279924bff8771dd1ac3f42222 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto end263ecdc279924bff8771dd1ac3f42222 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(uint8(c) < uint8(d)) return true } - goto end263ecdc279924bff8771dd1ac3f42222 -end263ecdc279924bff8771dd1ac3f42222: - ; return false } func rewriteValuegeneric_OpLoad(v *Value, config *Config) bool { @@ -2522,26 +2234,23 @@ func rewriteValuegeneric_OpLoad(v *Value, config *Config) bool { // match: (Load _ _) // cond: t.IsStruct() && t.NumFields() == 0 && config.fe.CanSSA(t) // result: (StructMake0) - { + for { t := v.Type if !(t.IsStruct() && t.NumFields() == 0 && config.fe.CanSSA(t)) { - goto end8d25f5c949948132921b6be29ede6bde + break } v.reset(OpStructMake0) return true } - goto end8d25f5c949948132921b6be29ede6bde -end8d25f5c949948132921b6be29ede6bde: - ; // match: (Load ptr mem) // cond: t.IsStruct() && t.NumFields() == 1 && config.fe.CanSSA(t) // result: (StructMake1 (Load ptr mem)) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsStruct() && t.NumFields() == 1 && config.fe.CanSSA(t)) { - goto endfe908e5a8617dd39df2f9b2b92e93ae5 + break } v.reset(OpStructMake1) v0 := b.NewValue0(v.Line, OpLoad, t.FieldType(0)) @@ -2550,18 +2259,15 @@ end8d25f5c949948132921b6be29ede6bde: v.AddArg(v0) return true } - goto endfe908e5a8617dd39df2f9b2b92e93ae5 -endfe908e5a8617dd39df2f9b2b92e93ae5: - ; // match: (Load ptr mem) // cond: t.IsStruct() && t.NumFields() == 2 && config.fe.CanSSA(t) // result: (StructMake2 (Load ptr mem) (Load (OffPtr [t.FieldOff(1)] ptr) mem)) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsStruct() && t.NumFields() == 2 && config.fe.CanSSA(t)) { - goto end20e20e64004b765012cfb80c575ef27b + break } v.reset(OpStructMake2) v0 := b.NewValue0(v.Line, OpLoad, t.FieldType(0)) @@ -2577,18 +2283,15 @@ endfe908e5a8617dd39df2f9b2b92e93ae5: v.AddArg(v1) return true } - goto end20e20e64004b765012cfb80c575ef27b -end20e20e64004b765012cfb80c575ef27b: - ; // match: (Load ptr mem) // cond: t.IsStruct() && t.NumFields() == 3 && config.fe.CanSSA(t) // result: (StructMake3 (Load ptr mem) (Load (OffPtr [t.FieldOff(1)] ptr) mem) (Load (OffPtr [t.FieldOff(2)] ptr) mem)) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsStruct() && t.NumFields() == 3 && config.fe.CanSSA(t)) { - goto ende612bf71067ed67541735cdc8b5a3288 + break } v.reset(OpStructMake3) v0 := b.NewValue0(v.Line, OpLoad, t.FieldType(0)) @@ -2611,18 +2314,15 @@ end20e20e64004b765012cfb80c575ef27b: v.AddArg(v3) return true } - goto ende612bf71067ed67541735cdc8b5a3288 -ende612bf71067ed67541735cdc8b5a3288: - ; // match: (Load ptr mem) // cond: t.IsStruct() && t.NumFields() == 4 && config.fe.CanSSA(t) // result: (StructMake4 (Load ptr mem) (Load (OffPtr [t.FieldOff(1)] ptr) mem) (Load (OffPtr [t.FieldOff(2)] ptr) mem) (Load (OffPtr [t.FieldOff(3)] ptr) mem)) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsStruct() && t.NumFields() == 4 && config.fe.CanSSA(t)) { - goto end46c66c64d9030f2cc9a7a767f67953d1 + break } v.reset(OpStructMake4) v0 := b.NewValue0(v.Line, OpLoad, t.FieldType(0)) @@ -2652,18 +2352,15 @@ ende612bf71067ed67541735cdc8b5a3288: v.AddArg(v5) return true } - goto end46c66c64d9030f2cc9a7a767f67953d1 -end46c66c64d9030f2cc9a7a767f67953d1: - ; // match: (Load ptr mem) // cond: t.IsComplex() && t.Size() == 8 // result: (ComplexMake (Load ptr mem) (Load (OffPtr [4] ptr) mem) ) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsComplex() && t.Size() == 8) { - goto end665854b31b828893d90b36bb462ff381 + break } v.reset(OpComplexMake) v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeFloat32()) @@ -2679,18 +2376,15 @@ end46c66c64d9030f2cc9a7a767f67953d1: v.AddArg(v1) return true } - goto end665854b31b828893d90b36bb462ff381 -end665854b31b828893d90b36bb462ff381: - ; // match: (Load ptr mem) // cond: t.IsComplex() && t.Size() == 16 // result: (ComplexMake (Load ptr mem) (Load (OffPtr [8] ptr) mem) ) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsComplex() && t.Size() == 16) { - goto end1b106f89e0e3e26c613b957a7c98d8ad + break } v.reset(OpComplexMake) v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeFloat64()) @@ -2706,18 +2400,15 @@ end665854b31b828893d90b36bb462ff381: v.AddArg(v1) return true } - goto end1b106f89e0e3e26c613b957a7c98d8ad -end1b106f89e0e3e26c613b957a7c98d8ad: - ; // match: (Load ptr mem) // cond: t.IsString() // result: (StringMake (Load ptr mem) (Load (OffPtr [config.PtrSize] ptr) mem)) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsString()) { - goto enddd15a6f3d53a6ce7a19d4e181dd1c13a + break } v.reset(OpStringMake) v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeBytePtr()) @@ -2733,18 +2424,15 @@ end1b106f89e0e3e26c613b957a7c98d8ad: v.AddArg(v1) return true } - goto enddd15a6f3d53a6ce7a19d4e181dd1c13a -enddd15a6f3d53a6ce7a19d4e181dd1c13a: - ; // match: (Load ptr mem) // cond: t.IsSlice() // result: (SliceMake (Load ptr mem) (Load (OffPtr [config.PtrSize] ptr) mem) (Load (OffPtr [2*config.PtrSize] ptr) mem)) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsSlice()) { - goto end65e8b0055aa7491b9b6066d9fe1b2c13 + break } v.reset(OpSliceMake) v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeBytePtr()) @@ -2767,18 +2455,15 @@ enddd15a6f3d53a6ce7a19d4e181dd1c13a: v.AddArg(v3) return true } - goto end65e8b0055aa7491b9b6066d9fe1b2c13 -end65e8b0055aa7491b9b6066d9fe1b2c13: - ; // match: (Load ptr mem) // cond: t.IsInterface() // result: (IMake (Load ptr mem) (Load (OffPtr [config.PtrSize] ptr) mem)) - { + for { t := v.Type ptr := v.Args[0] mem := v.Args[1] if !(t.IsInterface()) { - goto end12671c83ebe3ccbc8e53383765ee7675 + break } v.reset(OpIMake) v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeBytePtr()) @@ -2794,9 +2479,6 @@ end65e8b0055aa7491b9b6066d9fe1b2c13: v.AddArg(v1) return true } - goto end12671c83ebe3ccbc8e53383765ee7675 -end12671c83ebe3ccbc8e53383765ee7675: - ; return false } func rewriteValuegeneric_OpLsh16x16(v *Value, config *Config) bool { @@ -2805,11 +2487,11 @@ func rewriteValuegeneric_OpLsh16x16(v *Value, config *Config) bool { // match: (Lsh16x16 x (Const16 [c])) // cond: // result: (Lsh16x64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end2f5aa78b30ebd2471e8d03a307923b06 + break } c := v.Args[1].AuxInt v.reset(OpLsh16x64) @@ -2819,9 +2501,6 @@ func rewriteValuegeneric_OpLsh16x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end2f5aa78b30ebd2471e8d03a307923b06 -end2f5aa78b30ebd2471e8d03a307923b06: - ; return false } func rewriteValuegeneric_OpLsh16x32(v *Value, config *Config) bool { @@ -2830,11 +2509,11 @@ func rewriteValuegeneric_OpLsh16x32(v *Value, config *Config) bool { // match: (Lsh16x32 x (Const32 [c])) // cond: // result: (Lsh16x64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto endedeb000c8c97090261a47f08a2ff17e4 + break } c := v.Args[1].AuxInt v.reset(OpLsh16x64) @@ -2844,9 +2523,6 @@ func rewriteValuegeneric_OpLsh16x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endedeb000c8c97090261a47f08a2ff17e4 -endedeb000c8c97090261a47f08a2ff17e4: - ; return false } func rewriteValuegeneric_OpLsh16x64(v *Value, config *Config) bool { @@ -2855,78 +2531,69 @@ func rewriteValuegeneric_OpLsh16x64(v *Value, config *Config) bool { // match: (Lsh16x64 (Const16 [c]) (Const64 [d])) // cond: // result: (Const16 [int64(int16(c) << uint64(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto endc9f0d91f3da4bdd46a634a62549810e0 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto endc9f0d91f3da4bdd46a634a62549810e0 + break } d := v.Args[1].AuxInt v.reset(OpConst16) v.AuxInt = int64(int16(c) << uint64(d)) return true } - goto endc9f0d91f3da4bdd46a634a62549810e0 -endc9f0d91f3da4bdd46a634a62549810e0: - ; // match: (Lsh16x64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end7ecc343739fab9b50a0bdff6e9d121e6 + break } if v.Args[1].AuxInt != 0 { - goto end7ecc343739fab9b50a0bdff6e9d121e6 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end7ecc343739fab9b50a0bdff6e9d121e6 -end7ecc343739fab9b50a0bdff6e9d121e6: - ; // match: (Lsh16x64 _ (Const64 [c])) // cond: uint64(c) >= 16 // result: (Const64 [0]) - { + for { if v.Args[1].Op != OpConst64 { - goto end1d2c74d359df9d89b16c4f658a231dfe + break } c := v.Args[1].AuxInt if !(uint64(c) >= 16) { - goto end1d2c74d359df9d89b16c4f658a231dfe + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto end1d2c74d359df9d89b16c4f658a231dfe -end1d2c74d359df9d89b16c4f658a231dfe: - ; // match: (Lsh16x64 (Lsh16x64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Lsh16x64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpLsh16x64 { - goto end26a91e42735a02a30e94a998f54372dd + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto end26a91e42735a02a30e94a998f54372dd + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto end26a91e42735a02a30e94a998f54372dd + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto end26a91e42735a02a30e94a998f54372dd + break } v.reset(OpLsh16x64) v.AddArg(x) @@ -2935,9 +2602,6 @@ end1d2c74d359df9d89b16c4f658a231dfe: v.AddArg(v0) return true } - goto end26a91e42735a02a30e94a998f54372dd -end26a91e42735a02a30e94a998f54372dd: - ; return false } func rewriteValuegeneric_OpLsh16x8(v *Value, config *Config) bool { @@ -2946,11 +2610,11 @@ func rewriteValuegeneric_OpLsh16x8(v *Value, config *Config) bool { // match: (Lsh16x8 x (Const8 [c])) // cond: // result: (Lsh16x64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto endce2401b8a6c6190fe81d77e2d562a10c + break } c := v.Args[1].AuxInt v.reset(OpLsh16x64) @@ -2960,9 +2624,6 @@ func rewriteValuegeneric_OpLsh16x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endce2401b8a6c6190fe81d77e2d562a10c -endce2401b8a6c6190fe81d77e2d562a10c: - ; return false } func rewriteValuegeneric_OpLsh32x16(v *Value, config *Config) bool { @@ -2971,11 +2632,11 @@ func rewriteValuegeneric_OpLsh32x16(v *Value, config *Config) bool { // match: (Lsh32x16 x (Const16 [c])) // cond: // result: (Lsh32x64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end7205eb3e315971143ac5584d07045570 + break } c := v.Args[1].AuxInt v.reset(OpLsh32x64) @@ -2985,9 +2646,6 @@ func rewriteValuegeneric_OpLsh32x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end7205eb3e315971143ac5584d07045570 -end7205eb3e315971143ac5584d07045570: - ; return false } func rewriteValuegeneric_OpLsh32x32(v *Value, config *Config) bool { @@ -2996,11 +2654,11 @@ func rewriteValuegeneric_OpLsh32x32(v *Value, config *Config) bool { // match: (Lsh32x32 x (Const32 [c])) // cond: // result: (Lsh32x64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto endc1a330b287199c80228e665a53881298 + break } c := v.Args[1].AuxInt v.reset(OpLsh32x64) @@ -3010,9 +2668,6 @@ func rewriteValuegeneric_OpLsh32x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endc1a330b287199c80228e665a53881298 -endc1a330b287199c80228e665a53881298: - ; return false } func rewriteValuegeneric_OpLsh32x64(v *Value, config *Config) bool { @@ -3021,78 +2676,69 @@ func rewriteValuegeneric_OpLsh32x64(v *Value, config *Config) bool { // match: (Lsh32x64 (Const32 [c]) (Const64 [d])) // cond: // result: (Const32 [int64(int32(c) << uint64(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end5896bd9a3fe78f1e1712563642d33254 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end5896bd9a3fe78f1e1712563642d33254 + break } d := v.Args[1].AuxInt v.reset(OpConst32) v.AuxInt = int64(int32(c) << uint64(d)) return true } - goto end5896bd9a3fe78f1e1712563642d33254 -end5896bd9a3fe78f1e1712563642d33254: - ; // match: (Lsh32x64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto endd9ce9639a91b11e601823be3d4d6c209 + break } if v.Args[1].AuxInt != 0 { - goto endd9ce9639a91b11e601823be3d4d6c209 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endd9ce9639a91b11e601823be3d4d6c209 -endd9ce9639a91b11e601823be3d4d6c209: - ; // match: (Lsh32x64 _ (Const64 [c])) // cond: uint64(c) >= 32 // result: (Const64 [0]) - { + for { if v.Args[1].Op != OpConst64 { - goto end81247a2423f489be15859d3930738fdf + break } c := v.Args[1].AuxInt if !(uint64(c) >= 32) { - goto end81247a2423f489be15859d3930738fdf + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto end81247a2423f489be15859d3930738fdf -end81247a2423f489be15859d3930738fdf: - ; // match: (Lsh32x64 (Lsh32x64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Lsh32x64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpLsh32x64 { - goto endf96a7c9571797fe61a5b63a4923d7e6e + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto endf96a7c9571797fe61a5b63a4923d7e6e + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto endf96a7c9571797fe61a5b63a4923d7e6e + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto endf96a7c9571797fe61a5b63a4923d7e6e + break } v.reset(OpLsh32x64) v.AddArg(x) @@ -3101,9 +2747,6 @@ end81247a2423f489be15859d3930738fdf: v.AddArg(v0) return true } - goto endf96a7c9571797fe61a5b63a4923d7e6e -endf96a7c9571797fe61a5b63a4923d7e6e: - ; return false } func rewriteValuegeneric_OpLsh32x8(v *Value, config *Config) bool { @@ -3112,11 +2755,11 @@ func rewriteValuegeneric_OpLsh32x8(v *Value, config *Config) bool { // match: (Lsh32x8 x (Const8 [c])) // cond: // result: (Lsh32x64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end1759d7c25a5bcda288e34d1d197c0b8f + break } c := v.Args[1].AuxInt v.reset(OpLsh32x64) @@ -3126,9 +2769,6 @@ func rewriteValuegeneric_OpLsh32x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end1759d7c25a5bcda288e34d1d197c0b8f -end1759d7c25a5bcda288e34d1d197c0b8f: - ; return false } func rewriteValuegeneric_OpLsh64x16(v *Value, config *Config) bool { @@ -3137,11 +2777,11 @@ func rewriteValuegeneric_OpLsh64x16(v *Value, config *Config) bool { // match: (Lsh64x16 x (Const16 [c])) // cond: // result: (Lsh64x64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto enda649fbb5e14490c9eea9616550a76b5c + break } c := v.Args[1].AuxInt v.reset(OpLsh64x64) @@ -3151,9 +2791,6 @@ func rewriteValuegeneric_OpLsh64x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto enda649fbb5e14490c9eea9616550a76b5c -enda649fbb5e14490c9eea9616550a76b5c: - ; return false } func rewriteValuegeneric_OpLsh64x32(v *Value, config *Config) bool { @@ -3162,11 +2799,11 @@ func rewriteValuegeneric_OpLsh64x32(v *Value, config *Config) bool { // match: (Lsh64x32 x (Const32 [c])) // cond: // result: (Lsh64x64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end40069675cde851a63cce81b1b02751f9 + break } c := v.Args[1].AuxInt v.reset(OpLsh64x64) @@ -3176,9 +2813,6 @@ func rewriteValuegeneric_OpLsh64x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end40069675cde851a63cce81b1b02751f9 -end40069675cde851a63cce81b1b02751f9: - ; return false } func rewriteValuegeneric_OpLsh64x64(v *Value, config *Config) bool { @@ -3187,78 +2821,69 @@ func rewriteValuegeneric_OpLsh64x64(v *Value, config *Config) bool { // match: (Lsh64x64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c << uint64(d)]) - { + for { if v.Args[0].Op != OpConst64 { - goto end9c157a23e021f659f1568566435ed57b + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end9c157a23e021f659f1568566435ed57b + break } d := v.Args[1].AuxInt v.reset(OpConst64) v.AuxInt = c << uint64(d) return true } - goto end9c157a23e021f659f1568566435ed57b -end9c157a23e021f659f1568566435ed57b: - ; // match: (Lsh64x64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end9f18ca0556dbb4b50fe888273fab20ca + break } if v.Args[1].AuxInt != 0 { - goto end9f18ca0556dbb4b50fe888273fab20ca + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end9f18ca0556dbb4b50fe888273fab20ca -end9f18ca0556dbb4b50fe888273fab20ca: - ; // match: (Lsh64x64 _ (Const64 [c])) // cond: uint64(c) >= 64 // result: (Const64 [0]) - { + for { if v.Args[1].Op != OpConst64 { - goto end33da2e0ce5ca3e0554564477ef422402 + break } c := v.Args[1].AuxInt if !(uint64(c) >= 64) { - goto end33da2e0ce5ca3e0554564477ef422402 + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto end33da2e0ce5ca3e0554564477ef422402 -end33da2e0ce5ca3e0554564477ef422402: - ; // match: (Lsh64x64 (Lsh64x64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Lsh64x64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpLsh64x64 { - goto end001c62ee580a700ec7b07ccaa3740ac2 + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto end001c62ee580a700ec7b07ccaa3740ac2 + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto end001c62ee580a700ec7b07ccaa3740ac2 + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto end001c62ee580a700ec7b07ccaa3740ac2 + break } v.reset(OpLsh64x64) v.AddArg(x) @@ -3267,9 +2892,6 @@ end33da2e0ce5ca3e0554564477ef422402: v.AddArg(v0) return true } - goto end001c62ee580a700ec7b07ccaa3740ac2 -end001c62ee580a700ec7b07ccaa3740ac2: - ; return false } func rewriteValuegeneric_OpLsh64x8(v *Value, config *Config) bool { @@ -3278,11 +2900,11 @@ func rewriteValuegeneric_OpLsh64x8(v *Value, config *Config) bool { // match: (Lsh64x8 x (Const8 [c])) // cond: // result: (Lsh64x64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end4d9224069abdade8e405df343938d932 + break } c := v.Args[1].AuxInt v.reset(OpLsh64x64) @@ -3292,9 +2914,6 @@ func rewriteValuegeneric_OpLsh64x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end4d9224069abdade8e405df343938d932 -end4d9224069abdade8e405df343938d932: - ; return false } func rewriteValuegeneric_OpLsh8x16(v *Value, config *Config) bool { @@ -3303,11 +2922,11 @@ func rewriteValuegeneric_OpLsh8x16(v *Value, config *Config) bool { // match: (Lsh8x16 x (Const16 [c])) // cond: // result: (Lsh8x64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end0ad4a82e2eb4c7ca7407d79ec3aa5142 + break } c := v.Args[1].AuxInt v.reset(OpLsh8x64) @@ -3317,9 +2936,6 @@ func rewriteValuegeneric_OpLsh8x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end0ad4a82e2eb4c7ca7407d79ec3aa5142 -end0ad4a82e2eb4c7ca7407d79ec3aa5142: - ; return false } func rewriteValuegeneric_OpLsh8x32(v *Value, config *Config) bool { @@ -3328,11 +2944,11 @@ func rewriteValuegeneric_OpLsh8x32(v *Value, config *Config) bool { // match: (Lsh8x32 x (Const32 [c])) // cond: // result: (Lsh8x64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto enddaacda113ecc79fe0621fd22ebc548dd + break } c := v.Args[1].AuxInt v.reset(OpLsh8x64) @@ -3342,9 +2958,6 @@ func rewriteValuegeneric_OpLsh8x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto enddaacda113ecc79fe0621fd22ebc548dd -enddaacda113ecc79fe0621fd22ebc548dd: - ; return false } func rewriteValuegeneric_OpLsh8x64(v *Value, config *Config) bool { @@ -3353,78 +2966,69 @@ func rewriteValuegeneric_OpLsh8x64(v *Value, config *Config) bool { // match: (Lsh8x64 (Const8 [c]) (Const64 [d])) // cond: // result: (Const8 [int64(int8(c) << uint64(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto endbc3297ea9642b97eb71f0a9735048d7b + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto endbc3297ea9642b97eb71f0a9735048d7b + break } d := v.Args[1].AuxInt v.reset(OpConst8) v.AuxInt = int64(int8(c) << uint64(d)) return true } - goto endbc3297ea9642b97eb71f0a9735048d7b -endbc3297ea9642b97eb71f0a9735048d7b: - ; // match: (Lsh8x64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end715f3db41cccf963e25a20c33f618a04 + break } if v.Args[1].AuxInt != 0 { - goto end715f3db41cccf963e25a20c33f618a04 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end715f3db41cccf963e25a20c33f618a04 -end715f3db41cccf963e25a20c33f618a04: - ; // match: (Lsh8x64 _ (Const64 [c])) // cond: uint64(c) >= 8 // result: (Const64 [0]) - { + for { if v.Args[1].Op != OpConst64 { - goto endb6749df4d0cdc0cd9acc627187d73488 + break } c := v.Args[1].AuxInt if !(uint64(c) >= 8) { - goto endb6749df4d0cdc0cd9acc627187d73488 + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto endb6749df4d0cdc0cd9acc627187d73488 -endb6749df4d0cdc0cd9acc627187d73488: - ; // match: (Lsh8x64 (Lsh8x64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Lsh8x64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpLsh8x64 { - goto end73a4878b6bbd21c9e22fb99226ef947e + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto end73a4878b6bbd21c9e22fb99226ef947e + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto end73a4878b6bbd21c9e22fb99226ef947e + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto end73a4878b6bbd21c9e22fb99226ef947e + break } v.reset(OpLsh8x64) v.AddArg(x) @@ -3433,9 +3037,6 @@ endb6749df4d0cdc0cd9acc627187d73488: v.AddArg(v0) return true } - goto end73a4878b6bbd21c9e22fb99226ef947e -end73a4878b6bbd21c9e22fb99226ef947e: - ; return false } func rewriteValuegeneric_OpLsh8x8(v *Value, config *Config) bool { @@ -3444,11 +3045,11 @@ func rewriteValuegeneric_OpLsh8x8(v *Value, config *Config) bool { // match: (Lsh8x8 x (Const8 [c])) // cond: // result: (Lsh8x64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end8b770597435467b0c96014624d522b33 + break } c := v.Args[1].AuxInt v.reset(OpLsh8x64) @@ -3458,9 +3059,6 @@ func rewriteValuegeneric_OpLsh8x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end8b770597435467b0c96014624d522b33 -end8b770597435467b0c96014624d522b33: - ; return false } func rewriteValuegeneric_OpMul16(v *Value, config *Config) bool { @@ -3469,22 +3067,19 @@ func rewriteValuegeneric_OpMul16(v *Value, config *Config) bool { // match: (Mul16 (Const16 [c]) (Const16 [d])) // cond: // result: (Const16 [c*d]) - { + for { if v.Args[0].Op != OpConst16 { - goto ende8dd468add3015aea24531cf3c89ccb7 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto ende8dd468add3015aea24531cf3c89ccb7 + break } d := v.Args[1].AuxInt v.reset(OpConst16) v.AuxInt = c * d return true } - goto ende8dd468add3015aea24531cf3c89ccb7 -ende8dd468add3015aea24531cf3c89ccb7: - ; return false } func rewriteValuegeneric_OpMul32(v *Value, config *Config) bool { @@ -3493,22 +3088,19 @@ func rewriteValuegeneric_OpMul32(v *Value, config *Config) bool { // match: (Mul32 (Const32 [c]) (Const32 [d])) // cond: // result: (Const32 [c*d]) - { + for { if v.Args[0].Op != OpConst32 { - goto end60b4523099fa7b55e2e872e05bd497a7 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end60b4523099fa7b55e2e872e05bd497a7 + break } d := v.Args[1].AuxInt v.reset(OpConst32) v.AuxInt = c * d return true } - goto end60b4523099fa7b55e2e872e05bd497a7 -end60b4523099fa7b55e2e872e05bd497a7: - ; return false } func rewriteValuegeneric_OpMul64(v *Value, config *Config) bool { @@ -3517,22 +3109,19 @@ func rewriteValuegeneric_OpMul64(v *Value, config *Config) bool { // match: (Mul64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c*d]) - { + for { if v.Args[0].Op != OpConst64 { - goto end7aea1048b5d1230974b97f17238380ae + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end7aea1048b5d1230974b97f17238380ae + break } d := v.Args[1].AuxInt v.reset(OpConst64) v.AuxInt = c * d return true } - goto end7aea1048b5d1230974b97f17238380ae -end7aea1048b5d1230974b97f17238380ae: - ; return false } func rewriteValuegeneric_OpMul8(v *Value, config *Config) bool { @@ -3541,22 +3130,19 @@ func rewriteValuegeneric_OpMul8(v *Value, config *Config) bool { // match: (Mul8 (Const8 [c]) (Const8 [d])) // cond: // result: (Const8 [c*d]) - { + for { if v.Args[0].Op != OpConst8 { - goto end2f1952fd654c4a62ff00511041728809 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto end2f1952fd654c4a62ff00511041728809 + break } d := v.Args[1].AuxInt v.reset(OpConst8) v.AuxInt = c * d return true } - goto end2f1952fd654c4a62ff00511041728809 -end2f1952fd654c4a62ff00511041728809: - ; return false } func rewriteValuegeneric_OpNeq16(v *Value, config *Config) bool { @@ -3565,35 +3151,32 @@ func rewriteValuegeneric_OpNeq16(v *Value, config *Config) bool { // match: (Neq16 x x) // cond: // result: (ConstBool [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto ende76a50b524aeb16c7aeccf5f5cc60c06 + break } v.reset(OpConstBool) v.AuxInt = 0 return true } - goto ende76a50b524aeb16c7aeccf5f5cc60c06 -ende76a50b524aeb16c7aeccf5f5cc60c06: - ; // match: (Neq16 (Const16 [c]) (Add16 (Const16 [d]) x)) // cond: // result: (Neq16 (Const16 [c-d]) x) - { + for { if v.Args[0].Op != OpConst16 { - goto end552011bd97e6f92ebc2672aa1843eadd + break } t := v.Args[0].Type c := v.Args[0].AuxInt if v.Args[1].Op != OpAdd16 { - goto end552011bd97e6f92ebc2672aa1843eadd + break } if v.Args[1].Args[0].Op != OpConst16 { - goto end552011bd97e6f92ebc2672aa1843eadd + break } if v.Args[1].Args[0].Type != v.Args[0].Type { - goto end552011bd97e6f92ebc2672aa1843eadd + break } d := v.Args[1].Args[0].AuxInt x := v.Args[1].Args[1] @@ -3604,21 +3187,18 @@ ende76a50b524aeb16c7aeccf5f5cc60c06: v.AddArg(x) return true } - goto end552011bd97e6f92ebc2672aa1843eadd -end552011bd97e6f92ebc2672aa1843eadd: - ; // match: (Neq16 x (Const16 [c])) // cond: x.Op != OpConst16 // result: (Neq16 (Const16 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end0e45958f29e87997f632248aa9ee97e0 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst16) { - goto end0e45958f29e87997f632248aa9ee97e0 + break } v.reset(OpNeq16) v0 := b.NewValue0(v.Line, OpConst16, t) @@ -3627,28 +3207,22 @@ end552011bd97e6f92ebc2672aa1843eadd: v.AddArg(x) return true } - goto end0e45958f29e87997f632248aa9ee97e0 -end0e45958f29e87997f632248aa9ee97e0: - ; // match: (Neq16 (Const16 [c]) (Const16 [d])) // cond: // result: (ConstBool [b2i(int16(c) != int16(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto end6302c9b645bb191982d28c2f846904d6 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto end6302c9b645bb191982d28c2f846904d6 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int16(c) != int16(d)) return true } - goto end6302c9b645bb191982d28c2f846904d6 -end6302c9b645bb191982d28c2f846904d6: - ; return false } func rewriteValuegeneric_OpNeq32(v *Value, config *Config) bool { @@ -3657,35 +3231,32 @@ func rewriteValuegeneric_OpNeq32(v *Value, config *Config) bool { // match: (Neq32 x x) // cond: // result: (ConstBool [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end3713a608cffd29b40ff7c3b3f2585cbb + break } v.reset(OpConstBool) v.AuxInt = 0 return true } - goto end3713a608cffd29b40ff7c3b3f2585cbb -end3713a608cffd29b40ff7c3b3f2585cbb: - ; // match: (Neq32 (Const32 [c]) (Add32 (Const32 [d]) x)) // cond: // result: (Neq32 (Const32 [c-d]) x) - { + for { if v.Args[0].Op != OpConst32 { - goto end93fc3b4a3639b965b414891111b16245 + break } t := v.Args[0].Type c := v.Args[0].AuxInt if v.Args[1].Op != OpAdd32 { - goto end93fc3b4a3639b965b414891111b16245 + break } if v.Args[1].Args[0].Op != OpConst32 { - goto end93fc3b4a3639b965b414891111b16245 + break } if v.Args[1].Args[0].Type != v.Args[0].Type { - goto end93fc3b4a3639b965b414891111b16245 + break } d := v.Args[1].Args[0].AuxInt x := v.Args[1].Args[1] @@ -3696,21 +3267,18 @@ end3713a608cffd29b40ff7c3b3f2585cbb: v.AddArg(x) return true } - goto end93fc3b4a3639b965b414891111b16245 -end93fc3b4a3639b965b414891111b16245: - ; // match: (Neq32 x (Const32 [c])) // cond: x.Op != OpConst32 // result: (Neq32 (Const32 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end5376f9ab90e282450f49011d0e0ce236 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst32) { - goto end5376f9ab90e282450f49011d0e0ce236 + break } v.reset(OpNeq32) v0 := b.NewValue0(v.Line, OpConst32, t) @@ -3719,28 +3287,22 @@ end93fc3b4a3639b965b414891111b16245: v.AddArg(x) return true } - goto end5376f9ab90e282450f49011d0e0ce236 -end5376f9ab90e282450f49011d0e0ce236: - ; // match: (Neq32 (Const32 [c]) (Const32 [d])) // cond: // result: (ConstBool [b2i(int32(c) != int32(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto endf9f3d0814854d2d0879d331e9bdfcae2 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto endf9f3d0814854d2d0879d331e9bdfcae2 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int32(c) != int32(d)) return true } - goto endf9f3d0814854d2d0879d331e9bdfcae2 -endf9f3d0814854d2d0879d331e9bdfcae2: - ; return false } func rewriteValuegeneric_OpNeq64(v *Value, config *Config) bool { @@ -3749,35 +3311,32 @@ func rewriteValuegeneric_OpNeq64(v *Value, config *Config) bool { // match: (Neq64 x x) // cond: // result: (ConstBool [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end3601ad382705ea12b79d2008c1e5725c + break } v.reset(OpConstBool) v.AuxInt = 0 return true } - goto end3601ad382705ea12b79d2008c1e5725c -end3601ad382705ea12b79d2008c1e5725c: - ; // match: (Neq64 (Const64 [c]) (Add64 (Const64 [d]) x)) // cond: // result: (Neq64 (Const64 [c-d]) x) - { + for { if v.Args[0].Op != OpConst64 { - goto enda3d39cad13a557a2aa6d086f43596c1b + break } t := v.Args[0].Type c := v.Args[0].AuxInt if v.Args[1].Op != OpAdd64 { - goto enda3d39cad13a557a2aa6d086f43596c1b + break } if v.Args[1].Args[0].Op != OpConst64 { - goto enda3d39cad13a557a2aa6d086f43596c1b + break } if v.Args[1].Args[0].Type != v.Args[0].Type { - goto enda3d39cad13a557a2aa6d086f43596c1b + break } d := v.Args[1].Args[0].AuxInt x := v.Args[1].Args[1] @@ -3788,21 +3347,18 @@ end3601ad382705ea12b79d2008c1e5725c: v.AddArg(x) return true } - goto enda3d39cad13a557a2aa6d086f43596c1b -enda3d39cad13a557a2aa6d086f43596c1b: - ; // match: (Neq64 x (Const64 [c])) // cond: x.Op != OpConst64 // result: (Neq64 (Const64 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end0936a57de20373ca6cacb9506ddde708 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst64) { - goto end0936a57de20373ca6cacb9506ddde708 + break } v.reset(OpNeq64) v0 := b.NewValue0(v.Line, OpConst64, t) @@ -3811,28 +3367,22 @@ enda3d39cad13a557a2aa6d086f43596c1b: v.AddArg(x) return true } - goto end0936a57de20373ca6cacb9506ddde708 -end0936a57de20373ca6cacb9506ddde708: - ; // match: (Neq64 (Const64 [c]) (Const64 [d])) // cond: // result: (ConstBool [b2i(int64(c) != int64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto endf07433ecd3c150b1b75e943aa44a7203 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto endf07433ecd3c150b1b75e943aa44a7203 + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int64(c) != int64(d)) return true } - goto endf07433ecd3c150b1b75e943aa44a7203 -endf07433ecd3c150b1b75e943aa44a7203: - ; return false } func rewriteValuegeneric_OpNeq8(v *Value, config *Config) bool { @@ -3841,35 +3391,32 @@ func rewriteValuegeneric_OpNeq8(v *Value, config *Config) bool { // match: (Neq8 x x) // cond: // result: (ConstBool [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end09a0deaf3c42627d0d2d3efa96e30745 + break } v.reset(OpConstBool) v.AuxInt = 0 return true } - goto end09a0deaf3c42627d0d2d3efa96e30745 -end09a0deaf3c42627d0d2d3efa96e30745: - ; // match: (Neq8 (Const8 [c]) (Add8 (Const8 [d]) x)) // cond: // result: (Neq8 (Const8 [c-d]) x) - { + for { if v.Args[0].Op != OpConst8 { - goto endc8f853c610c460c887cbfdca958e3691 + break } t := v.Args[0].Type c := v.Args[0].AuxInt if v.Args[1].Op != OpAdd8 { - goto endc8f853c610c460c887cbfdca958e3691 + break } if v.Args[1].Args[0].Op != OpConst8 { - goto endc8f853c610c460c887cbfdca958e3691 + break } if v.Args[1].Args[0].Type != v.Args[0].Type { - goto endc8f853c610c460c887cbfdca958e3691 + break } d := v.Args[1].Args[0].AuxInt x := v.Args[1].Args[1] @@ -3880,21 +3427,18 @@ end09a0deaf3c42627d0d2d3efa96e30745: v.AddArg(x) return true } - goto endc8f853c610c460c887cbfdca958e3691 -endc8f853c610c460c887cbfdca958e3691: - ; // match: (Neq8 x (Const8 [c])) // cond: x.Op != OpConst8 // result: (Neq8 (Const8 [c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end04dc0ae2b08cf0447b50e5b8ef469252 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst8) { - goto end04dc0ae2b08cf0447b50e5b8ef469252 + break } v.reset(OpNeq8) v0 := b.NewValue0(v.Line, OpConst8, t) @@ -3903,28 +3447,22 @@ endc8f853c610c460c887cbfdca958e3691: v.AddArg(x) return true } - goto end04dc0ae2b08cf0447b50e5b8ef469252 -end04dc0ae2b08cf0447b50e5b8ef469252: - ; // match: (Neq8 (Const8 [c]) (Const8 [d])) // cond: // result: (ConstBool [b2i(int8(c) != int8(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto end72ebdaf2de9b3aa57cf0cb8e068b5f9c + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto end72ebdaf2de9b3aa57cf0cb8e068b5f9c + break } d := v.Args[1].AuxInt v.reset(OpConstBool) v.AuxInt = b2i(int8(c) != int8(d)) return true } - goto end72ebdaf2de9b3aa57cf0cb8e068b5f9c -end72ebdaf2de9b3aa57cf0cb8e068b5f9c: - ; return false } func rewriteValuegeneric_OpNeqInter(v *Value, config *Config) bool { @@ -3933,7 +3471,7 @@ func rewriteValuegeneric_OpNeqInter(v *Value, config *Config) bool { // match: (NeqInter x y) // cond: // result: (NeqPtr (ITab x) (ITab y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpNeqPtr) @@ -3945,9 +3483,6 @@ func rewriteValuegeneric_OpNeqInter(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto end17b2333bf57e9fe81a671be02f9c4c14 -end17b2333bf57e9fe81a671be02f9c4c14: - ; return false } func rewriteValuegeneric_OpNeqPtr(v *Value, config *Config) bool { @@ -3956,33 +3491,27 @@ func rewriteValuegeneric_OpNeqPtr(v *Value, config *Config) bool { // match: (NeqPtr p (ConstNil)) // cond: // result: (IsNonNil p) - { + for { p := v.Args[0] if v.Args[1].Op != OpConstNil { - goto endba798520b4d41172b110347158c44791 + break } v.reset(OpIsNonNil) v.AddArg(p) return true } - goto endba798520b4d41172b110347158c44791 -endba798520b4d41172b110347158c44791: - ; // match: (NeqPtr (ConstNil) p) // cond: // result: (IsNonNil p) - { + for { if v.Args[0].Op != OpConstNil { - goto enddd95e9c3606d9fd48034f1a703561e45 + break } p := v.Args[1] v.reset(OpIsNonNil) v.AddArg(p) return true } - goto enddd95e9c3606d9fd48034f1a703561e45 -enddd95e9c3606d9fd48034f1a703561e45: - ; return false } func rewriteValuegeneric_OpNeqSlice(v *Value, config *Config) bool { @@ -3991,7 +3520,7 @@ func rewriteValuegeneric_OpNeqSlice(v *Value, config *Config) bool { // match: (NeqSlice x y) // cond: // result: (NeqPtr (SlicePtr x) (SlicePtr y)) - { + for { x := v.Args[0] y := v.Args[1] v.reset(OpNeqPtr) @@ -4003,9 +3532,6 @@ func rewriteValuegeneric_OpNeqSlice(v *Value, config *Config) bool { v.AddArg(v1) return true } - goto endc6bc83c506e491236ca66ea1081231a2 -endc6bc83c506e491236ca66ea1081231a2: - ; return false } func rewriteValuegeneric_OpOr16(v *Value, config *Config) bool { @@ -4014,19 +3540,16 @@ func rewriteValuegeneric_OpOr16(v *Value, config *Config) bool { // match: (Or16 x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto end47a2f25fd31a76807aced3e2b126acdc + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end47a2f25fd31a76807aced3e2b126acdc -end47a2f25fd31a76807aced3e2b126acdc: - ; return false } func rewriteValuegeneric_OpOr32(v *Value, config *Config) bool { @@ -4035,19 +3558,16 @@ func rewriteValuegeneric_OpOr32(v *Value, config *Config) bool { // match: (Or32 x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto end231e283e568e90bd9a3e6a4fa328c8a4 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end231e283e568e90bd9a3e6a4fa328c8a4 -end231e283e568e90bd9a3e6a4fa328c8a4: - ; return false } func rewriteValuegeneric_OpOr64(v *Value, config *Config) bool { @@ -4056,19 +3576,16 @@ func rewriteValuegeneric_OpOr64(v *Value, config *Config) bool { // match: (Or64 x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto end6b0efc212016dc97d0e3939db04c81d9 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end6b0efc212016dc97d0e3939db04c81d9 -end6b0efc212016dc97d0e3939db04c81d9: - ; return false } func rewriteValuegeneric_OpOr8(v *Value, config *Config) bool { @@ -4077,19 +3594,16 @@ func rewriteValuegeneric_OpOr8(v *Value, config *Config) bool { // match: (Or8 x x) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1] != x { - goto end05295dbfafd6869af79b4daee9fda000 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end05295dbfafd6869af79b4daee9fda000 -end05295dbfafd6869af79b4daee9fda000: - ; return false } func rewriteValuegeneric_OpPtrIndex(v *Value, config *Config) bool { @@ -4098,12 +3612,12 @@ func rewriteValuegeneric_OpPtrIndex(v *Value, config *Config) bool { // match: (PtrIndex ptr idx) // cond: config.PtrSize == 4 // result: (AddPtr ptr (Mul32 idx (Const32 [t.Elem().Size()]))) - { + for { t := v.Type ptr := v.Args[0] idx := v.Args[1] if !(config.PtrSize == 4) { - goto endd902622aaa1e7545b5a2a0c08b47d287 + break } v.reset(OpAddPtr) v.AddArg(ptr) @@ -4115,18 +3629,15 @@ func rewriteValuegeneric_OpPtrIndex(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endd902622aaa1e7545b5a2a0c08b47d287 -endd902622aaa1e7545b5a2a0c08b47d287: - ; // match: (PtrIndex ptr idx) // cond: config.PtrSize == 8 // result: (AddPtr ptr (Mul64 idx (Const64 [t.Elem().Size()]))) - { + for { t := v.Type ptr := v.Args[0] idx := v.Args[1] if !(config.PtrSize == 8) { - goto end47a5f1d1b158914fa383de024bbe3b08 + break } v.reset(OpAddPtr) v.AddArg(ptr) @@ -4138,9 +3649,6 @@ endd902622aaa1e7545b5a2a0c08b47d287: v.AddArg(v0) return true } - goto end47a5f1d1b158914fa383de024bbe3b08 -end47a5f1d1b158914fa383de024bbe3b08: - ; return false } func rewriteValuegeneric_OpRsh16Ux16(v *Value, config *Config) bool { @@ -4149,11 +3657,11 @@ func rewriteValuegeneric_OpRsh16Ux16(v *Value, config *Config) bool { // match: (Rsh16Ux16 x (Const16 [c])) // cond: // result: (Rsh16Ux64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto endd981df40f353104ef828d13ad4ccdf02 + break } c := v.Args[1].AuxInt v.reset(OpRsh16Ux64) @@ -4163,9 +3671,6 @@ func rewriteValuegeneric_OpRsh16Ux16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endd981df40f353104ef828d13ad4ccdf02 -endd981df40f353104ef828d13ad4ccdf02: - ; return false } func rewriteValuegeneric_OpRsh16Ux32(v *Value, config *Config) bool { @@ -4174,11 +3679,11 @@ func rewriteValuegeneric_OpRsh16Ux32(v *Value, config *Config) bool { // match: (Rsh16Ux32 x (Const32 [c])) // cond: // result: (Rsh16Ux64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto ende0be9ee562725206dcf96d3e5750b5ea + break } c := v.Args[1].AuxInt v.reset(OpRsh16Ux64) @@ -4188,9 +3693,6 @@ func rewriteValuegeneric_OpRsh16Ux32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto ende0be9ee562725206dcf96d3e5750b5ea -ende0be9ee562725206dcf96d3e5750b5ea: - ; return false } func rewriteValuegeneric_OpRsh16Ux64(v *Value, config *Config) bool { @@ -4199,78 +3701,69 @@ func rewriteValuegeneric_OpRsh16Ux64(v *Value, config *Config) bool { // match: (Rsh16Ux64 (Const16 [c]) (Const64 [d])) // cond: // result: (Const16 [int64(uint16(c) >> uint64(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto ended17f40375fb44bcbaf2d87161c5ed3c + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto ended17f40375fb44bcbaf2d87161c5ed3c + break } d := v.Args[1].AuxInt v.reset(OpConst16) v.AuxInt = int64(uint16(c) >> uint64(d)) return true } - goto ended17f40375fb44bcbaf2d87161c5ed3c -ended17f40375fb44bcbaf2d87161c5ed3c: - ; // match: (Rsh16Ux64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end752d1b5a60f87afa7e40febbf1bce309 + break } if v.Args[1].AuxInt != 0 { - goto end752d1b5a60f87afa7e40febbf1bce309 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end752d1b5a60f87afa7e40febbf1bce309 -end752d1b5a60f87afa7e40febbf1bce309: - ; // match: (Rsh16Ux64 _ (Const64 [c])) // cond: uint64(c) >= 16 // result: (Const64 [0]) - { + for { if v.Args[1].Op != OpConst64 { - goto endca5c7ae2e51f2ae32486c2b1a3033b77 + break } c := v.Args[1].AuxInt if !(uint64(c) >= 16) { - goto endca5c7ae2e51f2ae32486c2b1a3033b77 + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto endca5c7ae2e51f2ae32486c2b1a3033b77 -endca5c7ae2e51f2ae32486c2b1a3033b77: - ; // match: (Rsh16Ux64 (Rsh16Ux64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Rsh16Ux64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpRsh16Ux64 { - goto end56f2c0034c9fbe651abb36fb640af465 + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto end56f2c0034c9fbe651abb36fb640af465 + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto end56f2c0034c9fbe651abb36fb640af465 + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto end56f2c0034c9fbe651abb36fb640af465 + break } v.reset(OpRsh16Ux64) v.AddArg(x) @@ -4279,9 +3772,6 @@ endca5c7ae2e51f2ae32486c2b1a3033b77: v.AddArg(v0) return true } - goto end56f2c0034c9fbe651abb36fb640af465 -end56f2c0034c9fbe651abb36fb640af465: - ; return false } func rewriteValuegeneric_OpRsh16Ux8(v *Value, config *Config) bool { @@ -4290,11 +3780,11 @@ func rewriteValuegeneric_OpRsh16Ux8(v *Value, config *Config) bool { // match: (Rsh16Ux8 x (Const8 [c])) // cond: // result: (Rsh16Ux64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end20d4667094c32c71bac4e0805dab85c9 + break } c := v.Args[1].AuxInt v.reset(OpRsh16Ux64) @@ -4304,9 +3794,6 @@ func rewriteValuegeneric_OpRsh16Ux8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end20d4667094c32c71bac4e0805dab85c9 -end20d4667094c32c71bac4e0805dab85c9: - ; return false } func rewriteValuegeneric_OpRsh16x16(v *Value, config *Config) bool { @@ -4315,11 +3802,11 @@ func rewriteValuegeneric_OpRsh16x16(v *Value, config *Config) bool { // match: (Rsh16x16 x (Const16 [c])) // cond: // result: (Rsh16x64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end1b501c7ae2fe58ad3a88b467f2d95389 + break } c := v.Args[1].AuxInt v.reset(OpRsh16x64) @@ -4329,9 +3816,6 @@ func rewriteValuegeneric_OpRsh16x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end1b501c7ae2fe58ad3a88b467f2d95389 -end1b501c7ae2fe58ad3a88b467f2d95389: - ; return false } func rewriteValuegeneric_OpRsh16x32(v *Value, config *Config) bool { @@ -4340,11 +3824,11 @@ func rewriteValuegeneric_OpRsh16x32(v *Value, config *Config) bool { // match: (Rsh16x32 x (Const32 [c])) // cond: // result: (Rsh16x64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end4d3a41113d2d0b09924bf5759ca49cab + break } c := v.Args[1].AuxInt v.reset(OpRsh16x64) @@ -4354,9 +3838,6 @@ func rewriteValuegeneric_OpRsh16x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end4d3a41113d2d0b09924bf5759ca49cab -end4d3a41113d2d0b09924bf5759ca49cab: - ; return false } func rewriteValuegeneric_OpRsh16x64(v *Value, config *Config) bool { @@ -4365,60 +3846,54 @@ func rewriteValuegeneric_OpRsh16x64(v *Value, config *Config) bool { // match: (Rsh16x64 (Const16 [c]) (Const64 [d])) // cond: // result: (Const16 [int64(int16(c) >> uint64(d))]) - { + for { if v.Args[0].Op != OpConst16 { - goto end8f05fede35a3d2f687fcd4a5829a25ad + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end8f05fede35a3d2f687fcd4a5829a25ad + break } d := v.Args[1].AuxInt v.reset(OpConst16) v.AuxInt = int64(int16(c) >> uint64(d)) return true } - goto end8f05fede35a3d2f687fcd4a5829a25ad -end8f05fede35a3d2f687fcd4a5829a25ad: - ; // match: (Rsh16x64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end750fafe01fcc689d953101d53efc19ab + break } if v.Args[1].AuxInt != 0 { - goto end750fafe01fcc689d953101d53efc19ab + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end750fafe01fcc689d953101d53efc19ab -end750fafe01fcc689d953101d53efc19ab: - ; // match: (Rsh16x64 (Rsh16x64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Rsh16x64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpRsh16x64 { - goto endf425eff9e05aad27194af957e3383c76 + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto endf425eff9e05aad27194af957e3383c76 + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto endf425eff9e05aad27194af957e3383c76 + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto endf425eff9e05aad27194af957e3383c76 + break } v.reset(OpRsh16x64) v.AddArg(x) @@ -4427,9 +3902,6 @@ end750fafe01fcc689d953101d53efc19ab: v.AddArg(v0) return true } - goto endf425eff9e05aad27194af957e3383c76 -endf425eff9e05aad27194af957e3383c76: - ; return false } func rewriteValuegeneric_OpRsh16x8(v *Value, config *Config) bool { @@ -4438,11 +3910,11 @@ func rewriteValuegeneric_OpRsh16x8(v *Value, config *Config) bool { // match: (Rsh16x8 x (Const8 [c])) // cond: // result: (Rsh16x64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end0b5e274d62a3ae8df9f4089756c6a9d4 + break } c := v.Args[1].AuxInt v.reset(OpRsh16x64) @@ -4452,9 +3924,6 @@ func rewriteValuegeneric_OpRsh16x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end0b5e274d62a3ae8df9f4089756c6a9d4 -end0b5e274d62a3ae8df9f4089756c6a9d4: - ; return false } func rewriteValuegeneric_OpRsh32Ux16(v *Value, config *Config) bool { @@ -4463,11 +3932,11 @@ func rewriteValuegeneric_OpRsh32Ux16(v *Value, config *Config) bool { // match: (Rsh32Ux16 x (Const16 [c])) // cond: // result: (Rsh32Ux64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end8d8f9f3e2e1f7a5e9a186fb792fc40a8 + break } c := v.Args[1].AuxInt v.reset(OpRsh32Ux64) @@ -4477,9 +3946,6 @@ func rewriteValuegeneric_OpRsh32Ux16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end8d8f9f3e2e1f7a5e9a186fb792fc40a8 -end8d8f9f3e2e1f7a5e9a186fb792fc40a8: - ; return false } func rewriteValuegeneric_OpRsh32Ux32(v *Value, config *Config) bool { @@ -4488,11 +3954,11 @@ func rewriteValuegeneric_OpRsh32Ux32(v *Value, config *Config) bool { // match: (Rsh32Ux32 x (Const32 [c])) // cond: // result: (Rsh32Ux64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto endd23d060f74e00f34cc967b6fb9a4d320 + break } c := v.Args[1].AuxInt v.reset(OpRsh32Ux64) @@ -4502,9 +3968,6 @@ func rewriteValuegeneric_OpRsh32Ux32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endd23d060f74e00f34cc967b6fb9a4d320 -endd23d060f74e00f34cc967b6fb9a4d320: - ; return false } func rewriteValuegeneric_OpRsh32Ux64(v *Value, config *Config) bool { @@ -4513,78 +3976,69 @@ func rewriteValuegeneric_OpRsh32Ux64(v *Value, config *Config) bool { // match: (Rsh32Ux64 (Const32 [c]) (Const64 [d])) // cond: // result: (Const32 [int64(uint32(c) >> uint64(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto enda101e6b765d7ecffd9b7410c9dc3be82 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto enda101e6b765d7ecffd9b7410c9dc3be82 + break } d := v.Args[1].AuxInt v.reset(OpConst32) v.AuxInt = int64(uint32(c) >> uint64(d)) return true } - goto enda101e6b765d7ecffd9b7410c9dc3be82 -enda101e6b765d7ecffd9b7410c9dc3be82: - ; // match: (Rsh32Ux64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end162e4e182a665d4e6f0d85fe131e7288 + break } if v.Args[1].AuxInt != 0 { - goto end162e4e182a665d4e6f0d85fe131e7288 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end162e4e182a665d4e6f0d85fe131e7288 -end162e4e182a665d4e6f0d85fe131e7288: - ; // match: (Rsh32Ux64 _ (Const64 [c])) // cond: uint64(c) >= 32 // result: (Const64 [0]) - { + for { if v.Args[1].Op != OpConst64 { - goto endca322c370839b4264b219ee042a6ab33 + break } c := v.Args[1].AuxInt if !(uint64(c) >= 32) { - goto endca322c370839b4264b219ee042a6ab33 + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto endca322c370839b4264b219ee042a6ab33 -endca322c370839b4264b219ee042a6ab33: - ; // match: (Rsh32Ux64 (Rsh32Ux64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Rsh32Ux64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpRsh32Ux64 { - goto end2e502d68a32663142684194adbe6c297 + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto end2e502d68a32663142684194adbe6c297 + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto end2e502d68a32663142684194adbe6c297 + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto end2e502d68a32663142684194adbe6c297 + break } v.reset(OpRsh32Ux64) v.AddArg(x) @@ -4593,9 +4047,6 @@ endca322c370839b4264b219ee042a6ab33: v.AddArg(v0) return true } - goto end2e502d68a32663142684194adbe6c297 -end2e502d68a32663142684194adbe6c297: - ; return false } func rewriteValuegeneric_OpRsh32Ux8(v *Value, config *Config) bool { @@ -4604,11 +4055,11 @@ func rewriteValuegeneric_OpRsh32Ux8(v *Value, config *Config) bool { // match: (Rsh32Ux8 x (Const8 [c])) // cond: // result: (Rsh32Ux64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end967cea80158afaffb783f6da7aa898ca + break } c := v.Args[1].AuxInt v.reset(OpRsh32Ux64) @@ -4618,9 +4069,6 @@ func rewriteValuegeneric_OpRsh32Ux8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end967cea80158afaffb783f6da7aa898ca -end967cea80158afaffb783f6da7aa898ca: - ; return false } func rewriteValuegeneric_OpRsh32x16(v *Value, config *Config) bool { @@ -4629,11 +4077,11 @@ func rewriteValuegeneric_OpRsh32x16(v *Value, config *Config) bool { // match: (Rsh32x16 x (Const16 [c])) // cond: // result: (Rsh32x64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end6a62ebdcc98ea2e3214559214708d26a + break } c := v.Args[1].AuxInt v.reset(OpRsh32x64) @@ -4643,9 +4091,6 @@ func rewriteValuegeneric_OpRsh32x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end6a62ebdcc98ea2e3214559214708d26a -end6a62ebdcc98ea2e3214559214708d26a: - ; return false } func rewriteValuegeneric_OpRsh32x32(v *Value, config *Config) bool { @@ -4654,11 +4099,11 @@ func rewriteValuegeneric_OpRsh32x32(v *Value, config *Config) bool { // match: (Rsh32x32 x (Const32 [c])) // cond: // result: (Rsh32x64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end6e3b467acdca74f58e9177fb42a1968b + break } c := v.Args[1].AuxInt v.reset(OpRsh32x64) @@ -4668,9 +4113,6 @@ func rewriteValuegeneric_OpRsh32x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end6e3b467acdca74f58e9177fb42a1968b -end6e3b467acdca74f58e9177fb42a1968b: - ; return false } func rewriteValuegeneric_OpRsh32x64(v *Value, config *Config) bool { @@ -4679,60 +4121,54 @@ func rewriteValuegeneric_OpRsh32x64(v *Value, config *Config) bool { // match: (Rsh32x64 (Const32 [c]) (Const64 [d])) // cond: // result: (Const32 [int64(int32(c) >> uint64(d))]) - { + for { if v.Args[0].Op != OpConst32 { - goto end7e4b8c499cffe1fef73a16e6be54d4d2 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end7e4b8c499cffe1fef73a16e6be54d4d2 + break } d := v.Args[1].AuxInt v.reset(OpConst32) v.AuxInt = int64(int32(c) >> uint64(d)) return true } - goto end7e4b8c499cffe1fef73a16e6be54d4d2 -end7e4b8c499cffe1fef73a16e6be54d4d2: - ; // match: (Rsh32x64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end72da2611eaaffe407efa1cc45c23ade3 + break } if v.Args[1].AuxInt != 0 { - goto end72da2611eaaffe407efa1cc45c23ade3 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end72da2611eaaffe407efa1cc45c23ade3 -end72da2611eaaffe407efa1cc45c23ade3: - ; // match: (Rsh32x64 (Rsh32x64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Rsh32x64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpRsh32x64 { - goto endadb415be78ee46a8a4135ec50df772b0 + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto endadb415be78ee46a8a4135ec50df772b0 + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto endadb415be78ee46a8a4135ec50df772b0 + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto endadb415be78ee46a8a4135ec50df772b0 + break } v.reset(OpRsh32x64) v.AddArg(x) @@ -4741,9 +4177,6 @@ end72da2611eaaffe407efa1cc45c23ade3: v.AddArg(v0) return true } - goto endadb415be78ee46a8a4135ec50df772b0 -endadb415be78ee46a8a4135ec50df772b0: - ; return false } func rewriteValuegeneric_OpRsh32x8(v *Value, config *Config) bool { @@ -4752,11 +4185,11 @@ func rewriteValuegeneric_OpRsh32x8(v *Value, config *Config) bool { // match: (Rsh32x8 x (Const8 [c])) // cond: // result: (Rsh32x64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end7b59b42c5c68a2d55be469a0c086dd8b + break } c := v.Args[1].AuxInt v.reset(OpRsh32x64) @@ -4766,9 +4199,6 @@ func rewriteValuegeneric_OpRsh32x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end7b59b42c5c68a2d55be469a0c086dd8b -end7b59b42c5c68a2d55be469a0c086dd8b: - ; return false } func rewriteValuegeneric_OpRsh64Ux16(v *Value, config *Config) bool { @@ -4777,11 +4207,11 @@ func rewriteValuegeneric_OpRsh64Ux16(v *Value, config *Config) bool { // match: (Rsh64Ux16 x (Const16 [c])) // cond: // result: (Rsh64Ux64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end733d85a7b599bcba969ca1cb4bdb9e48 + break } c := v.Args[1].AuxInt v.reset(OpRsh64Ux64) @@ -4791,9 +4221,6 @@ func rewriteValuegeneric_OpRsh64Ux16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end733d85a7b599bcba969ca1cb4bdb9e48 -end733d85a7b599bcba969ca1cb4bdb9e48: - ; return false } func rewriteValuegeneric_OpRsh64Ux32(v *Value, config *Config) bool { @@ -4802,11 +4229,11 @@ func rewriteValuegeneric_OpRsh64Ux32(v *Value, config *Config) bool { // match: (Rsh64Ux32 x (Const32 [c])) // cond: // result: (Rsh64Ux64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto endeac7b34169de1fb0393b833e65b9bb19 + break } c := v.Args[1].AuxInt v.reset(OpRsh64Ux64) @@ -4816,9 +4243,6 @@ func rewriteValuegeneric_OpRsh64Ux32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endeac7b34169de1fb0393b833e65b9bb19 -endeac7b34169de1fb0393b833e65b9bb19: - ; return false } func rewriteValuegeneric_OpRsh64Ux64(v *Value, config *Config) bool { @@ -4827,78 +4251,69 @@ func rewriteValuegeneric_OpRsh64Ux64(v *Value, config *Config) bool { // match: (Rsh64Ux64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [int64(uint64(c) >> uint64(d))]) - { + for { if v.Args[0].Op != OpConst64 { - goto end102f4cfd7979a2aa222d52c34ac6802d + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end102f4cfd7979a2aa222d52c34ac6802d + break } d := v.Args[1].AuxInt v.reset(OpConst64) v.AuxInt = int64(uint64(c) >> uint64(d)) return true } - goto end102f4cfd7979a2aa222d52c34ac6802d -end102f4cfd7979a2aa222d52c34ac6802d: - ; // match: (Rsh64Ux64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end5ad037b910698f2847df90177c23a6ac + break } if v.Args[1].AuxInt != 0 { - goto end5ad037b910698f2847df90177c23a6ac + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end5ad037b910698f2847df90177c23a6ac -end5ad037b910698f2847df90177c23a6ac: - ; // match: (Rsh64Ux64 _ (Const64 [c])) // cond: uint64(c) >= 64 // result: (Const64 [0]) - { + for { if v.Args[1].Op != OpConst64 { - goto end16ea16aa61862207ea64e514369d608b + break } c := v.Args[1].AuxInt if !(uint64(c) >= 64) { - goto end16ea16aa61862207ea64e514369d608b + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto end16ea16aa61862207ea64e514369d608b -end16ea16aa61862207ea64e514369d608b: - ; // match: (Rsh64Ux64 (Rsh64Ux64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Rsh64Ux64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpRsh64Ux64 { - goto end32bfdb1b4ccc23a5cd62fc0348ebd877 + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto end32bfdb1b4ccc23a5cd62fc0348ebd877 + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto end32bfdb1b4ccc23a5cd62fc0348ebd877 + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto end32bfdb1b4ccc23a5cd62fc0348ebd877 + break } v.reset(OpRsh64Ux64) v.AddArg(x) @@ -4907,9 +4322,6 @@ end16ea16aa61862207ea64e514369d608b: v.AddArg(v0) return true } - goto end32bfdb1b4ccc23a5cd62fc0348ebd877 -end32bfdb1b4ccc23a5cd62fc0348ebd877: - ; return false } func rewriteValuegeneric_OpRsh64Ux8(v *Value, config *Config) bool { @@ -4918,11 +4330,11 @@ func rewriteValuegeneric_OpRsh64Ux8(v *Value, config *Config) bool { // match: (Rsh64Ux8 x (Const8 [c])) // cond: // result: (Rsh64Ux64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto ende3d8090a67a52dbcd24b52ee32c9d7f0 + break } c := v.Args[1].AuxInt v.reset(OpRsh64Ux64) @@ -4932,9 +4344,6 @@ func rewriteValuegeneric_OpRsh64Ux8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto ende3d8090a67a52dbcd24b52ee32c9d7f0 -ende3d8090a67a52dbcd24b52ee32c9d7f0: - ; return false } func rewriteValuegeneric_OpRsh64x16(v *Value, config *Config) bool { @@ -4943,11 +4352,11 @@ func rewriteValuegeneric_OpRsh64x16(v *Value, config *Config) bool { // match: (Rsh64x16 x (Const16 [c])) // cond: // result: (Rsh64x64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto endd5151d0bfc38c55ae6ae6836014df3bc + break } c := v.Args[1].AuxInt v.reset(OpRsh64x64) @@ -4957,9 +4366,6 @@ func rewriteValuegeneric_OpRsh64x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endd5151d0bfc38c55ae6ae6836014df3bc -endd5151d0bfc38c55ae6ae6836014df3bc: - ; return false } func rewriteValuegeneric_OpRsh64x32(v *Value, config *Config) bool { @@ -4968,11 +4374,11 @@ func rewriteValuegeneric_OpRsh64x32(v *Value, config *Config) bool { // match: (Rsh64x32 x (Const32 [c])) // cond: // result: (Rsh64x64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end0f2dbca5c7d6b100890c94a97bf0de7c + break } c := v.Args[1].AuxInt v.reset(OpRsh64x64) @@ -4982,9 +4388,6 @@ func rewriteValuegeneric_OpRsh64x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end0f2dbca5c7d6b100890c94a97bf0de7c -end0f2dbca5c7d6b100890c94a97bf0de7c: - ; return false } func rewriteValuegeneric_OpRsh64x64(v *Value, config *Config) bool { @@ -4993,60 +4396,54 @@ func rewriteValuegeneric_OpRsh64x64(v *Value, config *Config) bool { // match: (Rsh64x64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c >> uint64(d)]) - { + for { if v.Args[0].Op != OpConst64 { - goto endfa4609d6bea8a3e3d3a777b1968c97d9 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto endfa4609d6bea8a3e3d3a777b1968c97d9 + break } d := v.Args[1].AuxInt v.reset(OpConst64) v.AuxInt = c >> uint64(d) return true } - goto endfa4609d6bea8a3e3d3a777b1968c97d9 -endfa4609d6bea8a3e3d3a777b1968c97d9: - ; // match: (Rsh64x64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto ende62e0c67d3f04eb221646371a2a91d05 + break } if v.Args[1].AuxInt != 0 { - goto ende62e0c67d3f04eb221646371a2a91d05 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto ende62e0c67d3f04eb221646371a2a91d05 -ende62e0c67d3f04eb221646371a2a91d05: - ; // match: (Rsh64x64 (Rsh64x64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Rsh64x64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpRsh64x64 { - goto endd3e8ea66dc3ad0bc393001d6babb7160 + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto endd3e8ea66dc3ad0bc393001d6babb7160 + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto endd3e8ea66dc3ad0bc393001d6babb7160 + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto endd3e8ea66dc3ad0bc393001d6babb7160 + break } v.reset(OpRsh64x64) v.AddArg(x) @@ -5055,9 +4452,6 @@ ende62e0c67d3f04eb221646371a2a91d05: v.AddArg(v0) return true } - goto endd3e8ea66dc3ad0bc393001d6babb7160 -endd3e8ea66dc3ad0bc393001d6babb7160: - ; return false } func rewriteValuegeneric_OpRsh64x8(v *Value, config *Config) bool { @@ -5066,11 +4460,11 @@ func rewriteValuegeneric_OpRsh64x8(v *Value, config *Config) bool { // match: (Rsh64x8 x (Const8 [c])) // cond: // result: (Rsh64x64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end1a9e5a89849344396210da7c7ec810be + break } c := v.Args[1].AuxInt v.reset(OpRsh64x64) @@ -5080,9 +4474,6 @@ func rewriteValuegeneric_OpRsh64x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end1a9e5a89849344396210da7c7ec810be -end1a9e5a89849344396210da7c7ec810be: - ; return false } func rewriteValuegeneric_OpRsh8Ux16(v *Value, config *Config) bool { @@ -5091,11 +4482,11 @@ func rewriteValuegeneric_OpRsh8Ux16(v *Value, config *Config) bool { // match: (Rsh8Ux16 x (Const16 [c])) // cond: // result: (Rsh8Ux64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end7acc015610273092e9efcce2949ee0f9 + break } c := v.Args[1].AuxInt v.reset(OpRsh8Ux64) @@ -5105,9 +4496,6 @@ func rewriteValuegeneric_OpRsh8Ux16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end7acc015610273092e9efcce2949ee0f9 -end7acc015610273092e9efcce2949ee0f9: - ; return false } func rewriteValuegeneric_OpRsh8Ux32(v *Value, config *Config) bool { @@ -5116,11 +4504,11 @@ func rewriteValuegeneric_OpRsh8Ux32(v *Value, config *Config) bool { // match: (Rsh8Ux32 x (Const32 [c])) // cond: // result: (Rsh8Ux64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end27e9b4472e085b653a105b1d67554ce8 + break } c := v.Args[1].AuxInt v.reset(OpRsh8Ux64) @@ -5130,9 +4518,6 @@ func rewriteValuegeneric_OpRsh8Ux32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end27e9b4472e085b653a105b1d67554ce8 -end27e9b4472e085b653a105b1d67554ce8: - ; return false } func rewriteValuegeneric_OpRsh8Ux64(v *Value, config *Config) bool { @@ -5141,78 +4526,69 @@ func rewriteValuegeneric_OpRsh8Ux64(v *Value, config *Config) bool { // match: (Rsh8Ux64 (Const8 [c]) (Const64 [d])) // cond: // result: (Const8 [int64(uint8(c) >> uint64(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto enddd166e450d81ba7b466d61d2fbec178c + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto enddd166e450d81ba7b466d61d2fbec178c + break } d := v.Args[1].AuxInt v.reset(OpConst8) v.AuxInt = int64(uint8(c) >> uint64(d)) return true } - goto enddd166e450d81ba7b466d61d2fbec178c -enddd166e450d81ba7b466d61d2fbec178c: - ; // match: (Rsh8Ux64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end570cb1d9db3c7bebd85e485eeb2c0969 + break } if v.Args[1].AuxInt != 0 { - goto end570cb1d9db3c7bebd85e485eeb2c0969 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end570cb1d9db3c7bebd85e485eeb2c0969 -end570cb1d9db3c7bebd85e485eeb2c0969: - ; // match: (Rsh8Ux64 _ (Const64 [c])) // cond: uint64(c) >= 8 // result: (Const64 [0]) - { + for { if v.Args[1].Op != OpConst64 { - goto endb63e1a7d1d91716ca0d9d74215361323 + break } c := v.Args[1].AuxInt if !(uint64(c) >= 8) { - goto endb63e1a7d1d91716ca0d9d74215361323 + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto endb63e1a7d1d91716ca0d9d74215361323 -endb63e1a7d1d91716ca0d9d74215361323: - ; // match: (Rsh8Ux64 (Rsh8Ux64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Rsh8Ux64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpRsh8Ux64 { - goto endee8824b7071ed1a6dba4fcbaab98229e + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto endee8824b7071ed1a6dba4fcbaab98229e + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto endee8824b7071ed1a6dba4fcbaab98229e + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto endee8824b7071ed1a6dba4fcbaab98229e + break } v.reset(OpRsh8Ux64) v.AddArg(x) @@ -5221,9 +4597,6 @@ endb63e1a7d1d91716ca0d9d74215361323: v.AddArg(v0) return true } - goto endee8824b7071ed1a6dba4fcbaab98229e -endee8824b7071ed1a6dba4fcbaab98229e: - ; return false } func rewriteValuegeneric_OpRsh8Ux8(v *Value, config *Config) bool { @@ -5232,11 +4605,11 @@ func rewriteValuegeneric_OpRsh8Ux8(v *Value, config *Config) bool { // match: (Rsh8Ux8 x (Const8 [c])) // cond: // result: (Rsh8Ux64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto ended7e4f4d9ab89dc26e6649d466577930 + break } c := v.Args[1].AuxInt v.reset(OpRsh8Ux64) @@ -5246,9 +4619,6 @@ func rewriteValuegeneric_OpRsh8Ux8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto ended7e4f4d9ab89dc26e6649d466577930 -ended7e4f4d9ab89dc26e6649d466577930: - ; return false } func rewriteValuegeneric_OpRsh8x16(v *Value, config *Config) bool { @@ -5257,11 +4627,11 @@ func rewriteValuegeneric_OpRsh8x16(v *Value, config *Config) bool { // match: (Rsh8x16 x (Const16 [c])) // cond: // result: (Rsh8x64 x (Const64 [int64(uint16(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end136bef6f60180bc8b4befbfc370af7ef + break } c := v.Args[1].AuxInt v.reset(OpRsh8x64) @@ -5271,9 +4641,6 @@ func rewriteValuegeneric_OpRsh8x16(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end136bef6f60180bc8b4befbfc370af7ef -end136bef6f60180bc8b4befbfc370af7ef: - ; return false } func rewriteValuegeneric_OpRsh8x32(v *Value, config *Config) bool { @@ -5282,11 +4649,11 @@ func rewriteValuegeneric_OpRsh8x32(v *Value, config *Config) bool { // match: (Rsh8x32 x (Const32 [c])) // cond: // result: (Rsh8x64 x (Const64 [int64(uint32(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end2ef95c222a7c552fa9cc86e36196644e + break } c := v.Args[1].AuxInt v.reset(OpRsh8x64) @@ -5296,9 +4663,6 @@ func rewriteValuegeneric_OpRsh8x32(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto end2ef95c222a7c552fa9cc86e36196644e -end2ef95c222a7c552fa9cc86e36196644e: - ; return false } func rewriteValuegeneric_OpRsh8x64(v *Value, config *Config) bool { @@ -5307,60 +4671,54 @@ func rewriteValuegeneric_OpRsh8x64(v *Value, config *Config) bool { // match: (Rsh8x64 (Const8 [c]) (Const64 [d])) // cond: // result: (Const8 [int64(int8(c) >> uint64(d))]) - { + for { if v.Args[0].Op != OpConst8 { - goto end3b90206d75365466dfd1368e5b69db35 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end3b90206d75365466dfd1368e5b69db35 + break } d := v.Args[1].AuxInt v.reset(OpConst8) v.AuxInt = int64(int8(c) >> uint64(d)) return true } - goto end3b90206d75365466dfd1368e5b69db35 -end3b90206d75365466dfd1368e5b69db35: - ; // match: (Rsh8x64 x (Const64 [0])) // cond: // result: x - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto end1e664cc720a11d1c769de8081cfa1de4 + break } if v.Args[1].AuxInt != 0 { - goto end1e664cc720a11d1c769de8081cfa1de4 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end1e664cc720a11d1c769de8081cfa1de4 -end1e664cc720a11d1c769de8081cfa1de4: - ; // match: (Rsh8x64 (Rsh8x64 x (Const64 [c])) (Const64 [d])) // cond: !uaddOvf(c,d) // result: (Rsh8x64 x (Const64 [c+d])) - { + for { t := v.Type if v.Args[0].Op != OpRsh8x64 { - goto end6408685a7276af7e76ec086f359c942c + break } x := v.Args[0].Args[0] if v.Args[0].Args[1].Op != OpConst64 { - goto end6408685a7276af7e76ec086f359c942c + break } c := v.Args[0].Args[1].AuxInt if v.Args[1].Op != OpConst64 { - goto end6408685a7276af7e76ec086f359c942c + break } d := v.Args[1].AuxInt if !(!uaddOvf(c, d)) { - goto end6408685a7276af7e76ec086f359c942c + break } v.reset(OpRsh8x64) v.AddArg(x) @@ -5369,9 +4727,6 @@ end1e664cc720a11d1c769de8081cfa1de4: v.AddArg(v0) return true } - goto end6408685a7276af7e76ec086f359c942c -end6408685a7276af7e76ec086f359c942c: - ; return false } func rewriteValuegeneric_OpRsh8x8(v *Value, config *Config) bool { @@ -5380,11 +4735,11 @@ func rewriteValuegeneric_OpRsh8x8(v *Value, config *Config) bool { // match: (Rsh8x8 x (Const8 [c])) // cond: // result: (Rsh8x64 x (Const64 [int64(uint8(c))])) - { + for { t := v.Type x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto endae44f60f364cddd8903763dd921a007e + break } c := v.Args[1].AuxInt v.reset(OpRsh8x64) @@ -5394,9 +4749,6 @@ func rewriteValuegeneric_OpRsh8x8(v *Value, config *Config) bool { v.AddArg(v0) return true } - goto endae44f60f364cddd8903763dd921a007e -endae44f60f364cddd8903763dd921a007e: - ; return false } func rewriteValuegeneric_OpSliceCap(v *Value, config *Config) bool { @@ -5405,9 +4757,9 @@ func rewriteValuegeneric_OpSliceCap(v *Value, config *Config) bool { // match: (SliceCap (SliceMake _ _ cap)) // cond: // result: cap - { + for { if v.Args[0].Op != OpSliceMake { - goto end1bd11616743632b33b410964667fb3c6 + break } cap := v.Args[0].Args[2] v.reset(OpCopy) @@ -5415,9 +4767,6 @@ func rewriteValuegeneric_OpSliceCap(v *Value, config *Config) bool { v.AddArg(cap) return true } - goto end1bd11616743632b33b410964667fb3c6 -end1bd11616743632b33b410964667fb3c6: - ; return false } func rewriteValuegeneric_OpSliceLen(v *Value, config *Config) bool { @@ -5426,9 +4775,9 @@ func rewriteValuegeneric_OpSliceLen(v *Value, config *Config) bool { // match: (SliceLen (SliceMake _ len _)) // cond: // result: len - { + for { if v.Args[0].Op != OpSliceMake { - goto endebb2090199d13e4c2ae52fb3e778f7fd + break } len := v.Args[0].Args[1] v.reset(OpCopy) @@ -5436,9 +4785,6 @@ func rewriteValuegeneric_OpSliceLen(v *Value, config *Config) bool { v.AddArg(len) return true } - goto endebb2090199d13e4c2ae52fb3e778f7fd -endebb2090199d13e4c2ae52fb3e778f7fd: - ; return false } func rewriteValuegeneric_OpSlicePtr(v *Value, config *Config) bool { @@ -5447,9 +4793,9 @@ func rewriteValuegeneric_OpSlicePtr(v *Value, config *Config) bool { // match: (SlicePtr (SliceMake ptr _ _ )) // cond: // result: ptr - { + for { if v.Args[0].Op != OpSliceMake { - goto end526acc0a705137a5d25577499206720b + break } ptr := v.Args[0].Args[0] v.reset(OpCopy) @@ -5457,9 +4803,6 @@ func rewriteValuegeneric_OpSlicePtr(v *Value, config *Config) bool { v.AddArg(ptr) return true } - goto end526acc0a705137a5d25577499206720b -end526acc0a705137a5d25577499206720b: - ; return false } func rewriteValuegeneric_OpStore(v *Value, config *Config) bool { @@ -5468,9 +4811,9 @@ func rewriteValuegeneric_OpStore(v *Value, config *Config) bool { // match: (Store _ (StructMake0) mem) // cond: // result: mem - { + for { if v.Args[1].Op != OpStructMake0 { - goto endd4f364b0adfc229d8c200af183d4c808 + break } mem := v.Args[2] v.reset(OpCopy) @@ -5478,16 +4821,13 @@ func rewriteValuegeneric_OpStore(v *Value, config *Config) bool { v.AddArg(mem) return true } - goto endd4f364b0adfc229d8c200af183d4c808 -endd4f364b0adfc229d8c200af183d4c808: - ; // match: (Store dst (StructMake1 f0) mem) // cond: // result: (Store [t.FieldType(0).Size()] dst f0 mem) - { + for { dst := v.Args[0] if v.Args[1].Op != OpStructMake1 { - goto end2cff6d06f4440132f48ca374b6b1e9d8 + break } t := v.Args[1].Type f0 := v.Args[1].Args[0] @@ -5499,16 +4839,13 @@ endd4f364b0adfc229d8c200af183d4c808: v.AddArg(mem) return true } - goto end2cff6d06f4440132f48ca374b6b1e9d8 -end2cff6d06f4440132f48ca374b6b1e9d8: - ; // match: (Store dst (StructMake2 f0 f1) mem) // cond: // result: (Store [t.FieldType(1).Size()] (OffPtr [t.FieldOff(1)] dst) f1 (Store [t.FieldType(0).Size()] dst f0 mem)) - { + for { dst := v.Args[0] if v.Args[1].Op != OpStructMake2 { - goto end4e8ede6cc575a287795971da6b637973 + break } t := v.Args[1].Type f0 := v.Args[1].Args[0] @@ -5529,16 +4866,13 @@ end2cff6d06f4440132f48ca374b6b1e9d8: v.AddArg(v1) return true } - goto end4e8ede6cc575a287795971da6b637973 -end4e8ede6cc575a287795971da6b637973: - ; // match: (Store dst (StructMake3 f0 f1 f2) mem) // cond: // result: (Store [t.FieldType(2).Size()] (OffPtr [t.FieldOff(2)] dst) f2 (Store [t.FieldType(1).Size()] (OffPtr [t.FieldOff(1)] dst) f1 (Store [t.FieldType(0).Size()] dst f0 mem))) - { + for { dst := v.Args[0] if v.Args[1].Op != OpStructMake3 { - goto end6ad675267724a87c8f852dd1e185e911 + break } t := v.Args[1].Type f0 := v.Args[1].Args[0] @@ -5568,16 +4902,13 @@ end4e8ede6cc575a287795971da6b637973: v.AddArg(v1) return true } - goto end6ad675267724a87c8f852dd1e185e911 -end6ad675267724a87c8f852dd1e185e911: - ; // match: (Store dst (StructMake4 f0 f1 f2 f3) mem) // cond: // result: (Store [t.FieldType(3).Size()] (OffPtr [t.FieldOff(3)] dst) f3 (Store [t.FieldType(2).Size()] (OffPtr [t.FieldOff(2)] dst) f2 (Store [t.FieldType(1).Size()] (OffPtr [t.FieldOff(1)] dst) f1 (Store [t.FieldType(0).Size()] dst f0 mem)))) - { + for { dst := v.Args[0] if v.Args[1].Op != OpStructMake4 { - goto end7ea91abd44794f7653374502a5a405ea + break } t := v.Args[1].Type f0 := v.Args[1].Args[0] @@ -5616,19 +4947,16 @@ end6ad675267724a87c8f852dd1e185e911: v.AddArg(v1) return true } - goto end7ea91abd44794f7653374502a5a405ea -end7ea91abd44794f7653374502a5a405ea: - ; // match: (Store [8] dst (ComplexMake real imag) mem) // cond: // result: (Store [4] (OffPtr [4] dst) imag (Store [4] dst real mem)) - { + for { if v.AuxInt != 8 { - goto endced898cb0a165662afe48ea44ad3318a + break } dst := v.Args[0] if v.Args[1].Op != OpComplexMake { - goto endced898cb0a165662afe48ea44ad3318a + break } real := v.Args[1].Args[0] imag := v.Args[1].Args[1] @@ -5648,19 +4976,16 @@ end7ea91abd44794f7653374502a5a405ea: v.AddArg(v1) return true } - goto endced898cb0a165662afe48ea44ad3318a -endced898cb0a165662afe48ea44ad3318a: - ; // match: (Store [16] dst (ComplexMake real imag) mem) // cond: // result: (Store [8] (OffPtr [8] dst) imag (Store [8] dst real mem)) - { + for { if v.AuxInt != 16 { - goto end3851a482d7bd37a93c4d81581e85b3ab + break } dst := v.Args[0] if v.Args[1].Op != OpComplexMake { - goto end3851a482d7bd37a93c4d81581e85b3ab + break } real := v.Args[1].Args[0] imag := v.Args[1].Args[1] @@ -5680,19 +5005,16 @@ endced898cb0a165662afe48ea44ad3318a: v.AddArg(v1) return true } - goto end3851a482d7bd37a93c4d81581e85b3ab -end3851a482d7bd37a93c4d81581e85b3ab: - ; // match: (Store [2*config.PtrSize] dst (StringMake ptr len) mem) // cond: // result: (Store [config.PtrSize] (OffPtr [config.PtrSize] dst) len (Store [config.PtrSize] dst ptr mem)) - { + for { if v.AuxInt != 2*config.PtrSize { - goto endd3a6ecebdad5899570a79fe5c62f34f1 + break } dst := v.Args[0] if v.Args[1].Op != OpStringMake { - goto endd3a6ecebdad5899570a79fe5c62f34f1 + break } ptr := v.Args[1].Args[0] len := v.Args[1].Args[1] @@ -5712,19 +5034,16 @@ end3851a482d7bd37a93c4d81581e85b3ab: v.AddArg(v1) return true } - goto endd3a6ecebdad5899570a79fe5c62f34f1 -endd3a6ecebdad5899570a79fe5c62f34f1: - ; // match: (Store [3*config.PtrSize] dst (SliceMake ptr len cap) mem) // cond: // result: (Store [config.PtrSize] (OffPtr [2*config.PtrSize] dst) cap (Store [config.PtrSize] (OffPtr [config.PtrSize] dst) len (Store [config.PtrSize] dst ptr mem))) - { + for { if v.AuxInt != 3*config.PtrSize { - goto endd5cc8c3dad7d24c845b0b88fc51487ae + break } dst := v.Args[0] if v.Args[1].Op != OpSliceMake { - goto endd5cc8c3dad7d24c845b0b88fc51487ae + break } ptr := v.Args[1].Args[0] len := v.Args[1].Args[1] @@ -5753,19 +5072,16 @@ endd3a6ecebdad5899570a79fe5c62f34f1: v.AddArg(v1) return true } - goto endd5cc8c3dad7d24c845b0b88fc51487ae -endd5cc8c3dad7d24c845b0b88fc51487ae: - ; // match: (Store [2*config.PtrSize] dst (IMake itab data) mem) // cond: // result: (Store [config.PtrSize] (OffPtr [config.PtrSize] dst) data (Store [config.PtrSize] dst itab mem)) - { + for { if v.AuxInt != 2*config.PtrSize { - goto endaa801a871178ae3256b3f6f5d9f13514 + break } dst := v.Args[0] if v.Args[1].Op != OpIMake { - goto endaa801a871178ae3256b3f6f5d9f13514 + break } itab := v.Args[1].Args[0] data := v.Args[1].Args[1] @@ -5785,26 +5101,23 @@ endd5cc8c3dad7d24c845b0b88fc51487ae: v.AddArg(v1) return true } - goto endaa801a871178ae3256b3f6f5d9f13514 -endaa801a871178ae3256b3f6f5d9f13514: - ; // match: (Store [size] dst (Load src mem) mem) // cond: !config.fe.CanSSA(t) // result: (Move [size] dst src mem) - { + for { size := v.AuxInt dst := v.Args[0] if v.Args[1].Op != OpLoad { - goto end45295326269ba18413dceb7b608a0b9d + break } t := v.Args[1].Type src := v.Args[1].Args[0] mem := v.Args[1].Args[1] if v.Args[2] != mem { - goto end45295326269ba18413dceb7b608a0b9d + break } if !(!config.fe.CanSSA(t)) { - goto end45295326269ba18413dceb7b608a0b9d + break } v.reset(OpMove) v.AuxInt = size @@ -5813,30 +5126,27 @@ endaa801a871178ae3256b3f6f5d9f13514: v.AddArg(mem) return true } - goto end45295326269ba18413dceb7b608a0b9d -end45295326269ba18413dceb7b608a0b9d: - ; // match: (Store [size] dst (Load src mem) (VarDef {x} mem)) // cond: !config.fe.CanSSA(t) // result: (Move [size] dst src (VarDef {x} mem)) - { + for { size := v.AuxInt dst := v.Args[0] if v.Args[1].Op != OpLoad { - goto end7f3cc0baffb82ba3ee879599b189a512 + break } t := v.Args[1].Type src := v.Args[1].Args[0] mem := v.Args[1].Args[1] if v.Args[2].Op != OpVarDef { - goto end7f3cc0baffb82ba3ee879599b189a512 + break } x := v.Args[2].Aux if v.Args[2].Args[0] != mem { - goto end7f3cc0baffb82ba3ee879599b189a512 + break } if !(!config.fe.CanSSA(t)) { - goto end7f3cc0baffb82ba3ee879599b189a512 + break } v.reset(OpMove) v.AuxInt = size @@ -5848,9 +5158,6 @@ end45295326269ba18413dceb7b608a0b9d: v.AddArg(v0) return true } - goto end7f3cc0baffb82ba3ee879599b189a512 -end7f3cc0baffb82ba3ee879599b189a512: - ; return false } func rewriteValuegeneric_OpStringLen(v *Value, config *Config) bool { @@ -5859,9 +5166,9 @@ func rewriteValuegeneric_OpStringLen(v *Value, config *Config) bool { // match: (StringLen (StringMake _ len)) // cond: // result: len - { + for { if v.Args[0].Op != OpStringMake { - goto end0d922460b7e5ca88324034f4bd6c027c + break } len := v.Args[0].Args[1] v.reset(OpCopy) @@ -5869,9 +5176,6 @@ func rewriteValuegeneric_OpStringLen(v *Value, config *Config) bool { v.AddArg(len) return true } - goto end0d922460b7e5ca88324034f4bd6c027c -end0d922460b7e5ca88324034f4bd6c027c: - ; return false } func rewriteValuegeneric_OpStringPtr(v *Value, config *Config) bool { @@ -5880,9 +5184,9 @@ func rewriteValuegeneric_OpStringPtr(v *Value, config *Config) bool { // match: (StringPtr (StringMake ptr _)) // cond: // result: ptr - { + for { if v.Args[0].Op != OpStringMake { - goto end061edc5d85c73ad909089af2556d9380 + break } ptr := v.Args[0].Args[0] v.reset(OpCopy) @@ -5890,9 +5194,6 @@ func rewriteValuegeneric_OpStringPtr(v *Value, config *Config) bool { v.AddArg(ptr) return true } - goto end061edc5d85c73ad909089af2556d9380 -end061edc5d85c73ad909089af2556d9380: - ; return false } func rewriteValuegeneric_OpStructSelect(v *Value, config *Config) bool { @@ -5901,9 +5202,9 @@ func rewriteValuegeneric_OpStructSelect(v *Value, config *Config) bool { // match: (StructSelect (StructMake1 x)) // cond: // result: x - { + for { if v.Args[0].Op != OpStructMake1 { - goto end17af582e7eba5216b4a51fe6c9206d3c + break } x := v.Args[0].Args[0] v.reset(OpCopy) @@ -5911,18 +5212,15 @@ func rewriteValuegeneric_OpStructSelect(v *Value, config *Config) bool { v.AddArg(x) return true } - goto end17af582e7eba5216b4a51fe6c9206d3c -end17af582e7eba5216b4a51fe6c9206d3c: - ; // match: (StructSelect [0] (StructMake2 x _)) // cond: // result: x - { + for { if v.AuxInt != 0 { - goto end355cfff99c8e9af975c3ae450d49b7f9 + break } if v.Args[0].Op != OpStructMake2 { - goto end355cfff99c8e9af975c3ae450d49b7f9 + break } x := v.Args[0].Args[0] v.reset(OpCopy) @@ -5930,18 +5228,15 @@ end17af582e7eba5216b4a51fe6c9206d3c: v.AddArg(x) return true } - goto end355cfff99c8e9af975c3ae450d49b7f9 -end355cfff99c8e9af975c3ae450d49b7f9: - ; // match: (StructSelect [1] (StructMake2 _ x)) // cond: // result: x - { + for { if v.AuxInt != 1 { - goto end69baa65e494ef9ae154e0943b53734f9 + break } if v.Args[0].Op != OpStructMake2 { - goto end69baa65e494ef9ae154e0943b53734f9 + break } x := v.Args[0].Args[1] v.reset(OpCopy) @@ -5949,18 +5244,15 @@ end355cfff99c8e9af975c3ae450d49b7f9: v.AddArg(x) return true } - goto end69baa65e494ef9ae154e0943b53734f9 -end69baa65e494ef9ae154e0943b53734f9: - ; // match: (StructSelect [0] (StructMake3 x _ _)) // cond: // result: x - { + for { if v.AuxInt != 0 { - goto endb0d98e2c46bb51c9abd4c3543392e0ec + break } if v.Args[0].Op != OpStructMake3 { - goto endb0d98e2c46bb51c9abd4c3543392e0ec + break } x := v.Args[0].Args[0] v.reset(OpCopy) @@ -5968,18 +5260,15 @@ end69baa65e494ef9ae154e0943b53734f9: v.AddArg(x) return true } - goto endb0d98e2c46bb51c9abd4c3543392e0ec -endb0d98e2c46bb51c9abd4c3543392e0ec: - ; // match: (StructSelect [1] (StructMake3 _ x _)) // cond: // result: x - { + for { if v.AuxInt != 1 { - goto end2e40457286d26c2f14ad4fd127946773 + break } if v.Args[0].Op != OpStructMake3 { - goto end2e40457286d26c2f14ad4fd127946773 + break } x := v.Args[0].Args[1] v.reset(OpCopy) @@ -5987,18 +5276,15 @@ endb0d98e2c46bb51c9abd4c3543392e0ec: v.AddArg(x) return true } - goto end2e40457286d26c2f14ad4fd127946773 -end2e40457286d26c2f14ad4fd127946773: - ; // match: (StructSelect [2] (StructMake3 _ _ x)) // cond: // result: x - { + for { if v.AuxInt != 2 { - goto end3e3b96ad431206175d002ece87aa1409 + break } if v.Args[0].Op != OpStructMake3 { - goto end3e3b96ad431206175d002ece87aa1409 + break } x := v.Args[0].Args[2] v.reset(OpCopy) @@ -6006,18 +5292,15 @@ end2e40457286d26c2f14ad4fd127946773: v.AddArg(x) return true } - goto end3e3b96ad431206175d002ece87aa1409 -end3e3b96ad431206175d002ece87aa1409: - ; // match: (StructSelect [0] (StructMake4 x _ _ _)) // cond: // result: x - { + for { if v.AuxInt != 0 { - goto end09f8a1ffa3d8c3124bc6d4083b941108 + break } if v.Args[0].Op != OpStructMake4 { - goto end09f8a1ffa3d8c3124bc6d4083b941108 + break } x := v.Args[0].Args[0] v.reset(OpCopy) @@ -6025,18 +5308,15 @@ end3e3b96ad431206175d002ece87aa1409: v.AddArg(x) return true } - goto end09f8a1ffa3d8c3124bc6d4083b941108 -end09f8a1ffa3d8c3124bc6d4083b941108: - ; // match: (StructSelect [1] (StructMake4 _ x _ _)) // cond: // result: x - { + for { if v.AuxInt != 1 { - goto endd3ef25e605a927e9251be6d9221f4acf + break } if v.Args[0].Op != OpStructMake4 { - goto endd3ef25e605a927e9251be6d9221f4acf + break } x := v.Args[0].Args[1] v.reset(OpCopy) @@ -6044,18 +5324,15 @@ end09f8a1ffa3d8c3124bc6d4083b941108: v.AddArg(x) return true } - goto endd3ef25e605a927e9251be6d9221f4acf -endd3ef25e605a927e9251be6d9221f4acf: - ; // match: (StructSelect [2] (StructMake4 _ _ x _)) // cond: // result: x - { + for { if v.AuxInt != 2 { - goto end0438e22cc8f41123fa42009a81ee723a + break } if v.Args[0].Op != OpStructMake4 { - goto end0438e22cc8f41123fa42009a81ee723a + break } x := v.Args[0].Args[2] v.reset(OpCopy) @@ -6063,18 +5340,15 @@ endd3ef25e605a927e9251be6d9221f4acf: v.AddArg(x) return true } - goto end0438e22cc8f41123fa42009a81ee723a -end0438e22cc8f41123fa42009a81ee723a: - ; // match: (StructSelect [3] (StructMake4 _ _ _ x)) // cond: // result: x - { + for { if v.AuxInt != 3 { - goto end56a7c7781fee35eeff0a3652dc206012 + break } if v.Args[0].Op != OpStructMake4 { - goto end56a7c7781fee35eeff0a3652dc206012 + break } x := v.Args[0].Args[3] v.reset(OpCopy) @@ -6082,22 +5356,19 @@ end0438e22cc8f41123fa42009a81ee723a: v.AddArg(x) return true } - goto end56a7c7781fee35eeff0a3652dc206012 -end56a7c7781fee35eeff0a3652dc206012: - ; // match: (StructSelect [i] (Load ptr mem)) // cond: !config.fe.CanSSA(t) // result: @v.Args[0].Block (Load (OffPtr [t.FieldOff(i)] ptr) mem) - { + for { i := v.AuxInt if v.Args[0].Op != OpLoad { - goto end2afd47b4fcaaab7a73325bd8a75e3e8e + break } t := v.Args[0].Type ptr := v.Args[0].Args[0] mem := v.Args[0].Args[1] if !(!config.fe.CanSSA(t)) { - goto end2afd47b4fcaaab7a73325bd8a75e3e8e + break } v0 := v.Args[0].Block.NewValue0(v.Line, OpLoad, v.Type) v.reset(OpCopy) @@ -6109,9 +5380,6 @@ end56a7c7781fee35eeff0a3652dc206012: v0.AddArg(mem) return true } - goto end2afd47b4fcaaab7a73325bd8a75e3e8e -end2afd47b4fcaaab7a73325bd8a75e3e8e: - ; return false } func rewriteValuegeneric_OpSub16(v *Value, config *Config) bool { @@ -6120,34 +5388,31 @@ func rewriteValuegeneric_OpSub16(v *Value, config *Config) bool { // match: (Sub16 (Const16 [c]) (Const16 [d])) // cond: // result: (Const16 [c-d]) - { + for { if v.Args[0].Op != OpConst16 { - goto end5c6fab95c9dbeff5973119096bfd4e78 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst16 { - goto end5c6fab95c9dbeff5973119096bfd4e78 + break } d := v.Args[1].AuxInt v.reset(OpConst16) v.AuxInt = c - d return true } - goto end5c6fab95c9dbeff5973119096bfd4e78 -end5c6fab95c9dbeff5973119096bfd4e78: - ; // match: (Sub16 x (Const16 [c])) // cond: x.Op != OpConst16 // result: (Add16 (Const16 [-c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst16 { - goto end493545258a8e7e79d005b34c712ddd0c + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst16) { - goto end493545258a8e7e79d005b34c712ddd0c + break } v.reset(OpAdd16) v0 := b.NewValue0(v.Line, OpConst16, t) @@ -6156,64 +5421,52 @@ end5c6fab95c9dbeff5973119096bfd4e78: v.AddArg(x) return true } - goto end493545258a8e7e79d005b34c712ddd0c -end493545258a8e7e79d005b34c712ddd0c: - ; // match: (Sub16 x x) // cond: // result: (Const16 [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end83da541391be564f2a08464e674a49e7 + break } v.reset(OpConst16) v.AuxInt = 0 return true } - goto end83da541391be564f2a08464e674a49e7 -end83da541391be564f2a08464e674a49e7: - ; // match: (Sub16 (Add16 x y) x) // cond: // result: y - { + for { if v.Args[0].Op != OpAdd16 { - goto end0dd8f250c457b9c005ecbed59fc2e758 + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.Args[1] != x { - goto end0dd8f250c457b9c005ecbed59fc2e758 + break } v.reset(OpCopy) v.Type = y.Type v.AddArg(y) return true } - goto end0dd8f250c457b9c005ecbed59fc2e758 -end0dd8f250c457b9c005ecbed59fc2e758: - ; // match: (Sub16 (Add16 x y) y) // cond: // result: x - { + for { if v.Args[0].Op != OpAdd16 { - goto end01c8db2e0bce69e048cf79f3bdc82b9b + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.Args[1] != y { - goto end01c8db2e0bce69e048cf79f3bdc82b9b + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end01c8db2e0bce69e048cf79f3bdc82b9b -end01c8db2e0bce69e048cf79f3bdc82b9b: - ; return false } func rewriteValuegeneric_OpSub32(v *Value, config *Config) bool { @@ -6222,34 +5475,31 @@ func rewriteValuegeneric_OpSub32(v *Value, config *Config) bool { // match: (Sub32 (Const32 [c]) (Const32 [d])) // cond: // result: (Const32 [c-d]) - { + for { if v.Args[0].Op != OpConst32 { - goto end7623799db780e1bcc42c6ea0df9c49d3 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst32 { - goto end7623799db780e1bcc42c6ea0df9c49d3 + break } d := v.Args[1].AuxInt v.reset(OpConst32) v.AuxInt = c - d return true } - goto end7623799db780e1bcc42c6ea0df9c49d3 -end7623799db780e1bcc42c6ea0df9c49d3: - ; // match: (Sub32 x (Const32 [c])) // cond: x.Op != OpConst32 // result: (Add32 (Const32 [-c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst32 { - goto end391e2f2ba8c7502b62c0153ec69c4fbd + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst32) { - goto end391e2f2ba8c7502b62c0153ec69c4fbd + break } v.reset(OpAdd32) v0 := b.NewValue0(v.Line, OpConst32, t) @@ -6258,64 +5508,52 @@ end7623799db780e1bcc42c6ea0df9c49d3: v.AddArg(x) return true } - goto end391e2f2ba8c7502b62c0153ec69c4fbd -end391e2f2ba8c7502b62c0153ec69c4fbd: - ; // match: (Sub32 x x) // cond: // result: (Const32 [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto enda747581e798f199e07f4ad69747cd069 + break } v.reset(OpConst32) v.AuxInt = 0 return true } - goto enda747581e798f199e07f4ad69747cd069 -enda747581e798f199e07f4ad69747cd069: - ; // match: (Sub32 (Add32 x y) x) // cond: // result: y - { + for { if v.Args[0].Op != OpAdd32 { - goto end70c1e60e58a6c106d060f10cd3f179ea + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.Args[1] != x { - goto end70c1e60e58a6c106d060f10cd3f179ea + break } v.reset(OpCopy) v.Type = y.Type v.AddArg(y) return true } - goto end70c1e60e58a6c106d060f10cd3f179ea -end70c1e60e58a6c106d060f10cd3f179ea: - ; // match: (Sub32 (Add32 x y) y) // cond: // result: x - { + for { if v.Args[0].Op != OpAdd32 { - goto end20e42db178ec4f423cc56a991863a4a2 + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.Args[1] != y { - goto end20e42db178ec4f423cc56a991863a4a2 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end20e42db178ec4f423cc56a991863a4a2 -end20e42db178ec4f423cc56a991863a4a2: - ; return false } func rewriteValuegeneric_OpSub64(v *Value, config *Config) bool { @@ -6324,34 +5562,31 @@ func rewriteValuegeneric_OpSub64(v *Value, config *Config) bool { // match: (Sub64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c-d]) - { + for { if v.Args[0].Op != OpConst64 { - goto end5a84a285ff0ff48b8ad3c64b15e3459f + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst64 { - goto end5a84a285ff0ff48b8ad3c64b15e3459f + break } d := v.Args[1].AuxInt v.reset(OpConst64) v.AuxInt = c - d return true } - goto end5a84a285ff0ff48b8ad3c64b15e3459f -end5a84a285ff0ff48b8ad3c64b15e3459f: - ; // match: (Sub64 x (Const64 [c])) // cond: x.Op != OpConst64 // result: (Add64 (Const64 [-c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst64 { - goto enda80d30f6794bcf02cd4442b238f68333 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst64) { - goto enda80d30f6794bcf02cd4442b238f68333 + break } v.reset(OpAdd64) v0 := b.NewValue0(v.Line, OpConst64, t) @@ -6360,64 +5595,52 @@ end5a84a285ff0ff48b8ad3c64b15e3459f: v.AddArg(x) return true } - goto enda80d30f6794bcf02cd4442b238f68333 -enda80d30f6794bcf02cd4442b238f68333: - ; // match: (Sub64 x x) // cond: // result: (Const64 [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end0387dc2b7bbe57d4aa54eab5d959da4b + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto end0387dc2b7bbe57d4aa54eab5d959da4b -end0387dc2b7bbe57d4aa54eab5d959da4b: - ; // match: (Sub64 (Add64 x y) x) // cond: // result: y - { + for { if v.Args[0].Op != OpAdd64 { - goto end7d177451cf8959cb781f52d5ded46fff + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.Args[1] != x { - goto end7d177451cf8959cb781f52d5ded46fff + break } v.reset(OpCopy) v.Type = y.Type v.AddArg(y) return true } - goto end7d177451cf8959cb781f52d5ded46fff -end7d177451cf8959cb781f52d5ded46fff: - ; // match: (Sub64 (Add64 x y) y) // cond: // result: x - { + for { if v.Args[0].Op != OpAdd64 { - goto end6ea8172b21100cfe3dc86b7a850fbe97 + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.Args[1] != y { - goto end6ea8172b21100cfe3dc86b7a850fbe97 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto end6ea8172b21100cfe3dc86b7a850fbe97 -end6ea8172b21100cfe3dc86b7a850fbe97: - ; return false } func rewriteValuegeneric_OpSub8(v *Value, config *Config) bool { @@ -6426,34 +5649,31 @@ func rewriteValuegeneric_OpSub8(v *Value, config *Config) bool { // match: (Sub8 (Const8 [c]) (Const8 [d])) // cond: // result: (Const8 [c-d]) - { + for { if v.Args[0].Op != OpConst8 { - goto endc00ea11c7535529e211710574f5cff24 + break } c := v.Args[0].AuxInt if v.Args[1].Op != OpConst8 { - goto endc00ea11c7535529e211710574f5cff24 + break } d := v.Args[1].AuxInt v.reset(OpConst8) v.AuxInt = c - d return true } - goto endc00ea11c7535529e211710574f5cff24 -endc00ea11c7535529e211710574f5cff24: - ; // match: (Sub8 x (Const8 [c])) // cond: x.Op != OpConst8 // result: (Add8 (Const8 [-c]) x) - { + for { x := v.Args[0] if v.Args[1].Op != OpConst8 { - goto end0bfab5b6f1037e55dc049b79e2636678 + break } t := v.Args[1].Type c := v.Args[1].AuxInt if !(x.Op != OpConst8) { - goto end0bfab5b6f1037e55dc049b79e2636678 + break } v.reset(OpAdd8) v0 := b.NewValue0(v.Line, OpConst8, t) @@ -6462,64 +5682,52 @@ endc00ea11c7535529e211710574f5cff24: v.AddArg(x) return true } - goto end0bfab5b6f1037e55dc049b79e2636678 -end0bfab5b6f1037e55dc049b79e2636678: - ; // match: (Sub8 x x) // cond: // result: (Const8 [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end4e2ee15ef17611919a1a6b5f80bbfe18 + break } v.reset(OpConst8) v.AuxInt = 0 return true } - goto end4e2ee15ef17611919a1a6b5f80bbfe18 -end4e2ee15ef17611919a1a6b5f80bbfe18: - ; // match: (Sub8 (Add8 x y) x) // cond: // result: y - { + for { if v.Args[0].Op != OpAdd8 { - goto endd79d561e14dc3d11da4c3bb20270b541 + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.Args[1] != x { - goto endd79d561e14dc3d11da4c3bb20270b541 + break } v.reset(OpCopy) v.Type = y.Type v.AddArg(y) return true } - goto endd79d561e14dc3d11da4c3bb20270b541 -endd79d561e14dc3d11da4c3bb20270b541: - ; // match: (Sub8 (Add8 x y) y) // cond: // result: x - { + for { if v.Args[0].Op != OpAdd8 { - goto endcb7111b11d6d068c97026a97ecff8248 + break } x := v.Args[0].Args[0] y := v.Args[0].Args[1] if v.Args[1] != y { - goto endcb7111b11d6d068c97026a97ecff8248 + break } v.reset(OpCopy) v.Type = x.Type v.AddArg(x) return true } - goto endcb7111b11d6d068c97026a97ecff8248 -endcb7111b11d6d068c97026a97ecff8248: - ; return false } func rewriteValuegeneric_OpXor16(v *Value, config *Config) bool { @@ -6528,18 +5736,15 @@ func rewriteValuegeneric_OpXor16(v *Value, config *Config) bool { // match: (Xor16 x x) // cond: // result: (Const16 [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end5733ceb1903b8140248d8e2cac02fefe + break } v.reset(OpConst16) v.AuxInt = 0 return true } - goto end5733ceb1903b8140248d8e2cac02fefe -end5733ceb1903b8140248d8e2cac02fefe: - ; return false } func rewriteValuegeneric_OpXor32(v *Value, config *Config) bool { @@ -6548,18 +5753,15 @@ func rewriteValuegeneric_OpXor32(v *Value, config *Config) bool { // match: (Xor32 x x) // cond: // result: (Const32 [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end268ca02df6515d648e0bfb4e90981d25 + break } v.reset(OpConst32) v.AuxInt = 0 return true } - goto end268ca02df6515d648e0bfb4e90981d25 -end268ca02df6515d648e0bfb4e90981d25: - ; return false } func rewriteValuegeneric_OpXor64(v *Value, config *Config) bool { @@ -6568,18 +5770,15 @@ func rewriteValuegeneric_OpXor64(v *Value, config *Config) bool { // match: (Xor64 x x) // cond: // result: (Const64 [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto endaf44e7f9fc58af30df69070953fb45ce + break } v.reset(OpConst64) v.AuxInt = 0 return true } - goto endaf44e7f9fc58af30df69070953fb45ce -endaf44e7f9fc58af30df69070953fb45ce: - ; return false } func rewriteValuegeneric_OpXor8(v *Value, config *Config) bool { @@ -6588,18 +5787,15 @@ func rewriteValuegeneric_OpXor8(v *Value, config *Config) bool { // match: (Xor8 x x) // cond: // result: (Const8 [0]) - { + for { x := v.Args[0] if v.Args[1] != x { - goto end949b3a60b7d181688e6f79f93c782fc8 + break } v.reset(OpConst8) v.AuxInt = 0 return true } - goto end949b3a60b7d181688e6f79f93c782fc8 -end949b3a60b7d181688e6f79f93c782fc8: - ; return false } func rewriteBlockgeneric(b *Block) bool { @@ -6608,13 +5804,13 @@ func rewriteBlockgeneric(b *Block) bool { // match: (Check (NilCheck (GetG _) _) next) // cond: // result: (Plain nil next) - { + for { v := b.Control if v.Op != OpNilCheck { - goto end6e20d932d6961903b0dcf16eac513826 + break } if v.Args[0].Op != OpGetG { - goto end6e20d932d6961903b0dcf16eac513826 + break } next := b.Succs[0] b.Kind = BlockPlain @@ -6623,17 +5819,14 @@ func rewriteBlockgeneric(b *Block) bool { b.Likely = BranchUnknown return true } - goto end6e20d932d6961903b0dcf16eac513826 - end6e20d932d6961903b0dcf16eac513826: - ; case BlockIf: // match: (If (Not cond) yes no) // cond: // result: (If cond no yes) - { + for { v := b.Control if v.Op != OpNot { - goto endebe19c1c3c3bec068cdb2dd29ef57f96 + break } cond := v.Args[0] yes := b.Succs[0] @@ -6645,22 +5838,19 @@ func rewriteBlockgeneric(b *Block) bool { b.Likely *= -1 return true } - goto endebe19c1c3c3bec068cdb2dd29ef57f96 - endebe19c1c3c3bec068cdb2dd29ef57f96: - ; // match: (If (ConstBool [c]) yes no) // cond: c == 1 // result: (First nil yes no) - { + for { v := b.Control if v.Op != OpConstBool { - goto endc58ecbb85af78c0d58bb232ca86b67a4 + break } c := v.AuxInt yes := b.Succs[0] no := b.Succs[1] if !(c == 1) { - goto endc58ecbb85af78c0d58bb232ca86b67a4 + break } b.Kind = BlockFirst b.Control = nil @@ -6668,22 +5858,19 @@ func rewriteBlockgeneric(b *Block) bool { b.Succs[1] = no return true } - goto endc58ecbb85af78c0d58bb232ca86b67a4 - endc58ecbb85af78c0d58bb232ca86b67a4: - ; // match: (If (ConstBool [c]) yes no) // cond: c == 0 // result: (First nil no yes) - { + for { v := b.Control if v.Op != OpConstBool { - goto end4c3e297e275dd7e2e67f8ccd348c4bb5 + break } c := v.AuxInt yes := b.Succs[0] no := b.Succs[1] if !(c == 0) { - goto end4c3e297e275dd7e2e67f8ccd348c4bb5 + break } b.Kind = BlockFirst b.Control = nil @@ -6692,8 +5879,6 @@ func rewriteBlockgeneric(b *Block) bool { b.Likely *= -1 return true } - goto end4c3e297e275dd7e2e67f8ccd348c4bb5 - end4c3e297e275dd7e2e67f8ccd348c4bb5: } return false } -- 2.48.1