From 53948127d32cd8ab2d67941542122491a9cd22c9 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Mon, 17 Dec 2018 17:12:00 -0800 Subject: [PATCH] cmd/compile: make rulegen magic variable prediction more precise The sheer length of the generated rules files makes my editor and git client unhappy. This change is a small step towards shortening them. We recognize a few magic variables during rulegen: b, config, fe, typ. Of these, only b appears prone to false positives. By tightening the heuristic and fixing one case in MIPS.rules, we can make the heuristic enough that it has no failures. That allows us to remove the hedge assignments to _, removing 3000 pointless lines of code. Change-Id: I080cde5db28c8277cb3fd9ddcd829306c9a27785 Reviewed-on: https://go-review.googlesource.com/c/go/+/166979 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: Cherry Zhang --- src/cmd/compile/internal/ssa/gen/MIPS.rules | 2 +- src/cmd/compile/internal/ssa/gen/rulegen.go | 13 +- src/cmd/compile/internal/ssa/rewrite386.go | 256 ----------- src/cmd/compile/internal/ssa/rewriteAMD64.go | 427 ------------------ src/cmd/compile/internal/ssa/rewriteARM.go | 287 ------------ src/cmd/compile/internal/ssa/rewriteARM64.go | 348 -------------- src/cmd/compile/internal/ssa/rewriteMIPS.go | 212 +-------- src/cmd/compile/internal/ssa/rewriteMIPS64.go | 258 ----------- src/cmd/compile/internal/ssa/rewritePPC64.go | 321 ------------- src/cmd/compile/internal/ssa/rewriteS390X.go | 375 --------------- src/cmd/compile/internal/ssa/rewriteWasm.go | 268 ----------- src/cmd/compile/internal/ssa/rewritedec.go | 8 - src/cmd/compile/internal/ssa/rewritedec64.go | 105 ----- .../compile/internal/ssa/rewritedecArgs.go | 6 - .../compile/internal/ssa/rewritegeneric.go | 206 --------- 15 files changed, 11 insertions(+), 3081 deletions(-) diff --git a/src/cmd/compile/internal/ssa/gen/MIPS.rules b/src/cmd/compile/internal/ssa/gen/MIPS.rules index db9c5bc638..bd218b494f 100644 --- a/src/cmd/compile/internal/ssa/gen/MIPS.rules +++ b/src/cmd/compile/internal/ssa/gen/MIPS.rules @@ -688,7 +688,7 @@ (GEZ (MOVWconst [c]) yes no) && int32(c) < 0 -> (First nil no yes) // conditional move -(CMOVZ _ b (MOVWconst [0])) -> b +(CMOVZ _ f (MOVWconst [0])) -> f (CMOVZ a _ (MOVWconst [c])) && c!=0 -> a (CMOVZzero _ (MOVWconst [0])) -> (MOVWconst [0]) (CMOVZzero a (MOVWconst [c])) && c!=0 -> a diff --git a/src/cmd/compile/internal/ssa/gen/rulegen.go b/src/cmd/compile/internal/ssa/gen/rulegen.go index d280688a0a..6762d1cd3f 100644 --- a/src/cmd/compile/internal/ssa/gen/rulegen.go +++ b/src/cmd/compile/internal/ssa/gen/rulegen.go @@ -238,29 +238,23 @@ func genRules(arch arch) { } body := buf.String() - // Do a rough match to predict whether we need b, config, fe, and/or types. - // It's not precise--thus the blank assignments--but it's good enough - // to avoid generating needless code and doing pointless nil checks. - hasb := strings.Contains(body, "b.") + // Figure out whether we need b, config, fe, and/or types; provide them if so. + hasb := strings.Contains(body, " b.") hasconfig := strings.Contains(body, "config.") || strings.Contains(body, "config)") hasfe := strings.Contains(body, "fe.") hastyps := strings.Contains(body, "typ.") fmt.Fprintf(w, "func rewriteValue%s_%s_%d(v *Value) bool {\n", arch.name, op, chunk) if hasb || hasconfig || hasfe || hastyps { fmt.Fprintln(w, "b := v.Block") - fmt.Fprintln(w, "_ = b") } if hasconfig { fmt.Fprintln(w, "config := b.Func.Config") - fmt.Fprintln(w, "_ = config") } if hasfe { fmt.Fprintln(w, "fe := b.Func.fe") - fmt.Fprintln(w, "_ = fe") } if hastyps { fmt.Fprintln(w, "typ := &b.Func.Config.Types") - fmt.Fprintln(w, "_ = typ") } fmt.Fprint(w, body) fmt.Fprintf(w, "}\n") @@ -507,6 +501,9 @@ func genMatch0(w io.Writer, arch arch, match, v string, m map[string]struct{}, t // autogenerated name argname = fmt.Sprintf("%s_%d", v, i) } + if argname == "b" { + log.Fatalf("don't name args 'b', it is ambiguous with blocks") + } fmt.Fprintf(w, "%s := %s.Args[%d]\n", argname, v, i) argPos, argCanFail := genMatch0(w, arch, arg, argname, m, false, loc) if argPos != "" { diff --git a/src/cmd/compile/internal/ssa/rewrite386.go b/src/cmd/compile/internal/ssa/rewrite386.go index 75b6de8055..422a8b42fa 100644 --- a/src/cmd/compile/internal/ssa/rewrite386.go +++ b/src/cmd/compile/internal/ssa/rewrite386.go @@ -1659,9 +1659,7 @@ func rewriteValue386_Op386ADDLconst_0(v *Value) bool { } func rewriteValue386_Op386ADDLconstmodify_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDLconstmodify [valoff1] {sym} (ADDLconst [off2] base) mem) // cond: ValAndOff(valoff1).canAdd(off2) // result: (ADDLconstmodify [ValAndOff(valoff1).add(off2)] {sym} base mem) @@ -1715,9 +1713,7 @@ func rewriteValue386_Op386ADDLconstmodify_0(v *Value) bool { } func rewriteValue386_Op386ADDLconstmodifyidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDLconstmodifyidx4 [valoff1] {sym} (ADDLconst [off2] base) idx mem) // cond: ValAndOff(valoff1).canAdd(off2) // result: (ADDLconstmodifyidx4 [ValAndOff(valoff1).add(off2)] {sym} base idx mem) @@ -1801,9 +1797,7 @@ func rewriteValue386_Op386ADDLconstmodifyidx4_0(v *Value) bool { } func rewriteValue386_Op386ADDLload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDLload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ADDLload [off1+off2] {sym} val base mem) @@ -1891,9 +1885,7 @@ func rewriteValue386_Op386ADDLload_0(v *Value) bool { } func rewriteValue386_Op386ADDLloadidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDLloadidx4 [off1] {sym} val (ADDLconst [off2] base) idx mem) // cond: is32Bit(off1+off2) // result: (ADDLloadidx4 [off1+off2] {sym} val base idx mem) @@ -1983,9 +1975,7 @@ func rewriteValue386_Op386ADDLloadidx4_0(v *Value) bool { } func rewriteValue386_Op386ADDLmodify_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDLmodify [off1] {sym} (ADDLconst [off2] base) val mem) // cond: is32Bit(off1+off2) // result: (ADDLmodify [off1+off2] {sym} base val mem) @@ -2043,9 +2033,7 @@ func rewriteValue386_Op386ADDLmodify_0(v *Value) bool { } func rewriteValue386_Op386ADDLmodifyidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDLmodifyidx4 [off1] {sym} (ADDLconst [off2] base) idx val mem) // cond: is32Bit(off1+off2) // result: (ADDLmodifyidx4 [off1+off2] {sym} base idx val mem) @@ -2161,9 +2149,7 @@ func rewriteValue386_Op386ADDLmodifyidx4_0(v *Value) bool { } func rewriteValue386_Op386ADDSD_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDSD x l:(MOVSDload [off] {sym} ptr mem)) // cond: canMergeLoadClobber(v, l, x) && !config.use387 && clobber(l) // result: (ADDSDload x [off] {sym} ptr mem) @@ -2220,9 +2206,7 @@ func rewriteValue386_Op386ADDSD_0(v *Value) bool { } func rewriteValue386_Op386ADDSDload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDSDload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ADDSDload [off1+off2] {sym} val base mem) @@ -2280,9 +2264,7 @@ func rewriteValue386_Op386ADDSDload_0(v *Value) bool { } func rewriteValue386_Op386ADDSS_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDSS x l:(MOVSSload [off] {sym} ptr mem)) // cond: canMergeLoadClobber(v, l, x) && !config.use387 && clobber(l) // result: (ADDSSload x [off] {sym} ptr mem) @@ -2339,9 +2321,7 @@ func rewriteValue386_Op386ADDSS_0(v *Value) bool { } func rewriteValue386_Op386ADDSSload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ADDSSload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ADDSSload [off1+off2] {sym} val base mem) @@ -2615,9 +2595,7 @@ func rewriteValue386_Op386ANDLconst_0(v *Value) bool { } func rewriteValue386_Op386ANDLconstmodify_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDLconstmodify [valoff1] {sym} (ADDLconst [off2] base) mem) // cond: ValAndOff(valoff1).canAdd(off2) // result: (ANDLconstmodify [ValAndOff(valoff1).add(off2)] {sym} base mem) @@ -2671,9 +2649,7 @@ func rewriteValue386_Op386ANDLconstmodify_0(v *Value) bool { } func rewriteValue386_Op386ANDLconstmodifyidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDLconstmodifyidx4 [valoff1] {sym} (ADDLconst [off2] base) idx mem) // cond: ValAndOff(valoff1).canAdd(off2) // result: (ANDLconstmodifyidx4 [ValAndOff(valoff1).add(off2)] {sym} base idx mem) @@ -2757,9 +2733,7 @@ func rewriteValue386_Op386ANDLconstmodifyidx4_0(v *Value) bool { } func rewriteValue386_Op386ANDLload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDLload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ANDLload [off1+off2] {sym} val base mem) @@ -2847,9 +2821,7 @@ func rewriteValue386_Op386ANDLload_0(v *Value) bool { } func rewriteValue386_Op386ANDLloadidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDLloadidx4 [off1] {sym} val (ADDLconst [off2] base) idx mem) // cond: is32Bit(off1+off2) // result: (ANDLloadidx4 [off1+off2] {sym} val base idx mem) @@ -2939,9 +2911,7 @@ func rewriteValue386_Op386ANDLloadidx4_0(v *Value) bool { } func rewriteValue386_Op386ANDLmodify_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDLmodify [off1] {sym} (ADDLconst [off2] base) val mem) // cond: is32Bit(off1+off2) // result: (ANDLmodify [off1+off2] {sym} base val mem) @@ -2999,9 +2969,7 @@ func rewriteValue386_Op386ANDLmodify_0(v *Value) bool { } func rewriteValue386_Op386ANDLmodifyidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDLmodifyidx4 [off1] {sym} (ADDLconst [off2] base) idx val mem) // cond: is32Bit(off1+off2) // result: (ANDLmodifyidx4 [off1+off2] {sym} base idx val mem) @@ -3117,7 +3085,6 @@ func rewriteValue386_Op386ANDLmodifyidx4_0(v *Value) bool { } func rewriteValue386_Op386CMPB_0(v *Value) bool { b := v.Block - _ = b // match: (CMPB x (MOVLconst [c])) // cond: // result: (CMPBconst x [int64(int8(c))]) @@ -3210,7 +3177,6 @@ func rewriteValue386_Op386CMPB_0(v *Value) bool { } func rewriteValue386_Op386CMPBconst_0(v *Value) bool { b := v.Block - _ = b // match: (CMPBconst (MOVLconst [x]) [y]) // cond: int8(x)==int8(y) // result: (FlagEQ) @@ -3421,7 +3387,6 @@ func rewriteValue386_Op386CMPBload_0(v *Value) bool { } func rewriteValue386_Op386CMPL_0(v *Value) bool { b := v.Block - _ = b // match: (CMPL x (MOVLconst [c])) // cond: // result: (CMPLconst x [c]) @@ -3685,7 +3650,6 @@ func rewriteValue386_Op386CMPLconst_0(v *Value) bool { } func rewriteValue386_Op386CMPLconst_10(v *Value) bool { b := v.Block - _ = b // match: (CMPLconst l:(MOVLload {sym} [off] ptr mem) [c]) // cond: l.Uses == 1 && validValAndOff(c, off) && clobber(l) // result: @l.Block (CMPLconstload {sym} [makeValAndOff(c,off)] ptr mem) @@ -3744,7 +3708,6 @@ func rewriteValue386_Op386CMPLload_0(v *Value) bool { } func rewriteValue386_Op386CMPW_0(v *Value) bool { b := v.Block - _ = b // match: (CMPW x (MOVLconst [c])) // cond: // result: (CMPWconst x [int64(int16(c))]) @@ -3837,7 +3800,6 @@ func rewriteValue386_Op386CMPW_0(v *Value) bool { } func rewriteValue386_Op386CMPWconst_0(v *Value) bool { b := v.Block - _ = b // match: (CMPWconst (MOVLconst [x]) [y]) // cond: int16(x)==int16(y) // result: (FlagEQ) @@ -4048,9 +4010,7 @@ func rewriteValue386_Op386CMPWload_0(v *Value) bool { } func rewriteValue386_Op386DIVSD_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (DIVSD x l:(MOVSDload [off] {sym} ptr mem)) // cond: canMergeLoadClobber(v, l, x) && !config.use387 && clobber(l) // result: (DIVSDload x [off] {sym} ptr mem) @@ -4081,9 +4041,7 @@ func rewriteValue386_Op386DIVSD_0(v *Value) bool { } func rewriteValue386_Op386DIVSDload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (DIVSDload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (DIVSDload [off1+off2] {sym} val base mem) @@ -4141,9 +4099,7 @@ func rewriteValue386_Op386DIVSDload_0(v *Value) bool { } func rewriteValue386_Op386DIVSS_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (DIVSS x l:(MOVSSload [off] {sym} ptr mem)) // cond: canMergeLoadClobber(v, l, x) && !config.use387 && clobber(l) // result: (DIVSSload x [off] {sym} ptr mem) @@ -4174,9 +4130,7 @@ func rewriteValue386_Op386DIVSS_0(v *Value) bool { } func rewriteValue386_Op386DIVSSload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (DIVSSload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (DIVSSload [off1+off2] {sym} val base mem) @@ -4939,7 +4893,6 @@ func rewriteValue386_Op386LEAL8_0(v *Value) bool { } func rewriteValue386_Op386MOVBLSX_0(v *Value) bool { b := v.Block - _ = b // match: (MOVBLSX x:(MOVBload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVBLSXload [off] {sym} ptr mem) @@ -4988,9 +4941,7 @@ func rewriteValue386_Op386MOVBLSX_0(v *Value) bool { } func rewriteValue386_Op386MOVBLSXload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBLSXload [off] {sym} ptr (MOVBstore [off2] {sym2} ptr2 x _)) // cond: sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) // result: (MOVBLSX x) @@ -5044,7 +4995,6 @@ func rewriteValue386_Op386MOVBLSXload_0(v *Value) bool { } func rewriteValue386_Op386MOVBLZX_0(v *Value) bool { b := v.Block - _ = b // match: (MOVBLZX x:(MOVBload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVBload [off] {sym} ptr mem) @@ -5118,9 +5068,7 @@ func rewriteValue386_Op386MOVBLZX_0(v *Value) bool { } func rewriteValue386_Op386MOVBload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBload [off] {sym} ptr (MOVBstore [off2] {sym2} ptr2 x _)) // cond: sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) // result: (MOVBLZX x) @@ -5365,9 +5313,7 @@ func rewriteValue386_Op386MOVBloadidx1_0(v *Value) bool { } func rewriteValue386_Op386MOVBstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBstore [off] {sym} ptr (MOVBLSX x) mem) // cond: // result: (MOVBstore [off] {sym} ptr x mem) @@ -5784,9 +5730,7 @@ func rewriteValue386_Op386MOVBstore_10(v *Value) bool { } func rewriteValue386_Op386MOVBstoreconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBstoreconst [sc] {s} (ADDLconst [off] ptr) mem) // cond: ValAndOff(sc).canAdd(off) // result: (MOVBstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) @@ -7167,9 +7111,7 @@ func rewriteValue386_Op386MOVBstoreidx1_20(v *Value) bool { } func rewriteValue386_Op386MOVLload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVLload [off] {sym} ptr (MOVLstore [off2] {sym2} ptr2 x _)) // cond: sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) // result: x @@ -7542,9 +7484,7 @@ func rewriteValue386_Op386MOVLloadidx4_0(v *Value) bool { } func rewriteValue386_Op386MOVLstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVLstore [off1] {sym} (ADDLconst [off2] ptr) val mem) // cond: is32Bit(off1+off2) // result: (MOVLstore [off1+off2] {sym} ptr val mem) @@ -8423,9 +8363,7 @@ func rewriteValue386_Op386MOVLstore_20(v *Value) bool { } func rewriteValue386_Op386MOVLstoreconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVLstoreconst [sc] {s} (ADDLconst [off] ptr) mem) // cond: ValAndOff(sc).canAdd(off) // result: (MOVLstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) @@ -9682,11 +9620,8 @@ func rewriteValue386_Op386MOVLstoreidx4_10(v *Value) bool { } func rewriteValue386_Op386MOVSDconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (MOVSDconst [c]) // cond: config.ctxt.Flag_shared // result: (MOVSDconst2 (MOVSDconst1 [c])) @@ -9705,9 +9640,7 @@ func rewriteValue386_Op386MOVSDconst_0(v *Value) bool { } func rewriteValue386_Op386MOVSDload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVSDload [off1] {sym} (ADDLconst [off2] ptr) mem) // cond: is32Bit(off1+off2) // result: (MOVSDload [off1+off2] {sym} ptr mem) @@ -9941,9 +9874,7 @@ func rewriteValue386_Op386MOVSDloadidx8_0(v *Value) bool { } func rewriteValue386_Op386MOVSDstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVSDstore [off1] {sym} (ADDLconst [off2] ptr) val mem) // cond: is32Bit(off1+off2) // result: (MOVSDstore [off1+off2] {sym} ptr val mem) @@ -10195,11 +10126,8 @@ func rewriteValue386_Op386MOVSDstoreidx8_0(v *Value) bool { } func rewriteValue386_Op386MOVSSconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (MOVSSconst [c]) // cond: config.ctxt.Flag_shared // result: (MOVSSconst2 (MOVSSconst1 [c])) @@ -10218,9 +10146,7 @@ func rewriteValue386_Op386MOVSSconst_0(v *Value) bool { } func rewriteValue386_Op386MOVSSload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVSSload [off1] {sym} (ADDLconst [off2] ptr) mem) // cond: is32Bit(off1+off2) // result: (MOVSSload [off1+off2] {sym} ptr mem) @@ -10454,9 +10380,7 @@ func rewriteValue386_Op386MOVSSloadidx4_0(v *Value) bool { } func rewriteValue386_Op386MOVSSstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVSSstore [off1] {sym} (ADDLconst [off2] ptr) val mem) // cond: is32Bit(off1+off2) // result: (MOVSSstore [off1+off2] {sym} ptr val mem) @@ -10708,7 +10632,6 @@ func rewriteValue386_Op386MOVSSstoreidx4_0(v *Value) bool { } func rewriteValue386_Op386MOVWLSX_0(v *Value) bool { b := v.Block - _ = b // match: (MOVWLSX x:(MOVWload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVWLSXload [off] {sym} ptr mem) @@ -10757,9 +10680,7 @@ func rewriteValue386_Op386MOVWLSX_0(v *Value) bool { } func rewriteValue386_Op386MOVWLSXload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWLSXload [off] {sym} ptr (MOVWstore [off2] {sym2} ptr2 x _)) // cond: sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) // result: (MOVWLSX x) @@ -10813,7 +10734,6 @@ func rewriteValue386_Op386MOVWLSXload_0(v *Value) bool { } func rewriteValue386_Op386MOVWLZX_0(v *Value) bool { b := v.Block - _ = b // match: (MOVWLZX x:(MOVWload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVWload [off] {sym} ptr mem) @@ -10915,9 +10835,7 @@ func rewriteValue386_Op386MOVWLZX_0(v *Value) bool { } func rewriteValue386_Op386MOVWload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWload [off] {sym} ptr (MOVWstore [off2] {sym2} ptr2 x _)) // cond: sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) // result: (MOVWLZX x) @@ -11289,9 +11207,7 @@ func rewriteValue386_Op386MOVWloadidx2_0(v *Value) bool { } func rewriteValue386_Op386MOVWstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWstore [off] {sym} ptr (MOVWLSX x) mem) // cond: // result: (MOVWstore [off] {sym} ptr x mem) @@ -11600,9 +11516,7 @@ func rewriteValue386_Op386MOVWstore_0(v *Value) bool { } func rewriteValue386_Op386MOVWstoreconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWstoreconst [sc] {s} (ADDLconst [off] ptr) mem) // cond: ValAndOff(sc).canAdd(off) // result: (MOVWstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) @@ -11907,7 +11821,6 @@ func rewriteValue386_Op386MOVWstoreconstidx1_0(v *Value) bool { } func rewriteValue386_Op386MOVWstoreconstidx2_0(v *Value) bool { b := v.Block - _ = b // match: (MOVWstoreconstidx2 [x] {sym} (ADDLconst [c] ptr) idx mem) // cond: // result: (MOVWstoreconstidx2 [ValAndOff(x).add(c)] {sym} ptr idx mem) @@ -12577,7 +12490,6 @@ func rewriteValue386_Op386MOVWstoreidx1_10(v *Value) bool { } func rewriteValue386_Op386MOVWstoreidx2_0(v *Value) bool { b := v.Block - _ = b // match: (MOVWstoreidx2 [c] {sym} (ADDLconst [d] ptr) idx val mem) // cond: // result: (MOVWstoreidx2 [int64(int32(c+d))] {sym} ptr idx val mem) @@ -12886,7 +12798,6 @@ func rewriteValue386_Op386MULL_0(v *Value) bool { } func rewriteValue386_Op386MULLconst_0(v *Value) bool { b := v.Block - _ = b // match: (MULLconst [c] (MULLconst [d] x)) // cond: // result: (MULLconst [int64(int32(c * d))] x) @@ -13030,7 +12941,6 @@ func rewriteValue386_Op386MULLconst_0(v *Value) bool { } func rewriteValue386_Op386MULLconst_10(v *Value) bool { b := v.Block - _ = b // match: (MULLconst [9] x) // cond: // result: (LEAL8 x x) @@ -13198,7 +13108,6 @@ func rewriteValue386_Op386MULLconst_10(v *Value) bool { } func rewriteValue386_Op386MULLconst_20(v *Value) bool { b := v.Block - _ = b // match: (MULLconst [73] x) // cond: // result: (LEAL8 x (LEAL8 x x)) @@ -13391,9 +13300,7 @@ func rewriteValue386_Op386MULLconst_30(v *Value) bool { } func rewriteValue386_Op386MULLload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MULLload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (MULLload [off1+off2] {sym} val base mem) @@ -13481,9 +13388,7 @@ func rewriteValue386_Op386MULLload_0(v *Value) bool { } func rewriteValue386_Op386MULLloadidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MULLloadidx4 [off1] {sym} val (ADDLconst [off2] base) idx mem) // cond: is32Bit(off1+off2) // result: (MULLloadidx4 [off1+off2] {sym} val base idx mem) @@ -13573,9 +13478,7 @@ func rewriteValue386_Op386MULLloadidx4_0(v *Value) bool { } func rewriteValue386_Op386MULSD_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MULSD x l:(MOVSDload [off] {sym} ptr mem)) // cond: canMergeLoadClobber(v, l, x) && !config.use387 && clobber(l) // result: (MULSDload x [off] {sym} ptr mem) @@ -13632,9 +13535,7 @@ func rewriteValue386_Op386MULSD_0(v *Value) bool { } func rewriteValue386_Op386MULSDload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MULSDload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (MULSDload [off1+off2] {sym} val base mem) @@ -13692,9 +13593,7 @@ func rewriteValue386_Op386MULSDload_0(v *Value) bool { } func rewriteValue386_Op386MULSS_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MULSS x l:(MOVSSload [off] {sym} ptr mem)) // cond: canMergeLoadClobber(v, l, x) && !config.use387 && clobber(l) // result: (MULSSload x [off] {sym} ptr mem) @@ -13751,9 +13650,7 @@ func rewriteValue386_Op386MULSS_0(v *Value) bool { } func rewriteValue386_Op386MULSSload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MULSSload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (MULSSload [off1+off2] {sym} val base mem) @@ -14096,9 +13993,7 @@ func rewriteValue386_Op386ORL_0(v *Value) bool { } func rewriteValue386_Op386ORL_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL x l:(MOVLloadidx4 [off] {sym} ptr idx mem)) // cond: canMergeLoadClobber(v, l, x) && clobber(l) // result: (ORLloadidx4 x [off] {sym} ptr idx mem) @@ -14629,7 +14524,6 @@ func rewriteValue386_Op386ORL_10(v *Value) bool { } func rewriteValue386_Op386ORL_20(v *Value) bool { b := v.Block - _ = b // match: (ORL x0:(MOVBloadidx1 [i0] {s} idx p mem) s0:(SHLLconst [8] x1:(MOVBloadidx1 [i1] {s} p idx mem))) // cond: i1==i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) // result: @mergePoint(b,x0,x1) (MOVWloadidx1 [i0] {s} p idx mem) @@ -15264,7 +15158,6 @@ func rewriteValue386_Op386ORL_20(v *Value) bool { } func rewriteValue386_Op386ORL_30(v *Value) bool { b := v.Block - _ = b // match: (ORL o0:(ORL x0:(MOVWloadidx1 [i0] {s} idx p mem) s0:(SHLLconst [16] x1:(MOVBloadidx1 [i2] {s} idx p mem))) s1:(SHLLconst [24] x2:(MOVBloadidx1 [i3] {s} p idx mem))) // cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.Uses == 1 && mergePoint(b,x0,x1,x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0) // result: @mergePoint(b,x0,x1,x2) (MOVLloadidx1 [i0] {s} p idx mem) @@ -16109,7 +16002,6 @@ func rewriteValue386_Op386ORL_30(v *Value) bool { } func rewriteValue386_Op386ORL_40(v *Value) bool { b := v.Block - _ = b // match: (ORL o0:(ORL s0:(SHLLconst [16] x1:(MOVBloadidx1 [i2] {s} idx p mem)) x0:(MOVWloadidx1 [i0] {s} p idx mem)) s1:(SHLLconst [24] x2:(MOVBloadidx1 [i3] {s} idx p mem))) // cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.Uses == 1 && mergePoint(b,x0,x1,x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0) // result: @mergePoint(b,x0,x1,x2) (MOVLloadidx1 [i0] {s} p idx mem) @@ -16954,7 +16846,6 @@ func rewriteValue386_Op386ORL_40(v *Value) bool { } func rewriteValue386_Op386ORL_50(v *Value) bool { b := v.Block - _ = b // match: (ORL s1:(SHLLconst [24] x2:(MOVBloadidx1 [i3] {s} idx p mem)) o0:(ORL x0:(MOVWloadidx1 [i0] {s} idx p mem) s0:(SHLLconst [16] x1:(MOVBloadidx1 [i2] {s} idx p mem)))) // cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.Uses == 1 && mergePoint(b,x0,x1,x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0) // result: @mergePoint(b,x0,x1,x2) (MOVLloadidx1 [i0] {s} p idx mem) @@ -17758,9 +17649,7 @@ func rewriteValue386_Op386ORLconst_0(v *Value) bool { } func rewriteValue386_Op386ORLconstmodify_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORLconstmodify [valoff1] {sym} (ADDLconst [off2] base) mem) // cond: ValAndOff(valoff1).canAdd(off2) // result: (ORLconstmodify [ValAndOff(valoff1).add(off2)] {sym} base mem) @@ -17814,9 +17703,7 @@ func rewriteValue386_Op386ORLconstmodify_0(v *Value) bool { } func rewriteValue386_Op386ORLconstmodifyidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORLconstmodifyidx4 [valoff1] {sym} (ADDLconst [off2] base) idx mem) // cond: ValAndOff(valoff1).canAdd(off2) // result: (ORLconstmodifyidx4 [ValAndOff(valoff1).add(off2)] {sym} base idx mem) @@ -17900,9 +17787,7 @@ func rewriteValue386_Op386ORLconstmodifyidx4_0(v *Value) bool { } func rewriteValue386_Op386ORLload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORLload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ORLload [off1+off2] {sym} val base mem) @@ -17990,9 +17875,7 @@ func rewriteValue386_Op386ORLload_0(v *Value) bool { } func rewriteValue386_Op386ORLloadidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORLloadidx4 [off1] {sym} val (ADDLconst [off2] base) idx mem) // cond: is32Bit(off1+off2) // result: (ORLloadidx4 [off1+off2] {sym} val base idx mem) @@ -18082,9 +17965,7 @@ func rewriteValue386_Op386ORLloadidx4_0(v *Value) bool { } func rewriteValue386_Op386ORLmodify_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORLmodify [off1] {sym} (ADDLconst [off2] base) val mem) // cond: is32Bit(off1+off2) // result: (ORLmodify [off1+off2] {sym} base val mem) @@ -18142,9 +18023,7 @@ func rewriteValue386_Op386ORLmodify_0(v *Value) bool { } func rewriteValue386_Op386ORLmodifyidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORLmodifyidx4 [off1] {sym} (ADDLconst [off2] base) idx val mem) // cond: is32Bit(off1+off2) // result: (ORLmodifyidx4 [off1+off2] {sym} base idx val mem) @@ -19584,7 +19463,6 @@ func rewriteValue386_Op386SHRWconst_0(v *Value) bool { } func rewriteValue386_Op386SUBL_0(v *Value) bool { b := v.Block - _ = b // match: (SUBL x (MOVLconst [c])) // cond: // result: (SUBLconst x [c]) @@ -19736,9 +19614,7 @@ func rewriteValue386_Op386SUBLconst_0(v *Value) bool { } func rewriteValue386_Op386SUBLload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SUBLload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (SUBLload [off1+off2] {sym} val base mem) @@ -19826,9 +19702,7 @@ func rewriteValue386_Op386SUBLload_0(v *Value) bool { } func rewriteValue386_Op386SUBLloadidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SUBLloadidx4 [off1] {sym} val (ADDLconst [off2] base) idx mem) // cond: is32Bit(off1+off2) // result: (SUBLloadidx4 [off1+off2] {sym} val base idx mem) @@ -19918,9 +19792,7 @@ func rewriteValue386_Op386SUBLloadidx4_0(v *Value) bool { } func rewriteValue386_Op386SUBLmodify_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SUBLmodify [off1] {sym} (ADDLconst [off2] base) val mem) // cond: is32Bit(off1+off2) // result: (SUBLmodify [off1+off2] {sym} base val mem) @@ -19978,9 +19850,7 @@ func rewriteValue386_Op386SUBLmodify_0(v *Value) bool { } func rewriteValue386_Op386SUBLmodifyidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SUBLmodifyidx4 [off1] {sym} (ADDLconst [off2] base) idx val mem) // cond: is32Bit(off1+off2) // result: (SUBLmodifyidx4 [off1+off2] {sym} base idx val mem) @@ -20096,9 +19966,7 @@ func rewriteValue386_Op386SUBLmodifyidx4_0(v *Value) bool { } func rewriteValue386_Op386SUBSD_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SUBSD x l:(MOVSDload [off] {sym} ptr mem)) // cond: canMergeLoadClobber(v, l, x) && !config.use387 && clobber(l) // result: (SUBSDload x [off] {sym} ptr mem) @@ -20129,9 +19997,7 @@ func rewriteValue386_Op386SUBSD_0(v *Value) bool { } func rewriteValue386_Op386SUBSDload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SUBSDload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (SUBSDload [off1+off2] {sym} val base mem) @@ -20189,9 +20055,7 @@ func rewriteValue386_Op386SUBSDload_0(v *Value) bool { } func rewriteValue386_Op386SUBSS_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SUBSS x l:(MOVSSload [off] {sym} ptr mem)) // cond: canMergeLoadClobber(v, l, x) && !config.use387 && clobber(l) // result: (SUBSSload x [off] {sym} ptr mem) @@ -20222,9 +20086,7 @@ func rewriteValue386_Op386SUBSS_0(v *Value) bool { } func rewriteValue386_Op386SUBSSload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SUBSSload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (SUBSSload [off1+off2] {sym} val base mem) @@ -20654,9 +20516,7 @@ func rewriteValue386_Op386XORLconst_0(v *Value) bool { } func rewriteValue386_Op386XORLconstmodify_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORLconstmodify [valoff1] {sym} (ADDLconst [off2] base) mem) // cond: ValAndOff(valoff1).canAdd(off2) // result: (XORLconstmodify [ValAndOff(valoff1).add(off2)] {sym} base mem) @@ -20710,9 +20570,7 @@ func rewriteValue386_Op386XORLconstmodify_0(v *Value) bool { } func rewriteValue386_Op386XORLconstmodifyidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORLconstmodifyidx4 [valoff1] {sym} (ADDLconst [off2] base) idx mem) // cond: ValAndOff(valoff1).canAdd(off2) // result: (XORLconstmodifyidx4 [ValAndOff(valoff1).add(off2)] {sym} base idx mem) @@ -20796,9 +20654,7 @@ func rewriteValue386_Op386XORLconstmodifyidx4_0(v *Value) bool { } func rewriteValue386_Op386XORLload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORLload [off1] {sym} val (ADDLconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (XORLload [off1+off2] {sym} val base mem) @@ -20886,9 +20742,7 @@ func rewriteValue386_Op386XORLload_0(v *Value) bool { } func rewriteValue386_Op386XORLloadidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORLloadidx4 [off1] {sym} val (ADDLconst [off2] base) idx mem) // cond: is32Bit(off1+off2) // result: (XORLloadidx4 [off1+off2] {sym} val base idx mem) @@ -20978,9 +20832,7 @@ func rewriteValue386_Op386XORLloadidx4_0(v *Value) bool { } func rewriteValue386_Op386XORLmodify_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORLmodify [off1] {sym} (ADDLconst [off2] base) val mem) // cond: is32Bit(off1+off2) // result: (XORLmodify [off1+off2] {sym} base val mem) @@ -21038,9 +20890,7 @@ func rewriteValue386_Op386XORLmodify_0(v *Value) bool { } func rewriteValue386_Op386XORLmodifyidx4_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORLmodifyidx4 [off1] {sym} (ADDLconst [off2] base) idx val mem) // cond: is32Bit(off1+off2) // result: (XORLmodifyidx4 [off1+off2] {sym} base idx val mem) @@ -21645,9 +21495,7 @@ func rewriteValue386_OpDiv64F_0(v *Value) bool { } func rewriteValue386_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 x y) // cond: // result: (DIVW (SignExt8to16 x) (SignExt8to16 y)) @@ -21667,9 +21515,7 @@ func rewriteValue386_OpDiv8_0(v *Value) bool { } func rewriteValue386_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u x y) // cond: // result: (DIVWU (ZeroExt8to16 x) (ZeroExt8to16 y)) @@ -21689,7 +21535,6 @@ func rewriteValue386_OpDiv8u_0(v *Value) bool { } func rewriteValue386_OpEq16_0(v *Value) bool { b := v.Block - _ = b // match: (Eq16 x y) // cond: // result: (SETEQ (CMPW x y)) @@ -21707,7 +21552,6 @@ func rewriteValue386_OpEq16_0(v *Value) bool { } func rewriteValue386_OpEq32_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32 x y) // cond: // result: (SETEQ (CMPL x y)) @@ -21725,7 +21569,6 @@ func rewriteValue386_OpEq32_0(v *Value) bool { } func rewriteValue386_OpEq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32F x y) // cond: // result: (SETEQF (UCOMISS x y)) @@ -21743,7 +21586,6 @@ func rewriteValue386_OpEq32F_0(v *Value) bool { } func rewriteValue386_OpEq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64F x y) // cond: // result: (SETEQF (UCOMISD x y)) @@ -21761,7 +21603,6 @@ func rewriteValue386_OpEq64F_0(v *Value) bool { } func rewriteValue386_OpEq8_0(v *Value) bool { b := v.Block - _ = b // match: (Eq8 x y) // cond: // result: (SETEQ (CMPB x y)) @@ -21779,7 +21620,6 @@ func rewriteValue386_OpEq8_0(v *Value) bool { } func rewriteValue386_OpEqB_0(v *Value) bool { b := v.Block - _ = b // match: (EqB x y) // cond: // result: (SETEQ (CMPB x y)) @@ -21797,7 +21637,6 @@ func rewriteValue386_OpEqB_0(v *Value) bool { } func rewriteValue386_OpEqPtr_0(v *Value) bool { b := v.Block - _ = b // match: (EqPtr x y) // cond: // result: (SETEQ (CMPL x y)) @@ -21815,7 +21654,6 @@ func rewriteValue386_OpEqPtr_0(v *Value) bool { } func rewriteValue386_OpGeq16_0(v *Value) bool { b := v.Block - _ = b // match: (Geq16 x y) // cond: // result: (SETGE (CMPW x y)) @@ -21833,7 +21671,6 @@ func rewriteValue386_OpGeq16_0(v *Value) bool { } func rewriteValue386_OpGeq16U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq16U x y) // cond: // result: (SETAE (CMPW x y)) @@ -21851,7 +21688,6 @@ func rewriteValue386_OpGeq16U_0(v *Value) bool { } func rewriteValue386_OpGeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32 x y) // cond: // result: (SETGE (CMPL x y)) @@ -21869,7 +21705,6 @@ func rewriteValue386_OpGeq32_0(v *Value) bool { } func rewriteValue386_OpGeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32F x y) // cond: // result: (SETGEF (UCOMISS x y)) @@ -21887,7 +21722,6 @@ func rewriteValue386_OpGeq32F_0(v *Value) bool { } func rewriteValue386_OpGeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32U x y) // cond: // result: (SETAE (CMPL x y)) @@ -21905,7 +21739,6 @@ func rewriteValue386_OpGeq32U_0(v *Value) bool { } func rewriteValue386_OpGeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64F x y) // cond: // result: (SETGEF (UCOMISD x y)) @@ -21923,7 +21756,6 @@ func rewriteValue386_OpGeq64F_0(v *Value) bool { } func rewriteValue386_OpGeq8_0(v *Value) bool { b := v.Block - _ = b // match: (Geq8 x y) // cond: // result: (SETGE (CMPB x y)) @@ -21941,7 +21773,6 @@ func rewriteValue386_OpGeq8_0(v *Value) bool { } func rewriteValue386_OpGeq8U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq8U x y) // cond: // result: (SETAE (CMPB x y)) @@ -21997,7 +21828,6 @@ func rewriteValue386_OpGetG_0(v *Value) bool { } func rewriteValue386_OpGreater16_0(v *Value) bool { b := v.Block - _ = b // match: (Greater16 x y) // cond: // result: (SETG (CMPW x y)) @@ -22015,7 +21845,6 @@ func rewriteValue386_OpGreater16_0(v *Value) bool { } func rewriteValue386_OpGreater16U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater16U x y) // cond: // result: (SETA (CMPW x y)) @@ -22033,7 +21862,6 @@ func rewriteValue386_OpGreater16U_0(v *Value) bool { } func rewriteValue386_OpGreater32_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32 x y) // cond: // result: (SETG (CMPL x y)) @@ -22051,7 +21879,6 @@ func rewriteValue386_OpGreater32_0(v *Value) bool { } func rewriteValue386_OpGreater32F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32F x y) // cond: // result: (SETGF (UCOMISS x y)) @@ -22069,7 +21896,6 @@ func rewriteValue386_OpGreater32F_0(v *Value) bool { } func rewriteValue386_OpGreater32U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32U x y) // cond: // result: (SETA (CMPL x y)) @@ -22087,7 +21913,6 @@ func rewriteValue386_OpGreater32U_0(v *Value) bool { } func rewriteValue386_OpGreater64F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64F x y) // cond: // result: (SETGF (UCOMISD x y)) @@ -22105,7 +21930,6 @@ func rewriteValue386_OpGreater64F_0(v *Value) bool { } func rewriteValue386_OpGreater8_0(v *Value) bool { b := v.Block - _ = b // match: (Greater8 x y) // cond: // result: (SETG (CMPB x y)) @@ -22123,7 +21947,6 @@ func rewriteValue386_OpGreater8_0(v *Value) bool { } func rewriteValue386_OpGreater8U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater8U x y) // cond: // result: (SETA (CMPB x y)) @@ -22185,7 +22008,6 @@ func rewriteValue386_OpInterCall_0(v *Value) bool { } func rewriteValue386_OpIsInBounds_0(v *Value) bool { b := v.Block - _ = b // match: (IsInBounds idx len) // cond: // result: (SETB (CMPL idx len)) @@ -22203,7 +22025,6 @@ func rewriteValue386_OpIsInBounds_0(v *Value) bool { } func rewriteValue386_OpIsNonNil_0(v *Value) bool { b := v.Block - _ = b // match: (IsNonNil p) // cond: // result: (SETNE (TESTL p p)) @@ -22219,7 +22040,6 @@ func rewriteValue386_OpIsNonNil_0(v *Value) bool { } func rewriteValue386_OpIsSliceInBounds_0(v *Value) bool { b := v.Block - _ = b // match: (IsSliceInBounds idx len) // cond: // result: (SETBE (CMPL idx len)) @@ -22237,7 +22057,6 @@ func rewriteValue386_OpIsSliceInBounds_0(v *Value) bool { } func rewriteValue386_OpLeq16_0(v *Value) bool { b := v.Block - _ = b // match: (Leq16 x y) // cond: // result: (SETLE (CMPW x y)) @@ -22255,7 +22074,6 @@ func rewriteValue386_OpLeq16_0(v *Value) bool { } func rewriteValue386_OpLeq16U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq16U x y) // cond: // result: (SETBE (CMPW x y)) @@ -22273,7 +22091,6 @@ func rewriteValue386_OpLeq16U_0(v *Value) bool { } func rewriteValue386_OpLeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32 x y) // cond: // result: (SETLE (CMPL x y)) @@ -22291,7 +22108,6 @@ func rewriteValue386_OpLeq32_0(v *Value) bool { } func rewriteValue386_OpLeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32F x y) // cond: // result: (SETGEF (UCOMISS y x)) @@ -22309,7 +22125,6 @@ func rewriteValue386_OpLeq32F_0(v *Value) bool { } func rewriteValue386_OpLeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32U x y) // cond: // result: (SETBE (CMPL x y)) @@ -22327,7 +22142,6 @@ func rewriteValue386_OpLeq32U_0(v *Value) bool { } func rewriteValue386_OpLeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64F x y) // cond: // result: (SETGEF (UCOMISD y x)) @@ -22345,7 +22159,6 @@ func rewriteValue386_OpLeq64F_0(v *Value) bool { } func rewriteValue386_OpLeq8_0(v *Value) bool { b := v.Block - _ = b // match: (Leq8 x y) // cond: // result: (SETLE (CMPB x y)) @@ -22363,7 +22176,6 @@ func rewriteValue386_OpLeq8_0(v *Value) bool { } func rewriteValue386_OpLeq8U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq8U x y) // cond: // result: (SETBE (CMPB x y)) @@ -22381,7 +22193,6 @@ func rewriteValue386_OpLeq8U_0(v *Value) bool { } func rewriteValue386_OpLess16_0(v *Value) bool { b := v.Block - _ = b // match: (Less16 x y) // cond: // result: (SETL (CMPW x y)) @@ -22399,7 +22210,6 @@ func rewriteValue386_OpLess16_0(v *Value) bool { } func rewriteValue386_OpLess16U_0(v *Value) bool { b := v.Block - _ = b // match: (Less16U x y) // cond: // result: (SETB (CMPW x y)) @@ -22417,7 +22227,6 @@ func rewriteValue386_OpLess16U_0(v *Value) bool { } func rewriteValue386_OpLess32_0(v *Value) bool { b := v.Block - _ = b // match: (Less32 x y) // cond: // result: (SETL (CMPL x y)) @@ -22435,7 +22244,6 @@ func rewriteValue386_OpLess32_0(v *Value) bool { } func rewriteValue386_OpLess32F_0(v *Value) bool { b := v.Block - _ = b // match: (Less32F x y) // cond: // result: (SETGF (UCOMISS y x)) @@ -22453,7 +22261,6 @@ func rewriteValue386_OpLess32F_0(v *Value) bool { } func rewriteValue386_OpLess32U_0(v *Value) bool { b := v.Block - _ = b // match: (Less32U x y) // cond: // result: (SETB (CMPL x y)) @@ -22471,7 +22278,6 @@ func rewriteValue386_OpLess32U_0(v *Value) bool { } func rewriteValue386_OpLess64F_0(v *Value) bool { b := v.Block - _ = b // match: (Less64F x y) // cond: // result: (SETGF (UCOMISD y x)) @@ -22489,7 +22295,6 @@ func rewriteValue386_OpLess64F_0(v *Value) bool { } func rewriteValue386_OpLess8_0(v *Value) bool { b := v.Block - _ = b // match: (Less8 x y) // cond: // result: (SETL (CMPB x y)) @@ -22507,7 +22312,6 @@ func rewriteValue386_OpLess8_0(v *Value) bool { } func rewriteValue386_OpLess8U_0(v *Value) bool { b := v.Block - _ = b // match: (Less8U x y) // cond: // result: (SETB (CMPB x y)) @@ -22622,7 +22426,6 @@ func rewriteValue386_OpLocalAddr_0(v *Value) bool { } func rewriteValue386_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x16 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPWconst y [32]))) @@ -22647,7 +22450,6 @@ func rewriteValue386_OpLsh16x16_0(v *Value) bool { } func rewriteValue386_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x32 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPLconst y [32]))) @@ -22711,7 +22513,6 @@ func rewriteValue386_OpLsh16x64_0(v *Value) bool { } func rewriteValue386_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x8 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPBconst y [32]))) @@ -22736,7 +22537,6 @@ func rewriteValue386_OpLsh16x8_0(v *Value) bool { } func rewriteValue386_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x16 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPWconst y [32]))) @@ -22761,7 +22561,6 @@ func rewriteValue386_OpLsh32x16_0(v *Value) bool { } func rewriteValue386_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x32 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPLconst y [32]))) @@ -22825,7 +22624,6 @@ func rewriteValue386_OpLsh32x64_0(v *Value) bool { } func rewriteValue386_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x8 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPBconst y [32]))) @@ -22850,7 +22648,6 @@ func rewriteValue386_OpLsh32x8_0(v *Value) bool { } func rewriteValue386_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x16 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPWconst y [32]))) @@ -22875,7 +22672,6 @@ func rewriteValue386_OpLsh8x16_0(v *Value) bool { } func rewriteValue386_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x32 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPLconst y [32]))) @@ -22939,7 +22735,6 @@ func rewriteValue386_OpLsh8x64_0(v *Value) bool { } func rewriteValue386_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x8 x y) // cond: // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPBconst y [32]))) @@ -23024,9 +22819,7 @@ func rewriteValue386_OpMod32u_0(v *Value) bool { } func rewriteValue386_OpMod8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8 x y) // cond: // result: (MODW (SignExt8to16 x) (SignExt8to16 y)) @@ -23046,9 +22839,7 @@ func rewriteValue386_OpMod8_0(v *Value) bool { } func rewriteValue386_OpMod8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8u x y) // cond: // result: (MODWU (ZeroExt8to16 x) (ZeroExt8to16 y)) @@ -23068,9 +22859,7 @@ func rewriteValue386_OpMod8u_0(v *Value) bool { } func rewriteValue386_OpMove_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Move [0] _ _ mem) // cond: // result: mem @@ -23326,11 +23115,8 @@ func rewriteValue386_OpMove_0(v *Value) bool { } func rewriteValue386_OpMove_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Move [s] dst src mem) // cond: s > 8 && s <= 4*128 && s%4 == 0 && !config.noDuffDevice // result: (DUFFCOPY [10*(128-s/4)] dst src mem) @@ -23481,11 +23267,8 @@ func rewriteValue386_OpNeg32_0(v *Value) bool { } func rewriteValue386_OpNeg32F_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Neg32F x) // cond: !config.use387 // result: (PXOR x (MOVSSconst [auxFrom32F(float32(math.Copysign(0, -1)))])) @@ -23517,11 +23300,8 @@ func rewriteValue386_OpNeg32F_0(v *Value) bool { } func rewriteValue386_OpNeg64F_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Neg64F x) // cond: !config.use387 // result: (PXOR x (MOVSDconst [auxFrom64F(math.Copysign(0, -1))])) @@ -23564,7 +23344,6 @@ func rewriteValue386_OpNeg8_0(v *Value) bool { } func rewriteValue386_OpNeq16_0(v *Value) bool { b := v.Block - _ = b // match: (Neq16 x y) // cond: // result: (SETNE (CMPW x y)) @@ -23582,7 +23361,6 @@ func rewriteValue386_OpNeq16_0(v *Value) bool { } func rewriteValue386_OpNeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32 x y) // cond: // result: (SETNE (CMPL x y)) @@ -23600,7 +23378,6 @@ func rewriteValue386_OpNeq32_0(v *Value) bool { } func rewriteValue386_OpNeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32F x y) // cond: // result: (SETNEF (UCOMISS x y)) @@ -23618,7 +23395,6 @@ func rewriteValue386_OpNeq32F_0(v *Value) bool { } func rewriteValue386_OpNeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64F x y) // cond: // result: (SETNEF (UCOMISD x y)) @@ -23636,7 +23412,6 @@ func rewriteValue386_OpNeq64F_0(v *Value) bool { } func rewriteValue386_OpNeq8_0(v *Value) bool { b := v.Block - _ = b // match: (Neq8 x y) // cond: // result: (SETNE (CMPB x y)) @@ -23654,7 +23429,6 @@ func rewriteValue386_OpNeq8_0(v *Value) bool { } func rewriteValue386_OpNeqB_0(v *Value) bool { b := v.Block - _ = b // match: (NeqB x y) // cond: // result: (SETNE (CMPB x y)) @@ -23672,7 +23446,6 @@ func rewriteValue386_OpNeqB_0(v *Value) bool { } func rewriteValue386_OpNeqPtr_0(v *Value) bool { b := v.Block - _ = b // match: (NeqPtr x y) // cond: // result: (SETNE (CMPL x y)) @@ -23809,7 +23582,6 @@ func rewriteValue386_OpRound64F_0(v *Value) bool { } func rewriteValue386_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux16 x y) // cond: // result: (ANDL (SHRW x y) (SBBLcarrymask (CMPWconst y [16]))) @@ -23834,7 +23606,6 @@ func rewriteValue386_OpRsh16Ux16_0(v *Value) bool { } func rewriteValue386_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux32 x y) // cond: // result: (ANDL (SHRW x y) (SBBLcarrymask (CMPLconst y [16]))) @@ -23898,7 +23669,6 @@ func rewriteValue386_OpRsh16Ux64_0(v *Value) bool { } func rewriteValue386_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux8 x y) // cond: // result: (ANDL (SHRW x y) (SBBLcarrymask (CMPBconst y [16]))) @@ -23923,7 +23693,6 @@ func rewriteValue386_OpRsh16Ux8_0(v *Value) bool { } func rewriteValue386_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x16 x y) // cond: // result: (SARW x (ORL y (NOTL (SBBLcarrymask (CMPWconst y [16]))))) @@ -23951,7 +23720,6 @@ func rewriteValue386_OpRsh16x16_0(v *Value) bool { } func rewriteValue386_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x32 x y) // cond: // result: (SARW x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [16]))))) @@ -24020,7 +23788,6 @@ func rewriteValue386_OpRsh16x64_0(v *Value) bool { } func rewriteValue386_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x8 x y) // cond: // result: (SARW x (ORL y (NOTL (SBBLcarrymask (CMPBconst y [16]))))) @@ -24048,7 +23815,6 @@ func rewriteValue386_OpRsh16x8_0(v *Value) bool { } func rewriteValue386_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux16 x y) // cond: // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPWconst y [32]))) @@ -24073,7 +23839,6 @@ func rewriteValue386_OpRsh32Ux16_0(v *Value) bool { } func rewriteValue386_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux32 x y) // cond: // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPLconst y [32]))) @@ -24137,7 +23902,6 @@ func rewriteValue386_OpRsh32Ux64_0(v *Value) bool { } func rewriteValue386_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux8 x y) // cond: // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPBconst y [32]))) @@ -24162,7 +23926,6 @@ func rewriteValue386_OpRsh32Ux8_0(v *Value) bool { } func rewriteValue386_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x16 x y) // cond: // result: (SARL x (ORL y (NOTL (SBBLcarrymask (CMPWconst y [32]))))) @@ -24190,7 +23953,6 @@ func rewriteValue386_OpRsh32x16_0(v *Value) bool { } func rewriteValue386_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x32 x y) // cond: // result: (SARL x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [32]))))) @@ -24259,7 +24021,6 @@ func rewriteValue386_OpRsh32x64_0(v *Value) bool { } func rewriteValue386_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x8 x y) // cond: // result: (SARL x (ORL y (NOTL (SBBLcarrymask (CMPBconst y [32]))))) @@ -24287,7 +24048,6 @@ func rewriteValue386_OpRsh32x8_0(v *Value) bool { } func rewriteValue386_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux16 x y) // cond: // result: (ANDL (SHRB x y) (SBBLcarrymask (CMPWconst y [8]))) @@ -24312,7 +24072,6 @@ func rewriteValue386_OpRsh8Ux16_0(v *Value) bool { } func rewriteValue386_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux32 x y) // cond: // result: (ANDL (SHRB x y) (SBBLcarrymask (CMPLconst y [8]))) @@ -24376,7 +24135,6 @@ func rewriteValue386_OpRsh8Ux64_0(v *Value) bool { } func rewriteValue386_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux8 x y) // cond: // result: (ANDL (SHRB x y) (SBBLcarrymask (CMPBconst y [8]))) @@ -24401,7 +24159,6 @@ func rewriteValue386_OpRsh8Ux8_0(v *Value) bool { } func rewriteValue386_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x16 x y) // cond: // result: (SARB x (ORL y (NOTL (SBBLcarrymask (CMPWconst y [8]))))) @@ -24429,7 +24186,6 @@ func rewriteValue386_OpRsh8x16_0(v *Value) bool { } func rewriteValue386_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x32 x y) // cond: // result: (SARB x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [8]))))) @@ -24498,7 +24254,6 @@ func rewriteValue386_OpRsh8x64_0(v *Value) bool { } func rewriteValue386_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x8 x y) // cond: // result: (SARB x (ORL y (NOTL (SBBLcarrymask (CMPBconst y [8]))))) @@ -24526,9 +24281,7 @@ func rewriteValue386_OpRsh8x8_0(v *Value) bool { } func rewriteValue386_OpSelect0_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Select0 (Mul32uover x y)) // cond: // result: (Select0 (MULLU x y)) @@ -24552,9 +24305,7 @@ func rewriteValue386_OpSelect0_0(v *Value) bool { } func rewriteValue386_OpSelect1_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Select1 (Mul32uover x y)) // cond: // result: (SETO (Select1 (MULLU x y))) @@ -24624,7 +24375,6 @@ func rewriteValue386_OpSignmask_0(v *Value) bool { } func rewriteValue386_OpSlicemask_0(v *Value) bool { b := v.Block - _ = b // match: (Slicemask x) // cond: // result: (SARLconst (NEGL x) [31]) @@ -24970,9 +24720,7 @@ func rewriteValue386_OpXor8_0(v *Value) bool { } func rewriteValue386_OpZero_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Zero [0] _ mem) // cond: // result: mem @@ -25163,11 +24911,8 @@ func rewriteValue386_OpZero_0(v *Value) bool { } func rewriteValue386_OpZero_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Zero [12] destptr mem) // cond: // result: (MOVLstoreconst [makeValAndOff(0,8)] destptr (MOVLstoreconst [makeValAndOff(0,4)] destptr (MOVLstoreconst [0] destptr mem))) @@ -25299,7 +25044,6 @@ func rewriteValue386_OpZeroExt8to32_0(v *Value) bool { } func rewriteValue386_OpZeromask_0(v *Value) bool { b := v.Block - _ = b // match: (Zeromask x) // cond: // result: (XORLconst [-1] (SBBLcarrymask (CMPLconst x [1]))) diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index b52e53f9d2..0b87c2f382 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -2115,9 +2115,7 @@ func rewriteValueAMD64_OpAMD64ADDLconstmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ADDLload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ADDLload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ADDLload [off1+off2] {sym} val base mem) @@ -3076,9 +3074,7 @@ func rewriteValueAMD64_OpAMD64ADDQconstmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ADDQload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ADDQload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ADDQload [off1+off2] {sym} val base mem) @@ -3278,9 +3274,7 @@ func rewriteValueAMD64_OpAMD64ADDSD_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ADDSDload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ADDSDload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ADDSDload [off1+off2] {sym} val base mem) @@ -3424,9 +3418,7 @@ func rewriteValueAMD64_OpAMD64ADDSS_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ADDSSload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ADDSSload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ADDSSload [off1+off2] {sym} val base mem) @@ -3515,9 +3507,7 @@ func rewriteValueAMD64_OpAMD64ADDSSload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ANDL_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDL (NOTL (SHLL (MOVLconst [1]) y)) x) // cond: !config.nacl // result: (BTRL x y) @@ -3720,9 +3710,7 @@ func rewriteValueAMD64_OpAMD64ANDL_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ANDLconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDLconst [c] x) // cond: isUint32PowerOfTwo(^c) && uint64(^c) >= 128 && !config.nacl // result: (BTRLconst [log2uint32(^c)] x) @@ -3889,9 +3877,7 @@ func rewriteValueAMD64_OpAMD64ANDLconstmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ANDLload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ANDLload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ANDLload [off1+off2] {sym} val base mem) @@ -4036,9 +4022,7 @@ func rewriteValueAMD64_OpAMD64ANDLmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ANDQ_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDQ (NOTQ (SHLQ (MOVQconst [1]) y)) x) // cond: !config.nacl // result: (BTRQ x y) @@ -4247,9 +4231,7 @@ func rewriteValueAMD64_OpAMD64ANDQ_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ANDQconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ANDQconst [c] x) // cond: isUint64PowerOfTwo(^c) && uint64(^c) >= 128 && !config.nacl // result: (BTRQconst [log2(^c)] x) @@ -4426,9 +4408,7 @@ func rewriteValueAMD64_OpAMD64ANDQconstmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ANDQload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ANDQload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ANDQload [off1+off2] {sym} val base mem) @@ -4573,7 +4553,6 @@ func rewriteValueAMD64_OpAMD64ANDQmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64BSFQ_0(v *Value) bool { b := v.Block - _ = b // match: (BSFQ (ORQconst [1<<8] (MOVBQZX x))) // cond: // result: (BSFQ (ORQconst [1<<8] x)) @@ -8796,7 +8775,6 @@ func rewriteValueAMD64_OpAMD64CMOVWNE_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64CMPB_0(v *Value) bool { b := v.Block - _ = b // match: (CMPB x (MOVLconst [c])) // cond: // result: (CMPBconst x [int64(int8(c))]) @@ -8889,7 +8867,6 @@ func rewriteValueAMD64_OpAMD64CMPB_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64CMPBconst_0(v *Value) bool { b := v.Block - _ = b // match: (CMPBconst (MOVLconst [x]) [y]) // cond: int8(x)==int8(y) // result: (FlagEQ) @@ -9199,7 +9176,6 @@ func rewriteValueAMD64_OpAMD64CMPBload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64CMPL_0(v *Value) bool { b := v.Block - _ = b // match: (CMPL x (MOVLconst [c])) // cond: // result: (CMPLconst x [c]) @@ -9457,7 +9433,6 @@ func rewriteValueAMD64_OpAMD64CMPLconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64CMPLconst_10(v *Value) bool { b := v.Block - _ = b // match: (CMPLconst l:(MOVLload {sym} [off] ptr mem) [c]) // cond: l.Uses == 1 && validValAndOff(c, off) && clobber(l) // result: @l.Block (CMPLconstload {sym} [makeValAndOff(c,off)] ptr mem) @@ -9621,7 +9596,6 @@ func rewriteValueAMD64_OpAMD64CMPLload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64CMPQ_0(v *Value) bool { b := v.Block - _ = b // match: (CMPQ x (MOVQconst [c])) // cond: is32Bit(c) // result: (CMPQconst x [c]) @@ -9904,7 +9878,6 @@ func rewriteValueAMD64_OpAMD64CMPQconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64CMPQconst_10(v *Value) bool { b := v.Block - _ = b // match: (CMPQconst (SHRQconst _ [c]) [n]) // cond: 0 <= n && 0 < c && c <= 64 && (1< [off] {sym} ptr mem) @@ -12228,7 +12198,6 @@ func rewriteValueAMD64_OpAMD64MOVBQSXload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVBQZX_0(v *Value) bool { b := v.Block - _ = b // match: (MOVBQZX x:(MOVBload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVBload [off] {sym} ptr mem) @@ -13011,7 +12980,6 @@ func rewriteValueAMD64_OpAMD64MOVBstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVBstore_10(v *Value) bool { b := v.Block - _ = b // match: (MOVBstore [off] {sym} ptr (MOVBQSX x) mem) // cond: // result: (MOVBstore [off] {sym} ptr x mem) @@ -13362,9 +13330,7 @@ func rewriteValueAMD64_OpAMD64MOVBstore_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVBstore_20(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVBstore [i] {s} p w x6:(MOVBstore [i-1] {s} p (SHRQconst [8] w) x5:(MOVBstore [i-2] {s} p (SHRQconst [16] w) x4:(MOVBstore [i-3] {s} p (SHRQconst [24] w) x3:(MOVBstore [i-4] {s} p (SHRQconst [32] w) x2:(MOVBstore [i-5] {s} p (SHRQconst [40] w) x1:(MOVBstore [i-6] {s} p (SHRQconst [48] w) x0:(MOVBstore [i-7] {s} p (SHRQconst [56] w) mem)))))))) // cond: x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) // result: (MOVQstore [i-7] {s} p (BSWAPQ w) mem) @@ -14358,7 +14324,6 @@ func rewriteValueAMD64_OpAMD64MOVBstoreconstidx1_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVBstoreidx1_0(v *Value) bool { b := v.Block - _ = b // match: (MOVBstoreidx1 [c] {sym} (ADDQconst [d] ptr) idx val mem) // cond: is32Bit(c+d) // result: (MOVBstoreidx1 [c+d] {sym} ptr idx val mem) @@ -15081,7 +15046,6 @@ func rewriteValueAMD64_OpAMD64MOVBstoreidx1_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLQSX_0(v *Value) bool { b := v.Block - _ = b // match: (MOVLQSX x:(MOVLload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVLQSXload [off] {sym} ptr mem) @@ -15247,7 +15211,6 @@ func rewriteValueAMD64_OpAMD64MOVLQSXload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLQZX_0(v *Value) bool { b := v.Block - _ = b // match: (MOVLQZX x:(MOVLload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVLload [off] {sym} ptr mem) @@ -15479,7 +15442,6 @@ func rewriteValueAMD64_OpAMD64MOVLatomicload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLf2i_0(v *Value) bool { b := v.Block - _ = b // match: (MOVLf2i (Arg [off] {sym})) // cond: t.Size() == u.Size() // result: @b.Func.Entry (Arg [off] {sym}) @@ -15507,7 +15469,6 @@ func rewriteValueAMD64_OpAMD64MOVLf2i_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLi2f_0(v *Value) bool { b := v.Block - _ = b // match: (MOVLi2f (Arg [off] {sym})) // cond: t.Size() == u.Size() // result: @b.Func.Entry (Arg [off] {sym}) @@ -15797,9 +15758,7 @@ func rewriteValueAMD64_OpAMD64MOVLload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLload_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVLload [off] {sym} (SB) _) // cond: symIsRO(sym) // result: (MOVQconst [int64(read32(sym, off, config.BigEndian))]) @@ -16501,9 +16460,7 @@ func rewriteValueAMD64_OpAMD64MOVLstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLstore_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVLstore [i] {s} p (SHRQconst [32] w) x:(MOVLstore [i-4] {s} p w mem)) // cond: x.Uses == 1 && clobber(x) // result: (MOVQstore [i-4] {s} p w mem) @@ -17692,9 +17649,7 @@ func rewriteValueAMD64_OpAMD64MOVLstore_30(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLstoreconst_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVLstoreconst [sc] {s} (ADDQconst [off] ptr) mem) // cond: ValAndOff(sc).canAdd(off) // result: (MOVLstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) @@ -17944,9 +17899,7 @@ func rewriteValueAMD64_OpAMD64MOVLstoreconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLstoreconstidx1_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVLstoreconstidx1 [c] {sym} ptr (SHLQconst [2] idx) mem) // cond: // result: (MOVLstoreconstidx4 [c] {sym} ptr idx mem) @@ -18067,9 +18020,7 @@ func rewriteValueAMD64_OpAMD64MOVLstoreconstidx1_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLstoreconstidx4_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVLstoreconstidx4 [x] {sym} (ADDQconst [c] ptr) idx mem) // cond: ValAndOff(x).canAdd(c) // result: (MOVLstoreconstidx4 [ValAndOff(x).add(c)] {sym} ptr idx mem) @@ -18412,7 +18363,6 @@ func rewriteValueAMD64_OpAMD64MOVLstoreidx1_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVLstoreidx4_0(v *Value) bool { b := v.Block - _ = b // match: (MOVLstoreidx4 [c] {sym} (ADDQconst [d] ptr) idx val mem) // cond: is32Bit(c+d) // result: (MOVLstoreidx4 [c+d] {sym} ptr idx val mem) @@ -18855,7 +18805,6 @@ func rewriteValueAMD64_OpAMD64MOVQatomicload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVQf2i_0(v *Value) bool { b := v.Block - _ = b // match: (MOVQf2i (Arg [off] {sym})) // cond: t.Size() == u.Size() // result: @b.Func.Entry (Arg [off] {sym}) @@ -18883,7 +18832,6 @@ func rewriteValueAMD64_OpAMD64MOVQf2i_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVQi2f_0(v *Value) bool { b := v.Block - _ = b // match: (MOVQi2f (Arg [off] {sym})) // cond: t.Size() == u.Size() // result: @b.Func.Entry (Arg [off] {sym}) @@ -18911,9 +18859,7 @@ func rewriteValueAMD64_OpAMD64MOVQi2f_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVQload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVQload [off] {sym} ptr (MOVQstore [off2] {sym2} ptr2 x _)) // cond: sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) // result: x @@ -20645,9 +20591,7 @@ func rewriteValueAMD64_OpAMD64MOVQstore_30(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVQstoreconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVQstoreconst [sc] {s} (ADDQconst [off] ptr) mem) // cond: ValAndOff(sc).canAdd(off) // result: (MOVQstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) @@ -22609,7 +22553,6 @@ func rewriteValueAMD64_OpAMD64MOVSSstoreidx4_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVWQSX_0(v *Value) bool { b := v.Block - _ = b // match: (MOVWQSX x:(MOVWload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVWQSXload [off] {sym} ptr mem) @@ -22788,7 +22731,6 @@ func rewriteValueAMD64_OpAMD64MOVWQSXload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVWQZX_0(v *Value) bool { b := v.Block - _ = b // match: (MOVWQZX x:(MOVWload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVWload [off] {sym} ptr mem) @@ -22981,9 +22923,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVWload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWload [off] {sym} ptr (MOVWstore [off2] {sym2} ptr2 x _)) // cond: sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) // result: (MOVWQZX x) @@ -23775,9 +23715,7 @@ func rewriteValueAMD64_OpAMD64MOVWstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVWstore_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVWstore [i] {s} p (SHRQconst [16] w) x:(MOVWstore [i-2] {s} p w mem)) // cond: x.Uses == 1 && clobber(x) // result: (MOVLstore [i-2] {s} p w mem) @@ -24405,7 +24343,6 @@ func rewriteValueAMD64_OpAMD64MOVWstoreconstidx1_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVWstoreconstidx2_0(v *Value) bool { b := v.Block - _ = b // match: (MOVWstoreconstidx2 [x] {sym} (ADDQconst [c] ptr) idx mem) // cond: ValAndOff(x).canAdd(c) // result: (MOVWstoreconstidx2 [ValAndOff(x).add(c)] {sym} ptr idx mem) @@ -24823,7 +24760,6 @@ func rewriteValueAMD64_OpAMD64MOVWstoreidx1_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MOVWstoreidx2_0(v *Value) bool { b := v.Block - _ = b // match: (MOVWstoreidx2 [c] {sym} (ADDQconst [d] ptr) idx val mem) // cond: is32Bit(c+d) // result: (MOVWstoreidx2 [c+d] {sym} ptr idx val mem) @@ -25109,7 +25045,6 @@ func rewriteValueAMD64_OpAMD64MULL_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MULLconst_0(v *Value) bool { b := v.Block - _ = b // match: (MULLconst [c] (MULLconst [d] x)) // cond: // result: (MULLconst [int64(int32(c * d))] x) @@ -25253,7 +25188,6 @@ func rewriteValueAMD64_OpAMD64MULLconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MULLconst_10(v *Value) bool { b := v.Block - _ = b // match: (MULLconst [ 9] x) // cond: // result: (LEAL8 x x) @@ -25421,7 +25355,6 @@ func rewriteValueAMD64_OpAMD64MULLconst_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64MULLconst_20(v *Value) bool { b := v.Block - _ = b // match: (MULLconst [73] x) // cond: // result: (LEAL8 x (LEAL8 x x)) @@ -25655,7 +25588,6 @@ func rewriteValueAMD64_OpAMD64MULQ_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MULQconst_0(v *Value) bool { b := v.Block - _ = b // match: (MULQconst [c] (MULQconst [d] x)) // cond: is32Bit(c*d) // result: (MULQconst [c * d] x) @@ -25802,7 +25734,6 @@ func rewriteValueAMD64_OpAMD64MULQconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MULQconst_10(v *Value) bool { b := v.Block - _ = b // match: (MULQconst [ 9] x) // cond: // result: (LEAQ8 x x) @@ -25970,7 +25901,6 @@ func rewriteValueAMD64_OpAMD64MULQconst_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64MULQconst_20(v *Value) bool { b := v.Block - _ = b // match: (MULQconst [73] x) // cond: // result: (LEAQ8 x (LEAQ8 x x)) @@ -26218,9 +26148,7 @@ func rewriteValueAMD64_OpAMD64MULSD_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MULSDload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MULSDload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (MULSDload [off1+off2] {sym} val base mem) @@ -26364,9 +26292,7 @@ func rewriteValueAMD64_OpAMD64MULSS_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64MULSSload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MULSSload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (MULSSload [off1+off2] {sym} val base mem) @@ -26569,9 +26495,7 @@ func rewriteValueAMD64_OpAMD64NOTQ_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORL (SHLL (MOVLconst [1]) y) x) // cond: !config.nacl // result: (BTSL x y) @@ -29806,9 +29730,7 @@ func rewriteValueAMD64_OpAMD64ORL_40(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_50(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL (SHRB x (ANDLconst y [ 7])) (SHLL x (NEGL (ADDLconst (ANDLconst y [ 7]) [ -8])))) // cond: v.Type.Size() == 1 // result: (RORB x y) @@ -30327,9 +30249,7 @@ func rewriteValueAMD64_OpAMD64ORL_50(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_60(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL or:(ORL y s0:(SHLLconst [j0] x0:(MOVBload [i0] {s} p mem))) s1:(SHLLconst [j1] x1:(MOVBload [i1] {s} p mem))) // cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORL (SHLLconst [j0] (MOVWload [i0] {s} p mem)) y) @@ -30884,9 +30804,7 @@ func rewriteValueAMD64_OpAMD64ORL_60(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_70(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL x0:(MOVWloadidx1 [i0] {s} idx p mem) sh:(SHLLconst [16] x1:(MOVWloadidx1 [i1] {s} p idx mem))) // cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem) @@ -31476,9 +31394,7 @@ func rewriteValueAMD64_OpAMD64ORL_70(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_80(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL s1:(SHLLconst [j1] x1:(MOVBloadidx1 [i1] {s} idx p mem)) or:(ORL s0:(SHLLconst [j0] x0:(MOVBloadidx1 [i0] {s} idx p mem)) y)) // cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORL (SHLLconst [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y) @@ -32173,9 +32089,7 @@ func rewriteValueAMD64_OpAMD64ORL_80(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_90(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL or:(ORL s0:(SHLLconst [j0] x0:(MOVBloadidx1 [i0] {s} idx p mem)) y) s1:(SHLLconst [j1] x1:(MOVBloadidx1 [i1] {s} idx p mem))) // cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORL (SHLLconst [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y) @@ -32822,9 +32736,7 @@ func rewriteValueAMD64_OpAMD64ORL_90(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_100(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL or:(ORL y s1:(SHLLconst [j1] x1:(MOVBload [i1] {s} p mem))) s0:(SHLLconst [j0] x0:(MOVBload [i0] {s} p mem))) // cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORL (SHLLconst [j1] (ROLWconst [8] (MOVWload [i0] {s} p mem))) y) @@ -33422,9 +33334,7 @@ func rewriteValueAMD64_OpAMD64ORL_100(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_110(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL r1:(ROLWconst [8] x1:(MOVWloadidx1 [i1] {s} idx p mem)) sh:(SHLLconst [16] r0:(ROLWconst [8] x0:(MOVWloadidx1 [i0] {s} p idx mem)))) // cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh) // result: @mergePoint(b,x0,x1) (BSWAPL (MOVLloadidx1 [i0] {s} p idx mem)) @@ -34135,9 +34045,7 @@ func rewriteValueAMD64_OpAMD64ORL_110(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_120(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL s0:(SHLLconst [j0] x0:(MOVBloadidx1 [i0] {s} idx p mem)) or:(ORL s1:(SHLLconst [j1] x1:(MOVBloadidx1 [i1] {s} idx p mem)) y)) // cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORL (SHLLconst [j1] (ROLWconst [8] (MOVWloadidx1 [i0] {s} p idx mem))) y) @@ -34862,9 +34770,7 @@ func rewriteValueAMD64_OpAMD64ORL_120(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORL_130(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORL or:(ORL s1:(SHLLconst [j1] x1:(MOVBloadidx1 [i1] {s} idx p mem)) y) s0:(SHLLconst [j0] x0:(MOVBloadidx1 [i0] {s} idx p mem))) // cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORL (SHLLconst [j1] (ROLWconst [8] (MOVWloadidx1 [i0] {s} p idx mem))) y) @@ -35137,9 +35043,7 @@ func rewriteValueAMD64_OpAMD64ORL_130(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORLconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORLconst [c] x) // cond: isUint32PowerOfTwo(c) && uint64(c) >= 128 && !config.nacl // result: (BTSLconst [log2uint32(c)] x) @@ -35282,9 +35186,7 @@ func rewriteValueAMD64_OpAMD64ORLconstmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORLload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORLload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ORLload [off1+off2] {sym} val base mem) @@ -35429,9 +35331,7 @@ func rewriteValueAMD64_OpAMD64ORLmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORQ (SHLQ (MOVQconst [1]) y) x) // cond: !config.nacl // result: (BTSQ x y) @@ -36451,9 +36351,7 @@ func rewriteValueAMD64_OpAMD64ORQ_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_20(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ (SHRQ x y) (ANDQ (SHLQ x (NEGL y)) (SBBQcarrymask (CMPLconst (NEGL (ADDLconst (ANDLconst y [63]) [-64])) [64])))) // cond: // result: (RORQ x y) @@ -36993,9 +36891,7 @@ func rewriteValueAMD64_OpAMD64ORQ_20(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_30(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ sh:(SHLQconst [32] x1:(MOVLload [i1] {s} p mem)) x0:(MOVLload [i0] {s} p mem)) // cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVQload [i0] {s} p mem) @@ -37615,9 +37511,7 @@ func rewriteValueAMD64_OpAMD64ORQ_30(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_40(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ x0:(MOVBloadidx1 [i0] {s} idx p mem) sh:(SHLQconst [8] x1:(MOVBloadidx1 [i1] {s} p idx mem))) // cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVWloadidx1 [i0] {s} p idx mem) @@ -38162,9 +38056,7 @@ func rewriteValueAMD64_OpAMD64ORQ_40(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_50(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ x0:(MOVWloadidx1 [i0] {s} idx p mem) sh:(SHLQconst [16] x1:(MOVWloadidx1 [i1] {s} idx p mem))) // cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem) @@ -38709,9 +38601,7 @@ func rewriteValueAMD64_OpAMD64ORQ_50(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_60(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ sh:(SHLQconst [32] x1:(MOVLloadidx1 [i1] {s} idx p mem)) x0:(MOVLloadidx1 [i0] {s} p idx mem)) // cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVQloadidx1 [i0] {s} p idx mem) @@ -39361,9 +39251,7 @@ func rewriteValueAMD64_OpAMD64ORQ_60(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_70(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ s1:(SHLQconst [j1] x1:(MOVBloadidx1 [i1] {s} idx p mem)) or:(ORQ y s0:(SHLQconst [j0] x0:(MOVBloadidx1 [i0] {s} idx p mem)))) // cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORQ (SHLQconst [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y) @@ -40058,9 +39946,7 @@ func rewriteValueAMD64_OpAMD64ORQ_70(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_80(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ s1:(SHLQconst [j1] x1:(MOVWloadidx1 [i1] {s} idx p mem)) or:(ORQ s0:(SHLQconst [j0] x0:(MOVWloadidx1 [i0] {s} p idx mem)) y)) // cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORQ (SHLQconst [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y) @@ -40755,9 +40641,7 @@ func rewriteValueAMD64_OpAMD64ORQ_80(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_90(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ or:(ORQ y s0:(SHLQconst [j0] x0:(MOVWloadidx1 [i0] {s} idx p mem))) s1:(SHLQconst [j1] x1:(MOVWloadidx1 [i1] {s} p idx mem))) // cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORQ (SHLQconst [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y) @@ -41400,9 +41284,7 @@ func rewriteValueAMD64_OpAMD64ORQ_90(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_100(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ sh:(SHLQconst [32] r0:(BSWAPL x0:(MOVLload [i0] {s} p mem))) r1:(BSWAPL x1:(MOVLload [i1] {s} p mem))) // cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh) // result: @mergePoint(b,x0,x1) (BSWAPQ (MOVQload [i0] {s} p mem)) @@ -42111,9 +41993,7 @@ func rewriteValueAMD64_OpAMD64ORQ_100(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_110(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ x1:(MOVBloadidx1 [i1] {s} idx p mem) sh:(SHLQconst [8] x0:(MOVBloadidx1 [i0] {s} p idx mem))) // cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (ROLWconst [8] (MOVWloadidx1 [i0] {s} p idx mem)) @@ -42727,9 +42607,7 @@ func rewriteValueAMD64_OpAMD64ORQ_110(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_120(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ r1:(ROLWconst [8] x1:(MOVWloadidx1 [i1] {s} idx p mem)) sh:(SHLQconst [16] r0:(ROLWconst [8] x0:(MOVWloadidx1 [i0] {s} idx p mem)))) // cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh) // result: @mergePoint(b,x0,x1) (BSWAPL (MOVLloadidx1 [i0] {s} p idx mem)) @@ -43404,9 +43282,7 @@ func rewriteValueAMD64_OpAMD64ORQ_120(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_130(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ sh:(SHLQconst [32] r0:(BSWAPL x0:(MOVLloadidx1 [i0] {s} idx p mem))) r1:(BSWAPL x1:(MOVLloadidx1 [i1] {s} p idx mem))) // cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh) // result: @mergePoint(b,x0,x1) (BSWAPQ (MOVQloadidx1 [i0] {s} p idx mem)) @@ -44107,9 +43983,7 @@ func rewriteValueAMD64_OpAMD64ORQ_130(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_140(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ s0:(SHLQconst [j0] x0:(MOVBloadidx1 [i0] {s} idx p mem)) or:(ORQ y s1:(SHLQconst [j1] x1:(MOVBloadidx1 [i1] {s} idx p mem)))) // cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORQ (SHLQconst [j1] (ROLWconst [8] (MOVWloadidx1 [i0] {s} p idx mem))) y) @@ -44847,9 +44721,7 @@ func rewriteValueAMD64_OpAMD64ORQ_140(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_150(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ s0:(SHLQconst [j0] r0:(ROLWconst [8] x0:(MOVWloadidx1 [i0] {s} idx p mem))) or:(ORQ s1:(SHLQconst [j1] r1:(ROLWconst [8] x1:(MOVWloadidx1 [i1] {s} p idx mem))) y)) // cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORQ (SHLQconst [j1] (BSWAPL (MOVLloadidx1 [i0] {s} p idx mem))) y) @@ -45704,9 +45576,7 @@ func rewriteValueAMD64_OpAMD64ORQ_150(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQ_160(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQ or:(ORQ y s1:(SHLQconst [j1] r1:(ROLWconst [8] x1:(MOVWloadidx1 [i1] {s} idx p mem)))) s0:(SHLQconst [j0] r0:(ROLWconst [8] x0:(MOVWloadidx1 [i0] {s} p idx mem)))) // cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORQ (SHLQconst [j1] (BSWAPL (MOVLloadidx1 [i0] {s} p idx mem))) y) @@ -46188,9 +46058,7 @@ func rewriteValueAMD64_OpAMD64ORQ_160(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ORQconst [c] x) // cond: isUint64PowerOfTwo(c) && uint64(c) >= 128 && !config.nacl // result: (BTSQconst [log2(c)] x) @@ -46331,9 +46199,7 @@ func rewriteValueAMD64_OpAMD64ORQconstmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64ORQload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORQload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (ORQload [off1+off2] {sym} val base mem) @@ -47207,7 +47073,6 @@ func rewriteValueAMD64_OpAMD64SARBconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SARL_0(v *Value) bool { b := v.Block - _ = b // match: (SARL x (MOVQconst [c])) // cond: // result: (SARLconst [c&31] x) @@ -47462,7 +47327,6 @@ func rewriteValueAMD64_OpAMD64SARLconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SARQ_0(v *Value) bool { b := v.Block - _ = b // match: (SARQ x (MOVQconst [c])) // cond: // result: (SARQconst [c&63] x) @@ -48119,7 +47983,6 @@ func rewriteValueAMD64_OpAMD64SETAE_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETAEstore_0(v *Value) bool { b := v.Block - _ = b // match: (SETAEstore [off] {sym} ptr (InvertFlags x) mem) // cond: // result: (SETBEstore [off] {sym} ptr x mem) @@ -48314,7 +48177,6 @@ func rewriteValueAMD64_OpAMD64SETAEstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETAstore_0(v *Value) bool { b := v.Block - _ = b // match: (SETAstore [off] {sym} ptr (InvertFlags x) mem) // cond: // result: (SETBstore [off] {sym} ptr x mem) @@ -48661,7 +48523,6 @@ func rewriteValueAMD64_OpAMD64SETBE_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETBEstore_0(v *Value) bool { b := v.Block - _ = b // match: (SETBEstore [off] {sym} ptr (InvertFlags x) mem) // cond: // result: (SETAEstore [off] {sym} ptr x mem) @@ -48856,7 +48717,6 @@ func rewriteValueAMD64_OpAMD64SETBEstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETBstore_0(v *Value) bool { b := v.Block - _ = b // match: (SETBstore [off] {sym} ptr (InvertFlags x) mem) // cond: // result: (SETAstore [off] {sym} ptr x mem) @@ -49051,9 +48911,7 @@ func rewriteValueAMD64_OpAMD64SETBstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETEQ_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETEQ (TESTL (SHLL (MOVLconst [1]) x) y)) // cond: !config.nacl // result: (SETAE (BTL x y)) @@ -49330,9 +49188,7 @@ func rewriteValueAMD64_OpAMD64SETEQ_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETEQ_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETEQ (TESTQ z1:(SHLQconst [63] (SHRQconst [63] x)) z2)) // cond: z1==z2 && !config.nacl // result: (SETAE (BTQconst [63] x)) @@ -49673,9 +49529,7 @@ func rewriteValueAMD64_OpAMD64SETEQ_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETEQ_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETEQ (TESTL z1:(SHRLconst [31] x) z2)) // cond: z1==z2 && !config.nacl // result: (SETAE (BTLconst [31] x)) @@ -49809,9 +49663,7 @@ func rewriteValueAMD64_OpAMD64SETEQ_20(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETEQstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETEQstore [off] {sym} ptr (TESTL (SHLL (MOVLconst [1]) x) y) mem) // cond: !config.nacl // result: (SETAEstore [off] {sym} ptr (BTL x y) mem) @@ -50178,9 +50030,7 @@ func rewriteValueAMD64_OpAMD64SETEQstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETEQstore_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETEQstore [off] {sym} ptr (TESTQ z1:(SHLQconst [63] (SHRQconst [63] x)) z2) mem) // cond: z1==z2 && !config.nacl // result: (SETAEstore [off] {sym} ptr (BTQconst [63] x) mem) @@ -50611,9 +50461,7 @@ func rewriteValueAMD64_OpAMD64SETEQstore_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETEQstore_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETEQstore [off] {sym} ptr (TESTL z1:(SHRLconst [31] x) z2) mem) // cond: z1==z2 && !config.nacl // result: (SETAEstore [off] {sym} ptr (BTLconst [31] x) mem) @@ -51034,7 +50882,6 @@ func rewriteValueAMD64_OpAMD64SETGE_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETGEstore_0(v *Value) bool { b := v.Block - _ = b // match: (SETGEstore [off] {sym} ptr (InvertFlags x) mem) // cond: // result: (SETLEstore [off] {sym} ptr x mem) @@ -51229,7 +51076,6 @@ func rewriteValueAMD64_OpAMD64SETGEstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETGstore_0(v *Value) bool { b := v.Block - _ = b // match: (SETGstore [off] {sym} ptr (InvertFlags x) mem) // cond: // result: (SETLstore [off] {sym} ptr x mem) @@ -51576,7 +51422,6 @@ func rewriteValueAMD64_OpAMD64SETLE_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETLEstore_0(v *Value) bool { b := v.Block - _ = b // match: (SETLEstore [off] {sym} ptr (InvertFlags x) mem) // cond: // result: (SETGEstore [off] {sym} ptr x mem) @@ -51771,7 +51616,6 @@ func rewriteValueAMD64_OpAMD64SETLEstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETLstore_0(v *Value) bool { b := v.Block - _ = b // match: (SETLstore [off] {sym} ptr (InvertFlags x) mem) // cond: // result: (SETGstore [off] {sym} ptr x mem) @@ -51966,9 +51810,7 @@ func rewriteValueAMD64_OpAMD64SETLstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETNE_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETNE (TESTL (SHLL (MOVLconst [1]) x) y)) // cond: !config.nacl // result: (SETB (BTL x y)) @@ -52245,9 +52087,7 @@ func rewriteValueAMD64_OpAMD64SETNE_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETNE_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETNE (TESTQ z1:(SHLQconst [63] (SHRQconst [63] x)) z2)) // cond: z1==z2 && !config.nacl // result: (SETB (BTQconst [63] x)) @@ -52588,9 +52428,7 @@ func rewriteValueAMD64_OpAMD64SETNE_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETNE_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETNE (TESTL z1:(SHRLconst [31] x) z2)) // cond: z1==z2 && !config.nacl // result: (SETB (BTLconst [31] x)) @@ -52724,9 +52562,7 @@ func rewriteValueAMD64_OpAMD64SETNE_20(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETNEstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETNEstore [off] {sym} ptr (TESTL (SHLL (MOVLconst [1]) x) y) mem) // cond: !config.nacl // result: (SETBstore [off] {sym} ptr (BTL x y) mem) @@ -53093,9 +52929,7 @@ func rewriteValueAMD64_OpAMD64SETNEstore_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETNEstore_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETNEstore [off] {sym} ptr (TESTQ z1:(SHLQconst [63] (SHRQconst [63] x)) z2) mem) // cond: z1==z2 && !config.nacl // result: (SETBstore [off] {sym} ptr (BTQconst [63] x) mem) @@ -53526,9 +53360,7 @@ func rewriteValueAMD64_OpAMD64SETNEstore_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64SETNEstore_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SETNEstore [off] {sym} ptr (TESTL z1:(SHRLconst [31] x) z2) mem) // cond: z1==z2 && !config.nacl // result: (SETBstore [off] {sym} ptr (BTLconst [31] x) mem) @@ -53797,7 +53629,6 @@ func rewriteValueAMD64_OpAMD64SETNEstore_20(v *Value) bool { } func rewriteValueAMD64_OpAMD64SHLL_0(v *Value) bool { b := v.Block - _ = b // match: (SHLL x (MOVQconst [c])) // cond: // result: (SHLLconst [c&31] x) @@ -54022,9 +53853,7 @@ func rewriteValueAMD64_OpAMD64SHLL_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SHLLconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SHLLconst [1] (SHRLconst [1] x)) // cond: !config.nacl // result: (BTRLconst [0] x) @@ -54065,7 +53894,6 @@ func rewriteValueAMD64_OpAMD64SHLLconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SHLQ_0(v *Value) bool { b := v.Block - _ = b // match: (SHLQ x (MOVQconst [c])) // cond: // result: (SHLQconst [c&63] x) @@ -54290,9 +54118,7 @@ func rewriteValueAMD64_OpAMD64SHLQ_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SHLQconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SHLQconst [1] (SHRQconst [1] x)) // cond: !config.nacl // result: (BTRQconst [0] x) @@ -54424,7 +54250,6 @@ func rewriteValueAMD64_OpAMD64SHRBconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SHRL_0(v *Value) bool { b := v.Block - _ = b // match: (SHRL x (MOVQconst [c])) // cond: // result: (SHRLconst [c&31] x) @@ -54649,9 +54474,7 @@ func rewriteValueAMD64_OpAMD64SHRL_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SHRLconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SHRLconst [1] (SHLLconst [1] x)) // cond: !config.nacl // result: (BTRLconst [31] x) @@ -54692,7 +54515,6 @@ func rewriteValueAMD64_OpAMD64SHRLconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SHRQ_0(v *Value) bool { b := v.Block - _ = b // match: (SHRQ x (MOVQconst [c])) // cond: // result: (SHRQconst [c&63] x) @@ -54917,9 +54739,7 @@ func rewriteValueAMD64_OpAMD64SHRQ_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SHRQconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SHRQconst [1] (SHLQconst [1] x)) // cond: !config.nacl // result: (BTRQconst [63] x) @@ -55051,7 +54871,6 @@ func rewriteValueAMD64_OpAMD64SHRWconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SUBL_0(v *Value) bool { b := v.Block - _ = b // match: (SUBL x (MOVLconst [c])) // cond: // result: (SUBLconst x [c]) @@ -55156,9 +54975,7 @@ func rewriteValueAMD64_OpAMD64SUBLconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SUBLload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SUBLload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (SUBLload [off1+off2] {sym} val base mem) @@ -55303,7 +55120,6 @@ func rewriteValueAMD64_OpAMD64SUBLmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SUBQ_0(v *Value) bool { b := v.Block - _ = b // match: (SUBQ x (MOVQconst [c])) // cond: is32Bit(c) // result: (SUBQconst x [c]) @@ -55472,9 +55288,7 @@ func rewriteValueAMD64_OpAMD64SUBQconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SUBQload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SUBQload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (SUBQload [off1+off2] {sym} val base mem) @@ -55648,9 +55462,7 @@ func rewriteValueAMD64_OpAMD64SUBSD_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SUBSDload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SUBSDload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (SUBSDload [off1+off2] {sym} val base mem) @@ -55768,9 +55580,7 @@ func rewriteValueAMD64_OpAMD64SUBSS_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64SUBSSload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SUBSSload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (SUBSSload [off1+off2] {sym} val base mem) @@ -55859,7 +55669,6 @@ func rewriteValueAMD64_OpAMD64SUBSSload_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64TESTB_0(v *Value) bool { b := v.Block - _ = b // match: (TESTB (MOVLconst [c]) x) // cond: // result: (TESTBconst [c] x) @@ -55971,7 +55780,6 @@ func rewriteValueAMD64_OpAMD64TESTBconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64TESTL_0(v *Value) bool { b := v.Block - _ = b // match: (TESTL (MOVLconst [c]) x) // cond: // result: (TESTLconst [c] x) @@ -56083,7 +55891,6 @@ func rewriteValueAMD64_OpAMD64TESTLconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64TESTQ_0(v *Value) bool { b := v.Block - _ = b // match: (TESTQ (MOVQconst [c]) x) // cond: is32Bit(c) // result: (TESTQconst [c] x) @@ -56201,7 +56008,6 @@ func rewriteValueAMD64_OpAMD64TESTQconst_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64TESTW_0(v *Value) bool { b := v.Block - _ = b // match: (TESTW (MOVLconst [c]) x) // cond: // result: (TESTWconst [c] x) @@ -56483,9 +56289,7 @@ func rewriteValueAMD64_OpAMD64XCHGQ_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64XORL_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORL (SHLL (MOVLconst [1]) y) x) // cond: !config.nacl // result: (BTCL x y) @@ -56848,9 +56652,7 @@ func rewriteValueAMD64_OpAMD64XORL_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64XORLconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORLconst [c] x) // cond: isUint32PowerOfTwo(c) && uint64(c) >= 128 && !config.nacl // result: (BTCLconst [log2uint32(c)] x) @@ -57144,9 +56946,7 @@ func rewriteValueAMD64_OpAMD64XORLconstmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64XORLload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (XORLload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (XORLload [off1+off2] {sym} val base mem) @@ -57291,9 +57091,7 @@ func rewriteValueAMD64_OpAMD64XORLmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64XORQ_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORQ (SHLQ (MOVQconst [1]) y) x) // cond: !config.nacl // result: (BTCQ x y) @@ -57550,9 +57348,7 @@ func rewriteValueAMD64_OpAMD64XORQ_10(v *Value) bool { } func rewriteValueAMD64_OpAMD64XORQconst_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (XORQconst [c] x) // cond: isUint64PowerOfTwo(c) && uint64(c) >= 128 && !config.nacl // result: (BTCQconst [log2(c)] x) @@ -57682,9 +57478,7 @@ func rewriteValueAMD64_OpAMD64XORQconstmodify_0(v *Value) bool { } func rewriteValueAMD64_OpAMD64XORQload_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (XORQload [off1] {sym} val (ADDQconst [off2] base) mem) // cond: is32Bit(off1+off2) // result: (XORQload [off1+off2] {sym} val base mem) @@ -57913,9 +57707,7 @@ func rewriteValueAMD64_OpAdd8_0(v *Value) bool { } func rewriteValueAMD64_OpAddPtr_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (AddPtr x y) // cond: config.PtrSize == 8 // result: (ADDQ x y) @@ -57950,9 +57742,7 @@ func rewriteValueAMD64_OpAddPtr_0(v *Value) bool { } func rewriteValueAMD64_OpAddr_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (Addr {sym} base) // cond: config.PtrSize == 8 // result: (LEAQ {sym} base) @@ -58055,9 +57845,7 @@ func rewriteValueAMD64_OpAndB_0(v *Value) bool { } func rewriteValueAMD64_OpAtomicAdd32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (AtomicAdd32 ptr val mem) // cond: // result: (AddTupleFirst32 val (XADDLlock val ptr mem)) @@ -58078,9 +57866,7 @@ func rewriteValueAMD64_OpAtomicAdd32_0(v *Value) bool { } func rewriteValueAMD64_OpAtomicAdd64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (AtomicAdd64 ptr val mem) // cond: // result: (AddTupleFirst64 val (XADDQlock val ptr mem)) @@ -58213,9 +57999,7 @@ func rewriteValueAMD64_OpAtomicLoad64_0(v *Value) bool { } func rewriteValueAMD64_OpAtomicLoadPtr_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (AtomicLoadPtr ptr mem) // cond: config.PtrSize == 8 // result: (MOVQatomicload ptr mem) @@ -58266,9 +58050,7 @@ func rewriteValueAMD64_OpAtomicOr8_0(v *Value) bool { } func rewriteValueAMD64_OpAtomicStore32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (AtomicStore32 ptr val mem) // cond: // result: (Select1 (XCHGL val ptr mem)) @@ -58288,9 +58070,7 @@ func rewriteValueAMD64_OpAtomicStore32_0(v *Value) bool { } func rewriteValueAMD64_OpAtomicStore64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (AtomicStore64 ptr val mem) // cond: // result: (Select1 (XCHGQ val ptr mem)) @@ -58310,11 +58090,8 @@ func rewriteValueAMD64_OpAtomicStore64_0(v *Value) bool { } func rewriteValueAMD64_OpAtomicStorePtrNoWB_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (AtomicStorePtrNoWB ptr val mem) // cond: config.PtrSize == 8 // result: (Select1 (XCHGQ val ptr mem)) @@ -58371,9 +58148,7 @@ func rewriteValueAMD64_OpAvg64u_0(v *Value) bool { } func rewriteValueAMD64_OpBitLen16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen16 x) // cond: // result: (BSRL (LEAL1 [1] (MOVWQZX x) (MOVWQZX x))) @@ -58394,9 +58169,7 @@ func rewriteValueAMD64_OpBitLen16_0(v *Value) bool { } func rewriteValueAMD64_OpBitLen32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen32 x) // cond: // result: (Select0 (BSRQ (LEAQ1 [1] (MOVLQZX x) (MOVLQZX x)))) @@ -58419,9 +58192,7 @@ func rewriteValueAMD64_OpBitLen32_0(v *Value) bool { } func rewriteValueAMD64_OpBitLen64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen64 x) // cond: // result: (ADDQconst [1] (CMOVQEQ (Select0 (BSRQ x)) (MOVQconst [-1]) (Select1 (BSRQ x)))) @@ -58450,9 +58221,7 @@ func rewriteValueAMD64_OpBitLen64_0(v *Value) bool { } func rewriteValueAMD64_OpBitLen8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen8 x) // cond: // result: (BSRL (LEAL1 [1] (MOVBQZX x) (MOVBQZX x))) @@ -59461,9 +59230,7 @@ func rewriteValueAMD64_OpCondSelect_30(v *Value) bool { } func rewriteValueAMD64_OpCondSelect_40(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (CondSelect x y (SETGF cond)) // cond: is16BitInt(t) // result: (CMOVWGTF y x cond) @@ -59715,9 +59482,7 @@ func rewriteValueAMD64_OpConstBool_0(v *Value) bool { } func rewriteValueAMD64_OpConstNil_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (ConstNil) // cond: config.PtrSize == 8 // result: (MOVQconst [0]) @@ -59744,9 +59509,7 @@ func rewriteValueAMD64_OpConstNil_0(v *Value) bool { } func rewriteValueAMD64_OpCtz16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz16 x) // cond: // result: (BSFL (BTSLconst [16] x)) @@ -59773,9 +59536,7 @@ func rewriteValueAMD64_OpCtz16NonZero_0(v *Value) bool { } func rewriteValueAMD64_OpCtz32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz32 x) // cond: // result: (Select0 (BSFQ (BTSQconst [32] x))) @@ -59804,9 +59565,7 @@ func rewriteValueAMD64_OpCtz32NonZero_0(v *Value) bool { } func rewriteValueAMD64_OpCtz64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz64 x) // cond: // result: (CMOVQEQ (Select0 (BSFQ x)) (MOVQconst [64]) (Select1 (BSFQ x))) @@ -59832,9 +59591,7 @@ func rewriteValueAMD64_OpCtz64_0(v *Value) bool { } func rewriteValueAMD64_OpCtz64NonZero_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz64NonZero x) // cond: // result: (Select0 (BSFQ x)) @@ -59849,9 +59606,7 @@ func rewriteValueAMD64_OpCtz64NonZero_0(v *Value) bool { } func rewriteValueAMD64_OpCtz8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz8 x) // cond: // result: (BSFL (BTSLconst [ 8] x)) @@ -60004,9 +59759,7 @@ func rewriteValueAMD64_OpDiv128u_0(v *Value) bool { } func rewriteValueAMD64_OpDiv16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16 [a] x y) // cond: // result: (Select0 (DIVW [a] x y)) @@ -60026,9 +59779,7 @@ func rewriteValueAMD64_OpDiv16_0(v *Value) bool { } func rewriteValueAMD64_OpDiv16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16u x y) // cond: // result: (Select0 (DIVWU x y)) @@ -60046,9 +59797,7 @@ func rewriteValueAMD64_OpDiv16u_0(v *Value) bool { } func rewriteValueAMD64_OpDiv32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32 [a] x y) // cond: // result: (Select0 (DIVL [a] x y)) @@ -60082,9 +59831,7 @@ func rewriteValueAMD64_OpDiv32F_0(v *Value) bool { } func rewriteValueAMD64_OpDiv32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32u x y) // cond: // result: (Select0 (DIVLU x y)) @@ -60102,9 +59849,7 @@ func rewriteValueAMD64_OpDiv32u_0(v *Value) bool { } func rewriteValueAMD64_OpDiv64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div64 [a] x y) // cond: // result: (Select0 (DIVQ [a] x y)) @@ -60138,9 +59883,7 @@ func rewriteValueAMD64_OpDiv64F_0(v *Value) bool { } func rewriteValueAMD64_OpDiv64u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div64u x y) // cond: // result: (Select0 (DIVQU x y)) @@ -60158,9 +59901,7 @@ func rewriteValueAMD64_OpDiv64u_0(v *Value) bool { } func rewriteValueAMD64_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 x y) // cond: // result: (Select0 (DIVW (SignExt8to16 x) (SignExt8to16 y))) @@ -60182,9 +59923,7 @@ func rewriteValueAMD64_OpDiv8_0(v *Value) bool { } func rewriteValueAMD64_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u x y) // cond: // result: (Select0 (DIVWU (ZeroExt8to16 x) (ZeroExt8to16 y))) @@ -60206,7 +59945,6 @@ func rewriteValueAMD64_OpDiv8u_0(v *Value) bool { } func rewriteValueAMD64_OpEq16_0(v *Value) bool { b := v.Block - _ = b // match: (Eq16 x y) // cond: // result: (SETEQ (CMPW x y)) @@ -60224,7 +59962,6 @@ func rewriteValueAMD64_OpEq16_0(v *Value) bool { } func rewriteValueAMD64_OpEq32_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32 x y) // cond: // result: (SETEQ (CMPL x y)) @@ -60242,7 +59979,6 @@ func rewriteValueAMD64_OpEq32_0(v *Value) bool { } func rewriteValueAMD64_OpEq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32F x y) // cond: // result: (SETEQF (UCOMISS x y)) @@ -60260,7 +59996,6 @@ func rewriteValueAMD64_OpEq32F_0(v *Value) bool { } func rewriteValueAMD64_OpEq64_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64 x y) // cond: // result: (SETEQ (CMPQ x y)) @@ -60278,7 +60013,6 @@ func rewriteValueAMD64_OpEq64_0(v *Value) bool { } func rewriteValueAMD64_OpEq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64F x y) // cond: // result: (SETEQF (UCOMISD x y)) @@ -60296,7 +60030,6 @@ func rewriteValueAMD64_OpEq64F_0(v *Value) bool { } func rewriteValueAMD64_OpEq8_0(v *Value) bool { b := v.Block - _ = b // match: (Eq8 x y) // cond: // result: (SETEQ (CMPB x y)) @@ -60314,7 +60047,6 @@ func rewriteValueAMD64_OpEq8_0(v *Value) bool { } func rewriteValueAMD64_OpEqB_0(v *Value) bool { b := v.Block - _ = b // match: (EqB x y) // cond: // result: (SETEQ (CMPB x y)) @@ -60332,9 +60064,7 @@ func rewriteValueAMD64_OpEqB_0(v *Value) bool { } func rewriteValueAMD64_OpEqPtr_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (EqPtr x y) // cond: config.PtrSize == 8 // result: (SETEQ (CMPQ x y)) @@ -60385,7 +60115,6 @@ func rewriteValueAMD64_OpFloor_0(v *Value) bool { } func rewriteValueAMD64_OpGeq16_0(v *Value) bool { b := v.Block - _ = b // match: (Geq16 x y) // cond: // result: (SETGE (CMPW x y)) @@ -60403,7 +60132,6 @@ func rewriteValueAMD64_OpGeq16_0(v *Value) bool { } func rewriteValueAMD64_OpGeq16U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq16U x y) // cond: // result: (SETAE (CMPW x y)) @@ -60421,7 +60149,6 @@ func rewriteValueAMD64_OpGeq16U_0(v *Value) bool { } func rewriteValueAMD64_OpGeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32 x y) // cond: // result: (SETGE (CMPL x y)) @@ -60439,7 +60166,6 @@ func rewriteValueAMD64_OpGeq32_0(v *Value) bool { } func rewriteValueAMD64_OpGeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32F x y) // cond: // result: (SETGEF (UCOMISS x y)) @@ -60457,7 +60183,6 @@ func rewriteValueAMD64_OpGeq32F_0(v *Value) bool { } func rewriteValueAMD64_OpGeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32U x y) // cond: // result: (SETAE (CMPL x y)) @@ -60475,7 +60200,6 @@ func rewriteValueAMD64_OpGeq32U_0(v *Value) bool { } func rewriteValueAMD64_OpGeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64 x y) // cond: // result: (SETGE (CMPQ x y)) @@ -60493,7 +60217,6 @@ func rewriteValueAMD64_OpGeq64_0(v *Value) bool { } func rewriteValueAMD64_OpGeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64F x y) // cond: // result: (SETGEF (UCOMISD x y)) @@ -60511,7 +60234,6 @@ func rewriteValueAMD64_OpGeq64F_0(v *Value) bool { } func rewriteValueAMD64_OpGeq64U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64U x y) // cond: // result: (SETAE (CMPQ x y)) @@ -60529,7 +60251,6 @@ func rewriteValueAMD64_OpGeq64U_0(v *Value) bool { } func rewriteValueAMD64_OpGeq8_0(v *Value) bool { b := v.Block - _ = b // match: (Geq8 x y) // cond: // result: (SETGE (CMPB x y)) @@ -60547,7 +60268,6 @@ func rewriteValueAMD64_OpGeq8_0(v *Value) bool { } func rewriteValueAMD64_OpGeq8U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq8U x y) // cond: // result: (SETAE (CMPB x y)) @@ -60603,7 +60323,6 @@ func rewriteValueAMD64_OpGetG_0(v *Value) bool { } func rewriteValueAMD64_OpGreater16_0(v *Value) bool { b := v.Block - _ = b // match: (Greater16 x y) // cond: // result: (SETG (CMPW x y)) @@ -60621,7 +60340,6 @@ func rewriteValueAMD64_OpGreater16_0(v *Value) bool { } func rewriteValueAMD64_OpGreater16U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater16U x y) // cond: // result: (SETA (CMPW x y)) @@ -60639,7 +60357,6 @@ func rewriteValueAMD64_OpGreater16U_0(v *Value) bool { } func rewriteValueAMD64_OpGreater32_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32 x y) // cond: // result: (SETG (CMPL x y)) @@ -60657,7 +60374,6 @@ func rewriteValueAMD64_OpGreater32_0(v *Value) bool { } func rewriteValueAMD64_OpGreater32F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32F x y) // cond: // result: (SETGF (UCOMISS x y)) @@ -60675,7 +60391,6 @@ func rewriteValueAMD64_OpGreater32F_0(v *Value) bool { } func rewriteValueAMD64_OpGreater32U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32U x y) // cond: // result: (SETA (CMPL x y)) @@ -60693,7 +60408,6 @@ func rewriteValueAMD64_OpGreater32U_0(v *Value) bool { } func rewriteValueAMD64_OpGreater64_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64 x y) // cond: // result: (SETG (CMPQ x y)) @@ -60711,7 +60425,6 @@ func rewriteValueAMD64_OpGreater64_0(v *Value) bool { } func rewriteValueAMD64_OpGreater64F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64F x y) // cond: // result: (SETGF (UCOMISD x y)) @@ -60729,7 +60442,6 @@ func rewriteValueAMD64_OpGreater64F_0(v *Value) bool { } func rewriteValueAMD64_OpGreater64U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64U x y) // cond: // result: (SETA (CMPQ x y)) @@ -60747,7 +60459,6 @@ func rewriteValueAMD64_OpGreater64U_0(v *Value) bool { } func rewriteValueAMD64_OpGreater8_0(v *Value) bool { b := v.Block - _ = b // match: (Greater8 x y) // cond: // result: (SETG (CMPB x y)) @@ -60765,7 +60476,6 @@ func rewriteValueAMD64_OpGreater8_0(v *Value) bool { } func rewriteValueAMD64_OpGreater8U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater8U x y) // cond: // result: (SETA (CMPB x y)) @@ -60867,9 +60577,7 @@ func rewriteValueAMD64_OpInterCall_0(v *Value) bool { } func rewriteValueAMD64_OpIsInBounds_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (IsInBounds idx len) // cond: config.PtrSize == 8 // result: (SETB (CMPQ idx len)) @@ -60908,9 +60616,7 @@ func rewriteValueAMD64_OpIsInBounds_0(v *Value) bool { } func rewriteValueAMD64_OpIsNonNil_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (IsNonNil p) // cond: config.PtrSize == 8 // result: (SETNE (TESTQ p p)) @@ -60945,9 +60651,7 @@ func rewriteValueAMD64_OpIsNonNil_0(v *Value) bool { } func rewriteValueAMD64_OpIsSliceInBounds_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (IsSliceInBounds idx len) // cond: config.PtrSize == 8 // result: (SETBE (CMPQ idx len)) @@ -60986,7 +60690,6 @@ func rewriteValueAMD64_OpIsSliceInBounds_0(v *Value) bool { } func rewriteValueAMD64_OpLeq16_0(v *Value) bool { b := v.Block - _ = b // match: (Leq16 x y) // cond: // result: (SETLE (CMPW x y)) @@ -61004,7 +60707,6 @@ func rewriteValueAMD64_OpLeq16_0(v *Value) bool { } func rewriteValueAMD64_OpLeq16U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq16U x y) // cond: // result: (SETBE (CMPW x y)) @@ -61022,7 +60724,6 @@ func rewriteValueAMD64_OpLeq16U_0(v *Value) bool { } func rewriteValueAMD64_OpLeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32 x y) // cond: // result: (SETLE (CMPL x y)) @@ -61040,7 +60741,6 @@ func rewriteValueAMD64_OpLeq32_0(v *Value) bool { } func rewriteValueAMD64_OpLeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32F x y) // cond: // result: (SETGEF (UCOMISS y x)) @@ -61058,7 +60758,6 @@ func rewriteValueAMD64_OpLeq32F_0(v *Value) bool { } func rewriteValueAMD64_OpLeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32U x y) // cond: // result: (SETBE (CMPL x y)) @@ -61076,7 +60775,6 @@ func rewriteValueAMD64_OpLeq32U_0(v *Value) bool { } func rewriteValueAMD64_OpLeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64 x y) // cond: // result: (SETLE (CMPQ x y)) @@ -61094,7 +60792,6 @@ func rewriteValueAMD64_OpLeq64_0(v *Value) bool { } func rewriteValueAMD64_OpLeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64F x y) // cond: // result: (SETGEF (UCOMISD y x)) @@ -61112,7 +60809,6 @@ func rewriteValueAMD64_OpLeq64F_0(v *Value) bool { } func rewriteValueAMD64_OpLeq64U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64U x y) // cond: // result: (SETBE (CMPQ x y)) @@ -61130,7 +60826,6 @@ func rewriteValueAMD64_OpLeq64U_0(v *Value) bool { } func rewriteValueAMD64_OpLeq8_0(v *Value) bool { b := v.Block - _ = b // match: (Leq8 x y) // cond: // result: (SETLE (CMPB x y)) @@ -61148,7 +60843,6 @@ func rewriteValueAMD64_OpLeq8_0(v *Value) bool { } func rewriteValueAMD64_OpLeq8U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq8U x y) // cond: // result: (SETBE (CMPB x y)) @@ -61166,7 +60860,6 @@ func rewriteValueAMD64_OpLeq8U_0(v *Value) bool { } func rewriteValueAMD64_OpLess16_0(v *Value) bool { b := v.Block - _ = b // match: (Less16 x y) // cond: // result: (SETL (CMPW x y)) @@ -61184,7 +60877,6 @@ func rewriteValueAMD64_OpLess16_0(v *Value) bool { } func rewriteValueAMD64_OpLess16U_0(v *Value) bool { b := v.Block - _ = b // match: (Less16U x y) // cond: // result: (SETB (CMPW x y)) @@ -61202,7 +60894,6 @@ func rewriteValueAMD64_OpLess16U_0(v *Value) bool { } func rewriteValueAMD64_OpLess32_0(v *Value) bool { b := v.Block - _ = b // match: (Less32 x y) // cond: // result: (SETL (CMPL x y)) @@ -61220,7 +60911,6 @@ func rewriteValueAMD64_OpLess32_0(v *Value) bool { } func rewriteValueAMD64_OpLess32F_0(v *Value) bool { b := v.Block - _ = b // match: (Less32F x y) // cond: // result: (SETGF (UCOMISS y x)) @@ -61238,7 +60928,6 @@ func rewriteValueAMD64_OpLess32F_0(v *Value) bool { } func rewriteValueAMD64_OpLess32U_0(v *Value) bool { b := v.Block - _ = b // match: (Less32U x y) // cond: // result: (SETB (CMPL x y)) @@ -61256,7 +60945,6 @@ func rewriteValueAMD64_OpLess32U_0(v *Value) bool { } func rewriteValueAMD64_OpLess64_0(v *Value) bool { b := v.Block - _ = b // match: (Less64 x y) // cond: // result: (SETL (CMPQ x y)) @@ -61274,7 +60962,6 @@ func rewriteValueAMD64_OpLess64_0(v *Value) bool { } func rewriteValueAMD64_OpLess64F_0(v *Value) bool { b := v.Block - _ = b // match: (Less64F x y) // cond: // result: (SETGF (UCOMISD y x)) @@ -61292,7 +60979,6 @@ func rewriteValueAMD64_OpLess64F_0(v *Value) bool { } func rewriteValueAMD64_OpLess64U_0(v *Value) bool { b := v.Block - _ = b // match: (Less64U x y) // cond: // result: (SETB (CMPQ x y)) @@ -61310,7 +60996,6 @@ func rewriteValueAMD64_OpLess64U_0(v *Value) bool { } func rewriteValueAMD64_OpLess8_0(v *Value) bool { b := v.Block - _ = b // match: (Less8 x y) // cond: // result: (SETL (CMPB x y)) @@ -61328,7 +61013,6 @@ func rewriteValueAMD64_OpLess8_0(v *Value) bool { } func rewriteValueAMD64_OpLess8U_0(v *Value) bool { b := v.Block - _ = b // match: (Less8U x y) // cond: // result: (SETB (CMPB x y)) @@ -61346,9 +61030,7 @@ func rewriteValueAMD64_OpLess8U_0(v *Value) bool { } func rewriteValueAMD64_OpLoad_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (Load ptr mem) // cond: (is64BitInt(t) || isPtr(t) && config.PtrSize == 8) // result: (MOVQload ptr mem) @@ -61449,9 +61131,7 @@ func rewriteValueAMD64_OpLoad_0(v *Value) bool { } func rewriteValueAMD64_OpLocalAddr_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (LocalAddr {sym} base _) // cond: config.PtrSize == 8 // result: (LEAQ {sym} base) @@ -61486,7 +61166,6 @@ func rewriteValueAMD64_OpLocalAddr_0(v *Value) bool { } func rewriteValueAMD64_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x16 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPWconst y [32]))) @@ -61530,7 +61209,6 @@ func rewriteValueAMD64_OpLsh16x16_0(v *Value) bool { } func rewriteValueAMD64_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x32 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPLconst y [32]))) @@ -61574,7 +61252,6 @@ func rewriteValueAMD64_OpLsh16x32_0(v *Value) bool { } func rewriteValueAMD64_OpLsh16x64_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x64 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPQconst y [32]))) @@ -61618,7 +61295,6 @@ func rewriteValueAMD64_OpLsh16x64_0(v *Value) bool { } func rewriteValueAMD64_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x8 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPBconst y [32]))) @@ -61662,7 +61338,6 @@ func rewriteValueAMD64_OpLsh16x8_0(v *Value) bool { } func rewriteValueAMD64_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x16 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPWconst y [32]))) @@ -61706,7 +61381,6 @@ func rewriteValueAMD64_OpLsh32x16_0(v *Value) bool { } func rewriteValueAMD64_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x32 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPLconst y [32]))) @@ -61750,7 +61424,6 @@ func rewriteValueAMD64_OpLsh32x32_0(v *Value) bool { } func rewriteValueAMD64_OpLsh32x64_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x64 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPQconst y [32]))) @@ -61794,7 +61467,6 @@ func rewriteValueAMD64_OpLsh32x64_0(v *Value) bool { } func rewriteValueAMD64_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x8 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPBconst y [32]))) @@ -61838,7 +61510,6 @@ func rewriteValueAMD64_OpLsh32x8_0(v *Value) bool { } func rewriteValueAMD64_OpLsh64x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh64x16 x y) // cond: !shiftIsBounded(v) // result: (ANDQ (SHLQ x y) (SBBQcarrymask (CMPWconst y [64]))) @@ -61882,7 +61553,6 @@ func rewriteValueAMD64_OpLsh64x16_0(v *Value) bool { } func rewriteValueAMD64_OpLsh64x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh64x32 x y) // cond: !shiftIsBounded(v) // result: (ANDQ (SHLQ x y) (SBBQcarrymask (CMPLconst y [64]))) @@ -61926,7 +61596,6 @@ func rewriteValueAMD64_OpLsh64x32_0(v *Value) bool { } func rewriteValueAMD64_OpLsh64x64_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh64x64 x y) // cond: !shiftIsBounded(v) // result: (ANDQ (SHLQ x y) (SBBQcarrymask (CMPQconst y [64]))) @@ -61970,7 +61639,6 @@ func rewriteValueAMD64_OpLsh64x64_0(v *Value) bool { } func rewriteValueAMD64_OpLsh64x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh64x8 x y) // cond: !shiftIsBounded(v) // result: (ANDQ (SHLQ x y) (SBBQcarrymask (CMPBconst y [64]))) @@ -62014,7 +61682,6 @@ func rewriteValueAMD64_OpLsh64x8_0(v *Value) bool { } func rewriteValueAMD64_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x16 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPWconst y [32]))) @@ -62058,7 +61725,6 @@ func rewriteValueAMD64_OpLsh8x16_0(v *Value) bool { } func rewriteValueAMD64_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x32 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPLconst y [32]))) @@ -62102,7 +61768,6 @@ func rewriteValueAMD64_OpLsh8x32_0(v *Value) bool { } func rewriteValueAMD64_OpLsh8x64_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x64 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPQconst y [32]))) @@ -62146,7 +61811,6 @@ func rewriteValueAMD64_OpLsh8x64_0(v *Value) bool { } func rewriteValueAMD64_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x8 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHLL x y) (SBBLcarrymask (CMPBconst y [32]))) @@ -62190,9 +61854,7 @@ func rewriteValueAMD64_OpLsh8x8_0(v *Value) bool { } func rewriteValueAMD64_OpMod16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16 [a] x y) // cond: // result: (Select1 (DIVW [a] x y)) @@ -62212,9 +61874,7 @@ func rewriteValueAMD64_OpMod16_0(v *Value) bool { } func rewriteValueAMD64_OpMod16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16u x y) // cond: // result: (Select1 (DIVWU x y)) @@ -62232,9 +61892,7 @@ func rewriteValueAMD64_OpMod16u_0(v *Value) bool { } func rewriteValueAMD64_OpMod32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32 [a] x y) // cond: // result: (Select1 (DIVL [a] x y)) @@ -62254,9 +61912,7 @@ func rewriteValueAMD64_OpMod32_0(v *Value) bool { } func rewriteValueAMD64_OpMod32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32u x y) // cond: // result: (Select1 (DIVLU x y)) @@ -62274,9 +61930,7 @@ func rewriteValueAMD64_OpMod32u_0(v *Value) bool { } func rewriteValueAMD64_OpMod64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod64 [a] x y) // cond: // result: (Select1 (DIVQ [a] x y)) @@ -62296,9 +61950,7 @@ func rewriteValueAMD64_OpMod64_0(v *Value) bool { } func rewriteValueAMD64_OpMod64u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod64u x y) // cond: // result: (Select1 (DIVQU x y)) @@ -62316,9 +61968,7 @@ func rewriteValueAMD64_OpMod64u_0(v *Value) bool { } func rewriteValueAMD64_OpMod8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8 x y) // cond: // result: (Select1 (DIVW (SignExt8to16 x) (SignExt8to16 y))) @@ -62340,9 +61990,7 @@ func rewriteValueAMD64_OpMod8_0(v *Value) bool { } func rewriteValueAMD64_OpMod8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8u x y) // cond: // result: (Select1 (DIVWU (ZeroExt8to16 x) (ZeroExt8to16 y))) @@ -62364,11 +62012,8 @@ func rewriteValueAMD64_OpMod8u_0(v *Value) bool { } func rewriteValueAMD64_OpMove_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Move [0] _ _ mem) // cond: // result: mem @@ -62615,11 +62260,8 @@ func rewriteValueAMD64_OpMove_0(v *Value) bool { } func rewriteValueAMD64_OpMove_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Move [3] dst src mem) // cond: // result: (MOVBstore [2] dst (MOVBload [2] src mem) (MOVWstore dst (MOVWload src mem) mem)) @@ -62921,11 +62563,8 @@ func rewriteValueAMD64_OpMove_10(v *Value) bool { } func rewriteValueAMD64_OpMove_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Move [s] dst src mem) // cond: s > 16 && s%16 != 0 && s%16 > 8 && !config.useSSE // result: (Move [s-s%16] (OffPtr dst [s%16]) (OffPtr src [s%16]) (MOVQstore [8] dst (MOVQload [8] src mem) (MOVQstore dst (MOVQload src mem) mem))) @@ -63131,9 +62770,7 @@ func rewriteValueAMD64_OpNeg32_0(v *Value) bool { } func rewriteValueAMD64_OpNeg32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neg32F x) // cond: // result: (PXOR x (MOVSSconst [auxFrom32F(float32(math.Copysign(0, -1)))])) @@ -63160,9 +62797,7 @@ func rewriteValueAMD64_OpNeg64_0(v *Value) bool { } func rewriteValueAMD64_OpNeg64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neg64F x) // cond: // result: (PXOR x (MOVSDconst [auxFrom64F(math.Copysign(0, -1))])) @@ -63189,7 +62824,6 @@ func rewriteValueAMD64_OpNeg8_0(v *Value) bool { } func rewriteValueAMD64_OpNeq16_0(v *Value) bool { b := v.Block - _ = b // match: (Neq16 x y) // cond: // result: (SETNE (CMPW x y)) @@ -63207,7 +62841,6 @@ func rewriteValueAMD64_OpNeq16_0(v *Value) bool { } func rewriteValueAMD64_OpNeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32 x y) // cond: // result: (SETNE (CMPL x y)) @@ -63225,7 +62858,6 @@ func rewriteValueAMD64_OpNeq32_0(v *Value) bool { } func rewriteValueAMD64_OpNeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32F x y) // cond: // result: (SETNEF (UCOMISS x y)) @@ -63243,7 +62875,6 @@ func rewriteValueAMD64_OpNeq32F_0(v *Value) bool { } func rewriteValueAMD64_OpNeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64 x y) // cond: // result: (SETNE (CMPQ x y)) @@ -63261,7 +62892,6 @@ func rewriteValueAMD64_OpNeq64_0(v *Value) bool { } func rewriteValueAMD64_OpNeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64F x y) // cond: // result: (SETNEF (UCOMISD x y)) @@ -63279,7 +62909,6 @@ func rewriteValueAMD64_OpNeq64F_0(v *Value) bool { } func rewriteValueAMD64_OpNeq8_0(v *Value) bool { b := v.Block - _ = b // match: (Neq8 x y) // cond: // result: (SETNE (CMPB x y)) @@ -63297,7 +62926,6 @@ func rewriteValueAMD64_OpNeq8_0(v *Value) bool { } func rewriteValueAMD64_OpNeqB_0(v *Value) bool { b := v.Block - _ = b // match: (NeqB x y) // cond: // result: (SETNE (CMPB x y)) @@ -63315,9 +62943,7 @@ func rewriteValueAMD64_OpNeqB_0(v *Value) bool { } func rewriteValueAMD64_OpNeqPtr_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (NeqPtr x y) // cond: config.PtrSize == 8 // result: (SETNE (CMPQ x y)) @@ -63382,11 +63008,8 @@ func rewriteValueAMD64_OpNot_0(v *Value) bool { } func rewriteValueAMD64_OpOffPtr_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OffPtr [off] ptr) // cond: config.PtrSize == 8 && is32Bit(off) // result: (ADDQconst [off] ptr) @@ -63505,9 +63128,7 @@ func rewriteValueAMD64_OpOrB_0(v *Value) bool { } func rewriteValueAMD64_OpPopCount16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount16 x) // cond: // result: (POPCNTL (MOVWQZX x)) @@ -63544,9 +63165,7 @@ func rewriteValueAMD64_OpPopCount64_0(v *Value) bool { } func rewriteValueAMD64_OpPopCount8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount8 x) // cond: // result: (POPCNTL (MOVBQZX x)) @@ -63653,7 +63272,6 @@ func rewriteValueAMD64_OpRoundToEven_0(v *Value) bool { } func rewriteValueAMD64_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux16 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRW x y) (SBBLcarrymask (CMPWconst y [16]))) @@ -63697,7 +63315,6 @@ func rewriteValueAMD64_OpRsh16Ux16_0(v *Value) bool { } func rewriteValueAMD64_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux32 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRW x y) (SBBLcarrymask (CMPLconst y [16]))) @@ -63741,7 +63358,6 @@ func rewriteValueAMD64_OpRsh16Ux32_0(v *Value) bool { } func rewriteValueAMD64_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux64 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRW x y) (SBBLcarrymask (CMPQconst y [16]))) @@ -63785,7 +63401,6 @@ func rewriteValueAMD64_OpRsh16Ux64_0(v *Value) bool { } func rewriteValueAMD64_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux8 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRW x y) (SBBLcarrymask (CMPBconst y [16]))) @@ -63829,7 +63444,6 @@ func rewriteValueAMD64_OpRsh16Ux8_0(v *Value) bool { } func rewriteValueAMD64_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x16 x y) // cond: !shiftIsBounded(v) // result: (SARW x (ORL y (NOTL (SBBLcarrymask (CMPWconst y [16]))))) @@ -63876,7 +63490,6 @@ func rewriteValueAMD64_OpRsh16x16_0(v *Value) bool { } func rewriteValueAMD64_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x32 x y) // cond: !shiftIsBounded(v) // result: (SARW x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [16]))))) @@ -63923,7 +63536,6 @@ func rewriteValueAMD64_OpRsh16x32_0(v *Value) bool { } func rewriteValueAMD64_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x64 x y) // cond: !shiftIsBounded(v) // result: (SARW x (ORQ y (NOTQ (SBBQcarrymask (CMPQconst y [16]))))) @@ -63970,7 +63582,6 @@ func rewriteValueAMD64_OpRsh16x64_0(v *Value) bool { } func rewriteValueAMD64_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x8 x y) // cond: !shiftIsBounded(v) // result: (SARW x (ORL y (NOTL (SBBLcarrymask (CMPBconst y [16]))))) @@ -64017,7 +63628,6 @@ func rewriteValueAMD64_OpRsh16x8_0(v *Value) bool { } func rewriteValueAMD64_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux16 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPWconst y [32]))) @@ -64061,7 +63671,6 @@ func rewriteValueAMD64_OpRsh32Ux16_0(v *Value) bool { } func rewriteValueAMD64_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux32 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPLconst y [32]))) @@ -64105,7 +63714,6 @@ func rewriteValueAMD64_OpRsh32Ux32_0(v *Value) bool { } func rewriteValueAMD64_OpRsh32Ux64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux64 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPQconst y [32]))) @@ -64149,7 +63757,6 @@ func rewriteValueAMD64_OpRsh32Ux64_0(v *Value) bool { } func rewriteValueAMD64_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux8 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRL x y) (SBBLcarrymask (CMPBconst y [32]))) @@ -64193,7 +63800,6 @@ func rewriteValueAMD64_OpRsh32Ux8_0(v *Value) bool { } func rewriteValueAMD64_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x16 x y) // cond: !shiftIsBounded(v) // result: (SARL x (ORL y (NOTL (SBBLcarrymask (CMPWconst y [32]))))) @@ -64240,7 +63846,6 @@ func rewriteValueAMD64_OpRsh32x16_0(v *Value) bool { } func rewriteValueAMD64_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x32 x y) // cond: !shiftIsBounded(v) // result: (SARL x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [32]))))) @@ -64287,7 +63892,6 @@ func rewriteValueAMD64_OpRsh32x32_0(v *Value) bool { } func rewriteValueAMD64_OpRsh32x64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x64 x y) // cond: !shiftIsBounded(v) // result: (SARL x (ORQ y (NOTQ (SBBQcarrymask (CMPQconst y [32]))))) @@ -64334,7 +63938,6 @@ func rewriteValueAMD64_OpRsh32x64_0(v *Value) bool { } func rewriteValueAMD64_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x8 x y) // cond: !shiftIsBounded(v) // result: (SARL x (ORL y (NOTL (SBBLcarrymask (CMPBconst y [32]))))) @@ -64381,7 +63984,6 @@ func rewriteValueAMD64_OpRsh32x8_0(v *Value) bool { } func rewriteValueAMD64_OpRsh64Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64Ux16 x y) // cond: !shiftIsBounded(v) // result: (ANDQ (SHRQ x y) (SBBQcarrymask (CMPWconst y [64]))) @@ -64425,7 +64027,6 @@ func rewriteValueAMD64_OpRsh64Ux16_0(v *Value) bool { } func rewriteValueAMD64_OpRsh64Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64Ux32 x y) // cond: !shiftIsBounded(v) // result: (ANDQ (SHRQ x y) (SBBQcarrymask (CMPLconst y [64]))) @@ -64469,7 +64070,6 @@ func rewriteValueAMD64_OpRsh64Ux32_0(v *Value) bool { } func rewriteValueAMD64_OpRsh64Ux64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64Ux64 x y) // cond: !shiftIsBounded(v) // result: (ANDQ (SHRQ x y) (SBBQcarrymask (CMPQconst y [64]))) @@ -64513,7 +64113,6 @@ func rewriteValueAMD64_OpRsh64Ux64_0(v *Value) bool { } func rewriteValueAMD64_OpRsh64Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64Ux8 x y) // cond: !shiftIsBounded(v) // result: (ANDQ (SHRQ x y) (SBBQcarrymask (CMPBconst y [64]))) @@ -64557,7 +64156,6 @@ func rewriteValueAMD64_OpRsh64Ux8_0(v *Value) bool { } func rewriteValueAMD64_OpRsh64x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x16 x y) // cond: !shiftIsBounded(v) // result: (SARQ x (ORL y (NOTL (SBBLcarrymask (CMPWconst y [64]))))) @@ -64604,7 +64202,6 @@ func rewriteValueAMD64_OpRsh64x16_0(v *Value) bool { } func rewriteValueAMD64_OpRsh64x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x32 x y) // cond: !shiftIsBounded(v) // result: (SARQ x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [64]))))) @@ -64651,7 +64248,6 @@ func rewriteValueAMD64_OpRsh64x32_0(v *Value) bool { } func rewriteValueAMD64_OpRsh64x64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x64 x y) // cond: !shiftIsBounded(v) // result: (SARQ x (ORQ y (NOTQ (SBBQcarrymask (CMPQconst y [64]))))) @@ -64698,7 +64294,6 @@ func rewriteValueAMD64_OpRsh64x64_0(v *Value) bool { } func rewriteValueAMD64_OpRsh64x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x8 x y) // cond: !shiftIsBounded(v) // result: (SARQ x (ORL y (NOTL (SBBLcarrymask (CMPBconst y [64]))))) @@ -64745,7 +64340,6 @@ func rewriteValueAMD64_OpRsh64x8_0(v *Value) bool { } func rewriteValueAMD64_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux16 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRB x y) (SBBLcarrymask (CMPWconst y [8]))) @@ -64789,7 +64383,6 @@ func rewriteValueAMD64_OpRsh8Ux16_0(v *Value) bool { } func rewriteValueAMD64_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux32 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRB x y) (SBBLcarrymask (CMPLconst y [8]))) @@ -64833,7 +64426,6 @@ func rewriteValueAMD64_OpRsh8Ux32_0(v *Value) bool { } func rewriteValueAMD64_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux64 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRB x y) (SBBLcarrymask (CMPQconst y [8]))) @@ -64877,7 +64469,6 @@ func rewriteValueAMD64_OpRsh8Ux64_0(v *Value) bool { } func rewriteValueAMD64_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux8 x y) // cond: !shiftIsBounded(v) // result: (ANDL (SHRB x y) (SBBLcarrymask (CMPBconst y [8]))) @@ -64921,7 +64512,6 @@ func rewriteValueAMD64_OpRsh8Ux8_0(v *Value) bool { } func rewriteValueAMD64_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x16 x y) // cond: !shiftIsBounded(v) // result: (SARB x (ORL y (NOTL (SBBLcarrymask (CMPWconst y [8]))))) @@ -64968,7 +64558,6 @@ func rewriteValueAMD64_OpRsh8x16_0(v *Value) bool { } func rewriteValueAMD64_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x32 x y) // cond: !shiftIsBounded(v) // result: (SARB x (ORL y (NOTL (SBBLcarrymask (CMPLconst y [8]))))) @@ -65015,7 +64604,6 @@ func rewriteValueAMD64_OpRsh8x32_0(v *Value) bool { } func rewriteValueAMD64_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x64 x y) // cond: !shiftIsBounded(v) // result: (SARB x (ORQ y (NOTQ (SBBQcarrymask (CMPQconst y [8]))))) @@ -65062,7 +64650,6 @@ func rewriteValueAMD64_OpRsh8x64_0(v *Value) bool { } func rewriteValueAMD64_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x8 x y) // cond: !shiftIsBounded(v) // result: (SARB x (ORL y (NOTL (SBBLcarrymask (CMPBconst y [8]))))) @@ -65109,9 +64696,7 @@ func rewriteValueAMD64_OpRsh8x8_0(v *Value) bool { } func rewriteValueAMD64_OpSelect0_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Select0 (Mul64uover x y)) // cond: // result: (Select0 (MULQU x y)) @@ -65242,9 +64827,7 @@ func rewriteValueAMD64_OpSelect0_0(v *Value) bool { } func rewriteValueAMD64_OpSelect1_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Select1 (Mul64uover x y)) // cond: // result: (SETO (Select1 (MULQU x y))) @@ -65481,7 +65064,6 @@ func rewriteValueAMD64_OpSignExt8to64_0(v *Value) bool { } func rewriteValueAMD64_OpSlicemask_0(v *Value) bool { b := v.Block - _ = b // match: (Slicemask x) // cond: // result: (SARQconst (NEGQ x) [63]) @@ -65719,9 +65301,7 @@ func rewriteValueAMD64_OpSub8_0(v *Value) bool { } func rewriteValueAMD64_OpSubPtr_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (SubPtr x y) // cond: config.PtrSize == 8 // result: (SUBQ x y) @@ -65914,9 +65494,7 @@ func rewriteValueAMD64_OpXor8_0(v *Value) bool { } func rewriteValueAMD64_OpZero_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (Zero [0] _ mem) // cond: // result: mem @@ -66103,9 +65681,7 @@ func rewriteValueAMD64_OpZero_0(v *Value) bool { } func rewriteValueAMD64_OpZero_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (Zero [16] destptr mem) // cond: !config.useSSE // result: (MOVQstoreconst [makeValAndOff(0,8)] destptr (MOVQstoreconst [0] destptr mem)) @@ -66400,11 +65976,8 @@ func rewriteValueAMD64_OpZero_10(v *Value) bool { } func rewriteValueAMD64_OpZero_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Zero [s] destptr mem) // cond: s > 64 && s <= 1024 && s%16 == 0 && !config.noDuffDevice // result: (DUFFZERO [s] destptr (MOVOconst [0]) mem) diff --git a/src/cmd/compile/internal/ssa/rewriteARM.go b/src/cmd/compile/internal/ssa/rewriteARM.go index c190ef779c..496e3168f6 100644 --- a/src/cmd/compile/internal/ssa/rewriteARM.go +++ b/src/cmd/compile/internal/ssa/rewriteARM.go @@ -1442,7 +1442,6 @@ func rewriteValueARM_OpARMADCconst_0(v *Value) bool { } func rewriteValueARM_OpARMADCshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (ADCshiftLL (MOVWconst [c]) x [d] flags) // cond: // result: (ADCconst [c] (SLLconst x [d]) flags) @@ -1488,7 +1487,6 @@ func rewriteValueARM_OpARMADCshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMADCshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ADCshiftLLreg (MOVWconst [c]) x y flags) // cond: // result: (ADCconst [c] (SLL x y) flags) @@ -1535,7 +1533,6 @@ func rewriteValueARM_OpARMADCshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMADCshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (ADCshiftRA (MOVWconst [c]) x [d] flags) // cond: // result: (ADCconst [c] (SRAconst x [d]) flags) @@ -1581,7 +1578,6 @@ func rewriteValueARM_OpARMADCshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMADCshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (ADCshiftRAreg (MOVWconst [c]) x y flags) // cond: // result: (ADCconst [c] (SRA x y) flags) @@ -1628,7 +1624,6 @@ func rewriteValueARM_OpARMADCshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMADCshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (ADCshiftRL (MOVWconst [c]) x [d] flags) // cond: // result: (ADCconst [c] (SRLconst x [d]) flags) @@ -1674,7 +1669,6 @@ func rewriteValueARM_OpARMADCshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMADCshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ADCshiftRLreg (MOVWconst [c]) x y flags) // cond: // result: (ADCconst [c] (SRL x y) flags) @@ -1902,7 +1896,6 @@ func rewriteValueARM_OpARMADD_0(v *Value) bool { } func rewriteValueARM_OpARMADD_10(v *Value) bool { b := v.Block - _ = b // match: (ADD x (SRL y z)) // cond: // result: (ADDshiftRLreg x y z) @@ -2553,7 +2546,6 @@ func rewriteValueARM_OpARMADDS_10(v *Value) bool { } func rewriteValueARM_OpARMADDSshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (ADDSshiftLL (MOVWconst [c]) x [d]) // cond: // result: (ADDSconst [c] (SLLconst x [d])) @@ -2595,7 +2587,6 @@ func rewriteValueARM_OpARMADDSshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMADDSshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ADDSshiftLLreg (MOVWconst [c]) x y) // cond: // result: (ADDSconst [c] (SLL x y)) @@ -2638,7 +2629,6 @@ func rewriteValueARM_OpARMADDSshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMADDSshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (ADDSshiftRA (MOVWconst [c]) x [d]) // cond: // result: (ADDSconst [c] (SRAconst x [d])) @@ -2680,7 +2670,6 @@ func rewriteValueARM_OpARMADDSshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMADDSshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (ADDSshiftRAreg (MOVWconst [c]) x y) // cond: // result: (ADDSconst [c] (SRA x y)) @@ -2723,7 +2712,6 @@ func rewriteValueARM_OpARMADDSshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMADDSshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (ADDSshiftRL (MOVWconst [c]) x [d]) // cond: // result: (ADDSconst [c] (SRLconst x [d])) @@ -2765,7 +2753,6 @@ func rewriteValueARM_OpARMADDSshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMADDSshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ADDSshiftRLreg (MOVWconst [c]) x y) // cond: // result: (ADDSconst [c] (SRL x y)) @@ -2932,9 +2919,7 @@ func rewriteValueARM_OpARMADDconst_0(v *Value) bool { } func rewriteValueARM_OpARMADDshiftLL_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ADDshiftLL (MOVWconst [c]) x [d]) // cond: // result: (ADDconst [c] (SLLconst x [d])) @@ -3066,7 +3051,6 @@ func rewriteValueARM_OpARMADDshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMADDshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ADDshiftLLreg (MOVWconst [c]) x y) // cond: // result: (ADDconst [c] (SLL x y)) @@ -3109,7 +3093,6 @@ func rewriteValueARM_OpARMADDshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMADDshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (ADDshiftRA (MOVWconst [c]) x [d]) // cond: // result: (ADDconst [c] (SRAconst x [d])) @@ -3151,7 +3134,6 @@ func rewriteValueARM_OpARMADDshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMADDshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (ADDshiftRAreg (MOVWconst [c]) x y) // cond: // result: (ADDconst [c] (SRA x y)) @@ -3194,7 +3176,6 @@ func rewriteValueARM_OpARMADDshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMADDshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (ADDshiftRL (MOVWconst [c]) x [d]) // cond: // result: (ADDconst [c] (SRLconst x [d])) @@ -3258,7 +3239,6 @@ func rewriteValueARM_OpARMADDshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMADDshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ADDshiftRLreg (MOVWconst [c]) x y) // cond: // result: (ADDconst [c] (SRL x y)) @@ -3804,7 +3784,6 @@ func rewriteValueARM_OpARMANDconst_0(v *Value) bool { } func rewriteValueARM_OpARMANDshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (ANDshiftLL (MOVWconst [c]) x [d]) // cond: // result: (ANDconst [c] (SLLconst x [d])) @@ -3869,7 +3848,6 @@ func rewriteValueARM_OpARMANDshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMANDshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ANDshiftLLreg (MOVWconst [c]) x y) // cond: // result: (ANDconst [c] (SLL x y)) @@ -3912,7 +3890,6 @@ func rewriteValueARM_OpARMANDshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMANDshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (ANDshiftRA (MOVWconst [c]) x [d]) // cond: // result: (ANDconst [c] (SRAconst x [d])) @@ -3977,7 +3954,6 @@ func rewriteValueARM_OpARMANDshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMANDshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (ANDshiftRAreg (MOVWconst [c]) x y) // cond: // result: (ANDconst [c] (SRA x y)) @@ -4020,7 +3996,6 @@ func rewriteValueARM_OpARMANDshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMANDshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (ANDshiftRL (MOVWconst [c]) x [d]) // cond: // result: (ANDconst [c] (SRLconst x [d])) @@ -4085,7 +4060,6 @@ func rewriteValueARM_OpARMANDshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMANDshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ANDshiftRLreg (MOVWconst [c]) x y) // cond: // result: (ANDconst [c] (SRL x y)) @@ -4961,7 +4935,6 @@ func rewriteValueARM_OpARMCMNconst_0(v *Value) bool { } func rewriteValueARM_OpARMCMNshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (CMNshiftLL (MOVWconst [c]) x [d]) // cond: // result: (CMNconst [c] (SLLconst x [d])) @@ -5003,7 +4976,6 @@ func rewriteValueARM_OpARMCMNshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMCMNshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (CMNshiftLLreg (MOVWconst [c]) x y) // cond: // result: (CMNconst [c] (SLL x y)) @@ -5046,7 +5018,6 @@ func rewriteValueARM_OpARMCMNshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMCMNshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (CMNshiftRA (MOVWconst [c]) x [d]) // cond: // result: (CMNconst [c] (SRAconst x [d])) @@ -5088,7 +5059,6 @@ func rewriteValueARM_OpARMCMNshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMCMNshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (CMNshiftRAreg (MOVWconst [c]) x y) // cond: // result: (CMNconst [c] (SRA x y)) @@ -5131,7 +5101,6 @@ func rewriteValueARM_OpARMCMNshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMCMNshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (CMNshiftRL (MOVWconst [c]) x [d]) // cond: // result: (CMNconst [c] (SRLconst x [d])) @@ -5173,7 +5142,6 @@ func rewriteValueARM_OpARMCMNshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMCMNshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (CMNshiftRLreg (MOVWconst [c]) x y) // cond: // result: (CMNconst [c] (SRL x y)) @@ -5402,7 +5370,6 @@ func rewriteValueARM_OpARMCMOVWLSconst_0(v *Value) bool { } func rewriteValueARM_OpARMCMP_0(v *Value) bool { b := v.Block - _ = b // match: (CMP x (MOVWconst [c])) // cond: // result: (CMPconst [c] x) @@ -5595,7 +5562,6 @@ func rewriteValueARM_OpARMCMP_0(v *Value) bool { } func rewriteValueARM_OpARMCMP_10(v *Value) bool { b := v.Block - _ = b // match: (CMP x (SRL y z)) // cond: // result: (CMPshiftRLreg x y z) @@ -5884,7 +5850,6 @@ func rewriteValueARM_OpARMCMPconst_0(v *Value) bool { } func rewriteValueARM_OpARMCMPshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (CMPshiftLL (MOVWconst [c]) x [d]) // cond: // result: (InvertFlags (CMPconst [c] (SLLconst x [d]))) @@ -5928,7 +5893,6 @@ func rewriteValueARM_OpARMCMPshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMCMPshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (CMPshiftLLreg (MOVWconst [c]) x y) // cond: // result: (InvertFlags (CMPconst [c] (SLL x y))) @@ -5973,7 +5937,6 @@ func rewriteValueARM_OpARMCMPshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMCMPshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (CMPshiftRA (MOVWconst [c]) x [d]) // cond: // result: (InvertFlags (CMPconst [c] (SRAconst x [d]))) @@ -6017,7 +5980,6 @@ func rewriteValueARM_OpARMCMPshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMCMPshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (CMPshiftRAreg (MOVWconst [c]) x y) // cond: // result: (InvertFlags (CMPconst [c] (SRA x y))) @@ -6062,7 +6024,6 @@ func rewriteValueARM_OpARMCMPshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMCMPshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (CMPshiftRL (MOVWconst [c]) x [d]) // cond: // result: (InvertFlags (CMPconst [c] (SRLconst x [d]))) @@ -6106,7 +6067,6 @@ func rewriteValueARM_OpARMCMPshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMCMPshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (CMPshiftRLreg (MOVWconst [c]) x y) // cond: // result: (InvertFlags (CMPconst [c] (SRL x y))) @@ -6835,9 +6795,7 @@ func rewriteValueARM_OpARMLessThanU_0(v *Value) bool { } func rewriteValueARM_OpARMMOVBUload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBUload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: // result: (MOVBUload [off1+off2] {sym} ptr mem) @@ -7096,9 +7054,7 @@ func rewriteValueARM_OpARMMOVBUreg_0(v *Value) bool { } func rewriteValueARM_OpARMMOVBload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: // result: (MOVBload [off1+off2] {sym} ptr mem) @@ -7342,9 +7298,7 @@ func rewriteValueARM_OpARMMOVBreg_0(v *Value) bool { } func rewriteValueARM_OpARMMOVBstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBstore [off1] {sym} (ADDconst [off2] ptr) val mem) // cond: // result: (MOVBstore [off1+off2] {sym} ptr val mem) @@ -7923,9 +7877,7 @@ func rewriteValueARM_OpARMMOVFstore_0(v *Value) bool { } func rewriteValueARM_OpARMMOVHUload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVHUload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: // result: (MOVHUload [off1+off2] {sym} ptr mem) @@ -8209,9 +8161,7 @@ func rewriteValueARM_OpARMMOVHUreg_0(v *Value) bool { } func rewriteValueARM_OpARMMOVHload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVHload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: // result: (MOVHload [off1+off2] {sym} ptr mem) @@ -8505,9 +8455,7 @@ func rewriteValueARM_OpARMMOVHreg_0(v *Value) bool { } func rewriteValueARM_OpARMMOVHstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVHstore [off1] {sym} (ADDconst [off2] ptr) val mem) // cond: // result: (MOVHstore [off1+off2] {sym} ptr val mem) @@ -8700,9 +8648,7 @@ func rewriteValueARM_OpARMMOVHstoreidx_0(v *Value) bool { } func rewriteValueARM_OpARMMOVWload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: // result: (MOVWload [off1+off2] {sym} ptr mem) @@ -9286,9 +9232,7 @@ func rewriteValueARM_OpARMMOVWreg_0(v *Value) bool { } func rewriteValueARM_OpARMMOVWstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWstore [off1] {sym} (ADDconst [off2] ptr) val mem) // cond: // result: (MOVWstore [off1+off2] {sym} ptr val mem) @@ -9918,7 +9862,6 @@ func rewriteValueARM_OpARMMUL_0(v *Value) bool { } func rewriteValueARM_OpARMMUL_10(v *Value) bool { b := v.Block - _ = b // match: (MUL x (MOVWconst [c])) // cond: isPowerOfTwo(c+1) && int32(c) >= 7 // result: (RSBshiftLL x x [log2(c+1)]) @@ -10188,7 +10131,6 @@ func rewriteValueARM_OpARMMUL_20(v *Value) bool { } func rewriteValueARM_OpARMMULA_0(v *Value) bool { b := v.Block - _ = b // match: (MULA x (MOVWconst [c]) a) // cond: int32(c) == -1 // result: (SUB a x) @@ -10429,7 +10371,6 @@ func rewriteValueARM_OpARMMULA_0(v *Value) bool { } func rewriteValueARM_OpARMMULA_10(v *Value) bool { b := v.Block - _ = b // match: (MULA (MOVWconst [c]) x a) // cond: int32(c) == -1 // result: (SUB a x) @@ -10776,7 +10717,6 @@ func rewriteValueARM_OpARMMULF_0(v *Value) bool { } func rewriteValueARM_OpARMMULS_0(v *Value) bool { b := v.Block - _ = b // match: (MULS x (MOVWconst [c]) a) // cond: int32(c) == -1 // result: (ADD a x) @@ -11017,7 +10957,6 @@ func rewriteValueARM_OpARMMULS_0(v *Value) bool { } func rewriteValueARM_OpARMMULS_10(v *Value) bool { b := v.Block - _ = b // match: (MULS (MOVWconst [c]) x a) // cond: int32(c) == -1 // result: (ADD a x) @@ -12021,9 +11960,7 @@ func rewriteValueARM_OpARMORconst_0(v *Value) bool { } func rewriteValueARM_OpARMORshiftLL_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORshiftLL (MOVWconst [c]) x [d]) // cond: // result: (ORconst [c] (SLLconst x [d])) @@ -12178,7 +12115,6 @@ func rewriteValueARM_OpARMORshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMORshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ORshiftLLreg (MOVWconst [c]) x y) // cond: // result: (ORconst [c] (SLL x y)) @@ -12221,7 +12157,6 @@ func rewriteValueARM_OpARMORshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMORshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (ORshiftRA (MOVWconst [c]) x [d]) // cond: // result: (ORconst [c] (SRAconst x [d])) @@ -12286,7 +12221,6 @@ func rewriteValueARM_OpARMORshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMORshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (ORshiftRAreg (MOVWconst [c]) x y) // cond: // result: (ORconst [c] (SRA x y)) @@ -12329,7 +12263,6 @@ func rewriteValueARM_OpARMORshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMORshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (ORshiftRL (MOVWconst [c]) x [d]) // cond: // result: (ORconst [c] (SRLconst x [d])) @@ -12416,7 +12349,6 @@ func rewriteValueARM_OpARMORshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMORshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (ORshiftRLreg (MOVWconst [c]) x y) // cond: // result: (ORconst [c] (SRL x y)) @@ -12754,7 +12686,6 @@ func rewriteValueARM_OpARMRSB_10(v *Value) bool { } func rewriteValueARM_OpARMRSBSshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (RSBSshiftLL (MOVWconst [c]) x [d]) // cond: // result: (SUBSconst [c] (SLLconst x [d])) @@ -12796,7 +12727,6 @@ func rewriteValueARM_OpARMRSBSshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMRSBSshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (RSBSshiftLLreg (MOVWconst [c]) x y) // cond: // result: (SUBSconst [c] (SLL x y)) @@ -12839,7 +12769,6 @@ func rewriteValueARM_OpARMRSBSshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMRSBSshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (RSBSshiftRA (MOVWconst [c]) x [d]) // cond: // result: (SUBSconst [c] (SRAconst x [d])) @@ -12881,7 +12810,6 @@ func rewriteValueARM_OpARMRSBSshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMRSBSshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (RSBSshiftRAreg (MOVWconst [c]) x y) // cond: // result: (SUBSconst [c] (SRA x y)) @@ -12924,7 +12852,6 @@ func rewriteValueARM_OpARMRSBSshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMRSBSshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (RSBSshiftRL (MOVWconst [c]) x [d]) // cond: // result: (SUBSconst [c] (SRLconst x [d])) @@ -12966,7 +12893,6 @@ func rewriteValueARM_OpARMRSBSshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMRSBSshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (RSBSshiftRLreg (MOVWconst [c]) x y) // cond: // result: (SUBSconst [c] (SRL x y)) @@ -13074,7 +13000,6 @@ func rewriteValueARM_OpARMRSBconst_0(v *Value) bool { } func rewriteValueARM_OpARMRSBshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (RSBshiftLL (MOVWconst [c]) x [d]) // cond: // result: (SUBconst [c] (SLLconst x [d])) @@ -13138,7 +13063,6 @@ func rewriteValueARM_OpARMRSBshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMRSBshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (RSBshiftLLreg (MOVWconst [c]) x y) // cond: // result: (SUBconst [c] (SLL x y)) @@ -13181,7 +13105,6 @@ func rewriteValueARM_OpARMRSBshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMRSBshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (RSBshiftRA (MOVWconst [c]) x [d]) // cond: // result: (SUBconst [c] (SRAconst x [d])) @@ -13245,7 +13168,6 @@ func rewriteValueARM_OpARMRSBshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMRSBshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (RSBshiftRAreg (MOVWconst [c]) x y) // cond: // result: (SUBconst [c] (SRA x y)) @@ -13288,7 +13210,6 @@ func rewriteValueARM_OpARMRSBshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMRSBshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (RSBshiftRL (MOVWconst [c]) x [d]) // cond: // result: (SUBconst [c] (SRLconst x [d])) @@ -13352,7 +13273,6 @@ func rewriteValueARM_OpARMRSBshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMRSBshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (RSBshiftRLreg (MOVWconst [c]) x y) // cond: // result: (SUBconst [c] (SRL x y)) @@ -13436,7 +13356,6 @@ func rewriteValueARM_OpARMRSCconst_0(v *Value) bool { } func rewriteValueARM_OpARMRSCshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (RSCshiftLL (MOVWconst [c]) x [d] flags) // cond: // result: (SBCconst [c] (SLLconst x [d]) flags) @@ -13482,7 +13401,6 @@ func rewriteValueARM_OpARMRSCshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMRSCshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (RSCshiftLLreg (MOVWconst [c]) x y flags) // cond: // result: (SBCconst [c] (SLL x y) flags) @@ -13529,7 +13447,6 @@ func rewriteValueARM_OpARMRSCshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMRSCshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (RSCshiftRA (MOVWconst [c]) x [d] flags) // cond: // result: (SBCconst [c] (SRAconst x [d]) flags) @@ -13575,7 +13492,6 @@ func rewriteValueARM_OpARMRSCshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMRSCshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (RSCshiftRAreg (MOVWconst [c]) x y flags) // cond: // result: (SBCconst [c] (SRA x y) flags) @@ -13622,7 +13538,6 @@ func rewriteValueARM_OpARMRSCshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMRSCshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (RSCshiftRL (MOVWconst [c]) x [d] flags) // cond: // result: (SBCconst [c] (SRLconst x [d]) flags) @@ -13668,7 +13583,6 @@ func rewriteValueARM_OpARMRSCshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMRSCshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (RSCshiftRLreg (MOVWconst [c]) x y flags) // cond: // result: (SBCconst [c] (SRL x y) flags) @@ -14044,7 +13958,6 @@ func rewriteValueARM_OpARMSBCconst_0(v *Value) bool { } func rewriteValueARM_OpARMSBCshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (SBCshiftLL (MOVWconst [c]) x [d] flags) // cond: // result: (RSCconst [c] (SLLconst x [d]) flags) @@ -14090,7 +14003,6 @@ func rewriteValueARM_OpARMSBCshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMSBCshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (SBCshiftLLreg (MOVWconst [c]) x y flags) // cond: // result: (RSCconst [c] (SLL x y) flags) @@ -14137,7 +14049,6 @@ func rewriteValueARM_OpARMSBCshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMSBCshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (SBCshiftRA (MOVWconst [c]) x [d] flags) // cond: // result: (RSCconst [c] (SRAconst x [d]) flags) @@ -14183,7 +14094,6 @@ func rewriteValueARM_OpARMSBCshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMSBCshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (SBCshiftRAreg (MOVWconst [c]) x y flags) // cond: // result: (RSCconst [c] (SRA x y) flags) @@ -14230,7 +14140,6 @@ func rewriteValueARM_OpARMSBCshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMSBCshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (SBCshiftRL (MOVWconst [c]) x [d] flags) // cond: // result: (RSCconst [c] (SRLconst x [d]) flags) @@ -14276,7 +14185,6 @@ func rewriteValueARM_OpARMSBCshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMSBCshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (SBCshiftRLreg (MOVWconst [c]) x y flags) // cond: // result: (RSCconst [c] (SRL x y) flags) @@ -15182,7 +15090,6 @@ func rewriteValueARM_OpARMSUBS_10(v *Value) bool { } func rewriteValueARM_OpARMSUBSshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (SUBSshiftLL (MOVWconst [c]) x [d]) // cond: // result: (RSBSconst [c] (SLLconst x [d])) @@ -15224,7 +15131,6 @@ func rewriteValueARM_OpARMSUBSshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMSUBSshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (SUBSshiftLLreg (MOVWconst [c]) x y) // cond: // result: (RSBSconst [c] (SLL x y)) @@ -15267,7 +15173,6 @@ func rewriteValueARM_OpARMSUBSshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMSUBSshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (SUBSshiftRA (MOVWconst [c]) x [d]) // cond: // result: (RSBSconst [c] (SRAconst x [d])) @@ -15309,7 +15214,6 @@ func rewriteValueARM_OpARMSUBSshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMSUBSshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (SUBSshiftRAreg (MOVWconst [c]) x y) // cond: // result: (RSBSconst [c] (SRA x y)) @@ -15352,7 +15256,6 @@ func rewriteValueARM_OpARMSUBSshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMSUBSshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (SUBSshiftRL (MOVWconst [c]) x [d]) // cond: // result: (RSBSconst [c] (SRLconst x [d])) @@ -15394,7 +15297,6 @@ func rewriteValueARM_OpARMSUBSshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMSUBSshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (SUBSshiftRLreg (MOVWconst [c]) x y) // cond: // result: (RSBSconst [c] (SRL x y)) @@ -15561,7 +15463,6 @@ func rewriteValueARM_OpARMSUBconst_0(v *Value) bool { } func rewriteValueARM_OpARMSUBshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (SUBshiftLL (MOVWconst [c]) x [d]) // cond: // result: (RSBconst [c] (SLLconst x [d])) @@ -15625,7 +15526,6 @@ func rewriteValueARM_OpARMSUBshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMSUBshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (SUBshiftLLreg (MOVWconst [c]) x y) // cond: // result: (RSBconst [c] (SLL x y)) @@ -15668,7 +15568,6 @@ func rewriteValueARM_OpARMSUBshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMSUBshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (SUBshiftRA (MOVWconst [c]) x [d]) // cond: // result: (RSBconst [c] (SRAconst x [d])) @@ -15732,7 +15631,6 @@ func rewriteValueARM_OpARMSUBshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMSUBshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (SUBshiftRAreg (MOVWconst [c]) x y) // cond: // result: (RSBconst [c] (SRA x y)) @@ -15775,7 +15673,6 @@ func rewriteValueARM_OpARMSUBshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMSUBshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (SUBshiftRL (MOVWconst [c]) x [d]) // cond: // result: (RSBconst [c] (SRLconst x [d])) @@ -15839,7 +15736,6 @@ func rewriteValueARM_OpARMSUBshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMSUBshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (SUBshiftRLreg (MOVWconst [c]) x y) // cond: // result: (RSBconst [c] (SRL x y)) @@ -16193,7 +16089,6 @@ func rewriteValueARM_OpARMTEQconst_0(v *Value) bool { } func rewriteValueARM_OpARMTEQshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (TEQshiftLL (MOVWconst [c]) x [d]) // cond: // result: (TEQconst [c] (SLLconst x [d])) @@ -16235,7 +16130,6 @@ func rewriteValueARM_OpARMTEQshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMTEQshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (TEQshiftLLreg (MOVWconst [c]) x y) // cond: // result: (TEQconst [c] (SLL x y)) @@ -16278,7 +16172,6 @@ func rewriteValueARM_OpARMTEQshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMTEQshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (TEQshiftRA (MOVWconst [c]) x [d]) // cond: // result: (TEQconst [c] (SRAconst x [d])) @@ -16320,7 +16213,6 @@ func rewriteValueARM_OpARMTEQshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMTEQshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (TEQshiftRAreg (MOVWconst [c]) x y) // cond: // result: (TEQconst [c] (SRA x y)) @@ -16363,7 +16255,6 @@ func rewriteValueARM_OpARMTEQshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMTEQshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (TEQshiftRL (MOVWconst [c]) x [d]) // cond: // result: (TEQconst [c] (SRLconst x [d])) @@ -16405,7 +16296,6 @@ func rewriteValueARM_OpARMTEQshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMTEQshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (TEQshiftRLreg (MOVWconst [c]) x y) // cond: // result: (TEQconst [c] (SRL x y)) @@ -16759,7 +16649,6 @@ func rewriteValueARM_OpARMTSTconst_0(v *Value) bool { } func rewriteValueARM_OpARMTSTshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (TSTshiftLL (MOVWconst [c]) x [d]) // cond: // result: (TSTconst [c] (SLLconst x [d])) @@ -16801,7 +16690,6 @@ func rewriteValueARM_OpARMTSTshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMTSTshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (TSTshiftLLreg (MOVWconst [c]) x y) // cond: // result: (TSTconst [c] (SLL x y)) @@ -16844,7 +16732,6 @@ func rewriteValueARM_OpARMTSTshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMTSTshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (TSTshiftRA (MOVWconst [c]) x [d]) // cond: // result: (TSTconst [c] (SRAconst x [d])) @@ -16886,7 +16773,6 @@ func rewriteValueARM_OpARMTSTshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMTSTshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (TSTshiftRAreg (MOVWconst [c]) x y) // cond: // result: (TSTconst [c] (SRA x y)) @@ -16929,7 +16815,6 @@ func rewriteValueARM_OpARMTSTshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMTSTshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (TSTshiftRL (MOVWconst [c]) x [d]) // cond: // result: (TSTconst [c] (SRLconst x [d])) @@ -16971,7 +16856,6 @@ func rewriteValueARM_OpARMTSTshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMTSTshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (TSTshiftRLreg (MOVWconst [c]) x y) // cond: // result: (TSTconst [c] (SRL x y)) @@ -17369,9 +17253,7 @@ func rewriteValueARM_OpARMXORconst_0(v *Value) bool { } func rewriteValueARM_OpARMXORshiftLL_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (XORshiftLL (MOVWconst [c]) x [d]) // cond: // result: (XORconst [c] (SLLconst x [d])) @@ -17525,7 +17407,6 @@ func rewriteValueARM_OpARMXORshiftLL_0(v *Value) bool { } func rewriteValueARM_OpARMXORshiftLLreg_0(v *Value) bool { b := v.Block - _ = b // match: (XORshiftLLreg (MOVWconst [c]) x y) // cond: // result: (XORconst [c] (SLL x y)) @@ -17568,7 +17449,6 @@ func rewriteValueARM_OpARMXORshiftLLreg_0(v *Value) bool { } func rewriteValueARM_OpARMXORshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (XORshiftRA (MOVWconst [c]) x [d]) // cond: // result: (XORconst [c] (SRAconst x [d])) @@ -17632,7 +17512,6 @@ func rewriteValueARM_OpARMXORshiftRA_0(v *Value) bool { } func rewriteValueARM_OpARMXORshiftRAreg_0(v *Value) bool { b := v.Block - _ = b // match: (XORshiftRAreg (MOVWconst [c]) x y) // cond: // result: (XORconst [c] (SRA x y)) @@ -17675,7 +17554,6 @@ func rewriteValueARM_OpARMXORshiftRAreg_0(v *Value) bool { } func rewriteValueARM_OpARMXORshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (XORshiftRL (MOVWconst [c]) x [d]) // cond: // result: (XORconst [c] (SRLconst x [d])) @@ -17761,7 +17639,6 @@ func rewriteValueARM_OpARMXORshiftRL_0(v *Value) bool { } func rewriteValueARM_OpARMXORshiftRLreg_0(v *Value) bool { b := v.Block - _ = b // match: (XORshiftRLreg (MOVWconst [c]) x y) // cond: // result: (XORconst [c] (SRL x y)) @@ -17804,7 +17681,6 @@ func rewriteValueARM_OpARMXORshiftRLreg_0(v *Value) bool { } func rewriteValueARM_OpARMXORshiftRR_0(v *Value) bool { b := v.Block - _ = b // match: (XORshiftRR (MOVWconst [c]) x [d]) // cond: // result: (XORconst [c] (SRRconst x [d])) @@ -18029,7 +17905,6 @@ func rewriteValueARM_OpAndB_0(v *Value) bool { } func rewriteValueARM_OpAvg32u_0(v *Value) bool { b := v.Block - _ = b // match: (Avg32u x y) // cond: // result: (ADD (SRLconst (SUB x y) [1]) y) @@ -18052,7 +17927,6 @@ func rewriteValueARM_OpAvg32u_0(v *Value) bool { } func rewriteValueARM_OpBitLen32_0(v *Value) bool { b := v.Block - _ = b // match: (BitLen32 x) // cond: // result: (RSBconst [32] (CLZ x)) @@ -18069,7 +17943,6 @@ func rewriteValueARM_OpBitLen32_0(v *Value) bool { } func rewriteValueARM_OpBswap32_0(v *Value) bool { b := v.Block - _ = b // match: (Bswap32 x) // cond: objabi.GOARM==5 // result: (XOR (SRLconst (BICconst (XOR x (SRRconst [16] x)) [0xff0000]) [8]) (SRRconst x [8])) @@ -18243,7 +18116,6 @@ func rewriteValueARM_OpConstNil_0(v *Value) bool { } func rewriteValueARM_OpCtz32_0(v *Value) bool { b := v.Block - _ = b // match: (Ctz32 x) // cond: objabi.GOARM<=6 // result: (RSBconst [32] (CLZ (SUBconst (AND x (RSBconst [0] x)) [1]))) @@ -18410,9 +18282,7 @@ func rewriteValueARM_OpCvt64Fto32U_0(v *Value) bool { } func rewriteValueARM_OpDiv16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16 x y) // cond: // result: (Div32 (SignExt16to32 x) (SignExt16to32 y)) @@ -18432,9 +18302,7 @@ func rewriteValueARM_OpDiv16_0(v *Value) bool { } func rewriteValueARM_OpDiv16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16u x y) // cond: // result: (Div32u (ZeroExt16to32 x) (ZeroExt16to32 y)) @@ -18454,9 +18322,7 @@ func rewriteValueARM_OpDiv16u_0(v *Value) bool { } func rewriteValueARM_OpDiv32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32 x y) // cond: // result: (SUB (XOR (Select0 (CALLudiv (SUB (XOR x (Signmask x)) (Signmask x)) (SUB (XOR y (Signmask y)) (Signmask y)))) (Signmask (XOR x y))) (Signmask (XOR x y))) @@ -18524,9 +18390,7 @@ func rewriteValueARM_OpDiv32F_0(v *Value) bool { } func rewriteValueARM_OpDiv32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32u x y) // cond: // result: (Select0 (CALLudiv x y)) @@ -18559,9 +18423,7 @@ func rewriteValueARM_OpDiv64F_0(v *Value) bool { } func rewriteValueARM_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 x y) // cond: // result: (Div32 (SignExt8to32 x) (SignExt8to32 y)) @@ -18581,9 +18443,7 @@ func rewriteValueARM_OpDiv8_0(v *Value) bool { } func rewriteValueARM_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u x y) // cond: // result: (Div32u (ZeroExt8to32 x) (ZeroExt8to32 y)) @@ -18603,9 +18463,7 @@ func rewriteValueARM_OpDiv8u_0(v *Value) bool { } func rewriteValueARM_OpEq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq16 x y) // cond: // result: (Equal (CMP (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -18627,7 +18485,6 @@ func rewriteValueARM_OpEq16_0(v *Value) bool { } func rewriteValueARM_OpEq32_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32 x y) // cond: // result: (Equal (CMP x y)) @@ -18645,7 +18502,6 @@ func rewriteValueARM_OpEq32_0(v *Value) bool { } func rewriteValueARM_OpEq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32F x y) // cond: // result: (Equal (CMPF x y)) @@ -18663,7 +18519,6 @@ func rewriteValueARM_OpEq32F_0(v *Value) bool { } func rewriteValueARM_OpEq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64F x y) // cond: // result: (Equal (CMPD x y)) @@ -18681,9 +18536,7 @@ func rewriteValueARM_OpEq64F_0(v *Value) bool { } func rewriteValueARM_OpEq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq8 x y) // cond: // result: (Equal (CMP (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -18705,9 +18558,7 @@ func rewriteValueARM_OpEq8_0(v *Value) bool { } func rewriteValueARM_OpEqB_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqB x y) // cond: // result: (XORconst [1] (XOR x y)) @@ -18726,7 +18577,6 @@ func rewriteValueARM_OpEqB_0(v *Value) bool { } func rewriteValueARM_OpEqPtr_0(v *Value) bool { b := v.Block - _ = b // match: (EqPtr x y) // cond: // result: (Equal (CMP x y)) @@ -18744,9 +18594,7 @@ func rewriteValueARM_OpEqPtr_0(v *Value) bool { } func rewriteValueARM_OpGeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16 x y) // cond: // result: (GreaterEqual (CMP (SignExt16to32 x) (SignExt16to32 y))) @@ -18768,9 +18616,7 @@ func rewriteValueARM_OpGeq16_0(v *Value) bool { } func rewriteValueARM_OpGeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16U x y) // cond: // result: (GreaterEqualU (CMP (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -18792,7 +18638,6 @@ func rewriteValueARM_OpGeq16U_0(v *Value) bool { } func rewriteValueARM_OpGeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32 x y) // cond: // result: (GreaterEqual (CMP x y)) @@ -18810,7 +18655,6 @@ func rewriteValueARM_OpGeq32_0(v *Value) bool { } func rewriteValueARM_OpGeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32F x y) // cond: // result: (GreaterEqual (CMPF x y)) @@ -18828,7 +18672,6 @@ func rewriteValueARM_OpGeq32F_0(v *Value) bool { } func rewriteValueARM_OpGeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32U x y) // cond: // result: (GreaterEqualU (CMP x y)) @@ -18846,7 +18689,6 @@ func rewriteValueARM_OpGeq32U_0(v *Value) bool { } func rewriteValueARM_OpGeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64F x y) // cond: // result: (GreaterEqual (CMPD x y)) @@ -18864,9 +18706,7 @@ func rewriteValueARM_OpGeq64F_0(v *Value) bool { } func rewriteValueARM_OpGeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8 x y) // cond: // result: (GreaterEqual (CMP (SignExt8to32 x) (SignExt8to32 y))) @@ -18888,9 +18728,7 @@ func rewriteValueARM_OpGeq8_0(v *Value) bool { } func rewriteValueARM_OpGeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8U x y) // cond: // result: (GreaterEqualU (CMP (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -18939,9 +18777,7 @@ func rewriteValueARM_OpGetClosurePtr_0(v *Value) bool { } func rewriteValueARM_OpGreater16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16 x y) // cond: // result: (GreaterThan (CMP (SignExt16to32 x) (SignExt16to32 y))) @@ -18963,9 +18799,7 @@ func rewriteValueARM_OpGreater16_0(v *Value) bool { } func rewriteValueARM_OpGreater16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16U x y) // cond: // result: (GreaterThanU (CMP (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -18987,7 +18821,6 @@ func rewriteValueARM_OpGreater16U_0(v *Value) bool { } func rewriteValueARM_OpGreater32_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32 x y) // cond: // result: (GreaterThan (CMP x y)) @@ -19005,7 +18838,6 @@ func rewriteValueARM_OpGreater32_0(v *Value) bool { } func rewriteValueARM_OpGreater32F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32F x y) // cond: // result: (GreaterThan (CMPF x y)) @@ -19023,7 +18855,6 @@ func rewriteValueARM_OpGreater32F_0(v *Value) bool { } func rewriteValueARM_OpGreater32U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32U x y) // cond: // result: (GreaterThanU (CMP x y)) @@ -19041,7 +18872,6 @@ func rewriteValueARM_OpGreater32U_0(v *Value) bool { } func rewriteValueARM_OpGreater64F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64F x y) // cond: // result: (GreaterThan (CMPD x y)) @@ -19059,9 +18889,7 @@ func rewriteValueARM_OpGreater64F_0(v *Value) bool { } func rewriteValueARM_OpGreater8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8 x y) // cond: // result: (GreaterThan (CMP (SignExt8to32 x) (SignExt8to32 y))) @@ -19083,9 +18911,7 @@ func rewriteValueARM_OpGreater8_0(v *Value) bool { } func rewriteValueARM_OpGreater8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8U x y) // cond: // result: (GreaterThanU (CMP (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -19151,7 +18977,6 @@ func rewriteValueARM_OpInterCall_0(v *Value) bool { } func rewriteValueARM_OpIsInBounds_0(v *Value) bool { b := v.Block - _ = b // match: (IsInBounds idx len) // cond: // result: (LessThanU (CMP idx len)) @@ -19169,7 +18994,6 @@ func rewriteValueARM_OpIsInBounds_0(v *Value) bool { } func rewriteValueARM_OpIsNonNil_0(v *Value) bool { b := v.Block - _ = b // match: (IsNonNil ptr) // cond: // result: (NotEqual (CMPconst [0] ptr)) @@ -19185,7 +19009,6 @@ func rewriteValueARM_OpIsNonNil_0(v *Value) bool { } func rewriteValueARM_OpIsSliceInBounds_0(v *Value) bool { b := v.Block - _ = b // match: (IsSliceInBounds idx len) // cond: // result: (LessEqualU (CMP idx len)) @@ -19203,9 +19026,7 @@ func rewriteValueARM_OpIsSliceInBounds_0(v *Value) bool { } func rewriteValueARM_OpLeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16 x y) // cond: // result: (LessEqual (CMP (SignExt16to32 x) (SignExt16to32 y))) @@ -19227,9 +19048,7 @@ func rewriteValueARM_OpLeq16_0(v *Value) bool { } func rewriteValueARM_OpLeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16U x y) // cond: // result: (LessEqualU (CMP (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -19251,7 +19070,6 @@ func rewriteValueARM_OpLeq16U_0(v *Value) bool { } func rewriteValueARM_OpLeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32 x y) // cond: // result: (LessEqual (CMP x y)) @@ -19269,7 +19087,6 @@ func rewriteValueARM_OpLeq32_0(v *Value) bool { } func rewriteValueARM_OpLeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32F x y) // cond: // result: (GreaterEqual (CMPF y x)) @@ -19287,7 +19104,6 @@ func rewriteValueARM_OpLeq32F_0(v *Value) bool { } func rewriteValueARM_OpLeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32U x y) // cond: // result: (LessEqualU (CMP x y)) @@ -19305,7 +19121,6 @@ func rewriteValueARM_OpLeq32U_0(v *Value) bool { } func rewriteValueARM_OpLeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64F x y) // cond: // result: (GreaterEqual (CMPD y x)) @@ -19323,9 +19138,7 @@ func rewriteValueARM_OpLeq64F_0(v *Value) bool { } func rewriteValueARM_OpLeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8 x y) // cond: // result: (LessEqual (CMP (SignExt8to32 x) (SignExt8to32 y))) @@ -19347,9 +19160,7 @@ func rewriteValueARM_OpLeq8_0(v *Value) bool { } func rewriteValueARM_OpLeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8U x y) // cond: // result: (LessEqualU (CMP (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -19371,9 +19182,7 @@ func rewriteValueARM_OpLeq8U_0(v *Value) bool { } func rewriteValueARM_OpLess16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16 x y) // cond: // result: (LessThan (CMP (SignExt16to32 x) (SignExt16to32 y))) @@ -19395,9 +19204,7 @@ func rewriteValueARM_OpLess16_0(v *Value) bool { } func rewriteValueARM_OpLess16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16U x y) // cond: // result: (LessThanU (CMP (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -19419,7 +19226,6 @@ func rewriteValueARM_OpLess16U_0(v *Value) bool { } func rewriteValueARM_OpLess32_0(v *Value) bool { b := v.Block - _ = b // match: (Less32 x y) // cond: // result: (LessThan (CMP x y)) @@ -19437,7 +19243,6 @@ func rewriteValueARM_OpLess32_0(v *Value) bool { } func rewriteValueARM_OpLess32F_0(v *Value) bool { b := v.Block - _ = b // match: (Less32F x y) // cond: // result: (GreaterThan (CMPF y x)) @@ -19455,7 +19260,6 @@ func rewriteValueARM_OpLess32F_0(v *Value) bool { } func rewriteValueARM_OpLess32U_0(v *Value) bool { b := v.Block - _ = b // match: (Less32U x y) // cond: // result: (LessThanU (CMP x y)) @@ -19473,7 +19277,6 @@ func rewriteValueARM_OpLess32U_0(v *Value) bool { } func rewriteValueARM_OpLess64F_0(v *Value) bool { b := v.Block - _ = b // match: (Less64F x y) // cond: // result: (GreaterThan (CMPD y x)) @@ -19491,9 +19294,7 @@ func rewriteValueARM_OpLess64F_0(v *Value) bool { } func rewriteValueARM_OpLess8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8 x y) // cond: // result: (LessThan (CMP (SignExt8to32 x) (SignExt8to32 y))) @@ -19515,9 +19316,7 @@ func rewriteValueARM_OpLess8_0(v *Value) bool { } func rewriteValueARM_OpLess8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8U x y) // cond: // result: (LessThanU (CMP (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -19684,9 +19483,7 @@ func rewriteValueARM_OpLocalAddr_0(v *Value) bool { } func rewriteValueARM_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x16 x y) // cond: // result: (CMOVWHSconst (SLL x (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0]) @@ -19713,7 +19510,6 @@ func rewriteValueARM_OpLsh16x16_0(v *Value) bool { } func rewriteValueARM_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x32 x y) // cond: // result: (CMOVWHSconst (SLL x y) (CMPconst [256] y) [0]) @@ -19775,9 +19571,7 @@ func rewriteValueARM_OpLsh16x64_0(v *Value) bool { } func rewriteValueARM_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x8 x y) // cond: // result: (SLL x (ZeroExt8to32 y)) @@ -19795,9 +19589,7 @@ func rewriteValueARM_OpLsh16x8_0(v *Value) bool { } func rewriteValueARM_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x16 x y) // cond: // result: (CMOVWHSconst (SLL x (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0]) @@ -19824,7 +19616,6 @@ func rewriteValueARM_OpLsh32x16_0(v *Value) bool { } func rewriteValueARM_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x32 x y) // cond: // result: (CMOVWHSconst (SLL x y) (CMPconst [256] y) [0]) @@ -19886,9 +19677,7 @@ func rewriteValueARM_OpLsh32x64_0(v *Value) bool { } func rewriteValueARM_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x8 x y) // cond: // result: (SLL x (ZeroExt8to32 y)) @@ -19906,9 +19695,7 @@ func rewriteValueARM_OpLsh32x8_0(v *Value) bool { } func rewriteValueARM_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x16 x y) // cond: // result: (CMOVWHSconst (SLL x (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0]) @@ -19935,7 +19722,6 @@ func rewriteValueARM_OpLsh8x16_0(v *Value) bool { } func rewriteValueARM_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x32 x y) // cond: // result: (CMOVWHSconst (SLL x y) (CMPconst [256] y) [0]) @@ -19997,9 +19783,7 @@ func rewriteValueARM_OpLsh8x64_0(v *Value) bool { } func rewriteValueARM_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x8 x y) // cond: // result: (SLL x (ZeroExt8to32 y)) @@ -20017,9 +19801,7 @@ func rewriteValueARM_OpLsh8x8_0(v *Value) bool { } func rewriteValueARM_OpMod16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16 x y) // cond: // result: (Mod32 (SignExt16to32 x) (SignExt16to32 y)) @@ -20039,9 +19821,7 @@ func rewriteValueARM_OpMod16_0(v *Value) bool { } func rewriteValueARM_OpMod16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16u x y) // cond: // result: (Mod32u (ZeroExt16to32 x) (ZeroExt16to32 y)) @@ -20061,9 +19841,7 @@ func rewriteValueARM_OpMod16u_0(v *Value) bool { } func rewriteValueARM_OpMod32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32 x y) // cond: // result: (SUB (XOR (Select1 (CALLudiv (SUB (XOR x (Signmask x)) (Signmask x)) (SUB (XOR y (Signmask y)) (Signmask y)))) (Signmask x)) (Signmask x)) @@ -20111,9 +19889,7 @@ func rewriteValueARM_OpMod32_0(v *Value) bool { } func rewriteValueARM_OpMod32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32u x y) // cond: // result: (Select1 (CALLudiv x y)) @@ -20132,9 +19908,7 @@ func rewriteValueARM_OpMod32u_0(v *Value) bool { } func rewriteValueARM_OpMod8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8 x y) // cond: // result: (Mod32 (SignExt8to32 x) (SignExt8to32 y)) @@ -20154,9 +19928,7 @@ func rewriteValueARM_OpMod8_0(v *Value) bool { } func rewriteValueARM_OpMod8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8u x y) // cond: // result: (Mod32u (ZeroExt8to32 x) (ZeroExt8to32 y)) @@ -20176,11 +19948,8 @@ func rewriteValueARM_OpMod8u_0(v *Value) bool { } func rewriteValueARM_OpMove_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Move [0] _ _ mem) // cond: // result: mem @@ -20600,9 +20369,7 @@ func rewriteValueARM_OpNeg8_0(v *Value) bool { } func rewriteValueARM_OpNeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq16 x y) // cond: // result: (NotEqual (CMP (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -20624,7 +20391,6 @@ func rewriteValueARM_OpNeq16_0(v *Value) bool { } func rewriteValueARM_OpNeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32 x y) // cond: // result: (NotEqual (CMP x y)) @@ -20642,7 +20408,6 @@ func rewriteValueARM_OpNeq32_0(v *Value) bool { } func rewriteValueARM_OpNeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32F x y) // cond: // result: (NotEqual (CMPF x y)) @@ -20660,7 +20425,6 @@ func rewriteValueARM_OpNeq32F_0(v *Value) bool { } func rewriteValueARM_OpNeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64F x y) // cond: // result: (NotEqual (CMPD x y)) @@ -20678,9 +20442,7 @@ func rewriteValueARM_OpNeq64F_0(v *Value) bool { } func rewriteValueARM_OpNeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq8 x y) // cond: // result: (NotEqual (CMP (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -20716,7 +20478,6 @@ func rewriteValueARM_OpNeqB_0(v *Value) bool { } func rewriteValueARM_OpNeqPtr_0(v *Value) bool { b := v.Block - _ = b // match: (NeqPtr x y) // cond: // result: (NotEqual (CMP x y)) @@ -20867,9 +20628,7 @@ func rewriteValueARM_OpRound64F_0(v *Value) bool { } func rewriteValueARM_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux16 x y) // cond: // result: (CMOVWHSconst (SRL (ZeroExt16to32 x) (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0]) @@ -20898,9 +20657,7 @@ func rewriteValueARM_OpRsh16Ux16_0(v *Value) bool { } func rewriteValueARM_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux32 x y) // cond: // result: (CMOVWHSconst (SRL (ZeroExt16to32 x) y) (CMPconst [256] y) [0]) @@ -20925,9 +20682,7 @@ func rewriteValueARM_OpRsh16Ux32_0(v *Value) bool { } func rewriteValueARM_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux64 x (Const64 [c])) // cond: uint64(c) < 16 // result: (SRLconst (SLLconst x [16]) [c+16]) @@ -20971,9 +20726,7 @@ func rewriteValueARM_OpRsh16Ux64_0(v *Value) bool { } func rewriteValueARM_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux8 x y) // cond: // result: (SRL (ZeroExt16to32 x) (ZeroExt8to32 y)) @@ -20993,9 +20746,7 @@ func rewriteValueARM_OpRsh16Ux8_0(v *Value) bool { } func rewriteValueARM_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x16 x y) // cond: // result: (SRAcond (SignExt16to32 x) (ZeroExt16to32 y) (CMPconst [256] (ZeroExt16to32 y))) @@ -21021,9 +20772,7 @@ func rewriteValueARM_OpRsh16x16_0(v *Value) bool { } func rewriteValueARM_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x32 x y) // cond: // result: (SRAcond (SignExt16to32 x) y (CMPconst [256] y)) @@ -21045,9 +20794,7 @@ func rewriteValueARM_OpRsh16x32_0(v *Value) bool { } func rewriteValueARM_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x64 x (Const64 [c])) // cond: uint64(c) < 16 // result: (SRAconst (SLLconst x [16]) [c+16]) @@ -21096,9 +20843,7 @@ func rewriteValueARM_OpRsh16x64_0(v *Value) bool { } func rewriteValueARM_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x8 x y) // cond: // result: (SRA (SignExt16to32 x) (ZeroExt8to32 y)) @@ -21118,9 +20863,7 @@ func rewriteValueARM_OpRsh16x8_0(v *Value) bool { } func rewriteValueARM_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux16 x y) // cond: // result: (CMOVWHSconst (SRL x (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0]) @@ -21147,7 +20890,6 @@ func rewriteValueARM_OpRsh32Ux16_0(v *Value) bool { } func rewriteValueARM_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux32 x y) // cond: // result: (CMOVWHSconst (SRL x y) (CMPconst [256] y) [0]) @@ -21209,9 +20951,7 @@ func rewriteValueARM_OpRsh32Ux64_0(v *Value) bool { } func rewriteValueARM_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux8 x y) // cond: // result: (SRL x (ZeroExt8to32 y)) @@ -21229,9 +20969,7 @@ func rewriteValueARM_OpRsh32Ux8_0(v *Value) bool { } func rewriteValueARM_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x16 x y) // cond: // result: (SRAcond x (ZeroExt16to32 y) (CMPconst [256] (ZeroExt16to32 y))) @@ -21255,7 +20993,6 @@ func rewriteValueARM_OpRsh32x16_0(v *Value) bool { } func rewriteValueARM_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x32 x y) // cond: // result: (SRAcond x y (CMPconst [256] y)) @@ -21316,9 +21053,7 @@ func rewriteValueARM_OpRsh32x64_0(v *Value) bool { } func rewriteValueARM_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x8 x y) // cond: // result: (SRA x (ZeroExt8to32 y)) @@ -21336,9 +21071,7 @@ func rewriteValueARM_OpRsh32x8_0(v *Value) bool { } func rewriteValueARM_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux16 x y) // cond: // result: (CMOVWHSconst (SRL (ZeroExt8to32 x) (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0]) @@ -21367,9 +21100,7 @@ func rewriteValueARM_OpRsh8Ux16_0(v *Value) bool { } func rewriteValueARM_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux32 x y) // cond: // result: (CMOVWHSconst (SRL (ZeroExt8to32 x) y) (CMPconst [256] y) [0]) @@ -21394,9 +21125,7 @@ func rewriteValueARM_OpRsh8Ux32_0(v *Value) bool { } func rewriteValueARM_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux64 x (Const64 [c])) // cond: uint64(c) < 8 // result: (SRLconst (SLLconst x [24]) [c+24]) @@ -21440,9 +21169,7 @@ func rewriteValueARM_OpRsh8Ux64_0(v *Value) bool { } func rewriteValueARM_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux8 x y) // cond: // result: (SRL (ZeroExt8to32 x) (ZeroExt8to32 y)) @@ -21462,9 +21189,7 @@ func rewriteValueARM_OpRsh8Ux8_0(v *Value) bool { } func rewriteValueARM_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x16 x y) // cond: // result: (SRAcond (SignExt8to32 x) (ZeroExt16to32 y) (CMPconst [256] (ZeroExt16to32 y))) @@ -21490,9 +21215,7 @@ func rewriteValueARM_OpRsh8x16_0(v *Value) bool { } func rewriteValueARM_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x32 x y) // cond: // result: (SRAcond (SignExt8to32 x) y (CMPconst [256] y)) @@ -21514,9 +21237,7 @@ func rewriteValueARM_OpRsh8x32_0(v *Value) bool { } func rewriteValueARM_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x64 x (Const64 [c])) // cond: uint64(c) < 8 // result: (SRAconst (SLLconst x [24]) [c+24]) @@ -21565,9 +21286,7 @@ func rewriteValueARM_OpRsh8x64_0(v *Value) bool { } func rewriteValueARM_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x8 x y) // cond: // result: (SRA (SignExt8to32 x) (ZeroExt8to32 y)) @@ -21772,7 +21491,6 @@ func rewriteValueARM_OpSignmask_0(v *Value) bool { } func rewriteValueARM_OpSlicemask_0(v *Value) bool { b := v.Block - _ = b // match: (Slicemask x) // cond: // result: (SRAconst (RSBconst [0] x) [31]) @@ -22119,11 +21837,8 @@ func rewriteValueARM_OpXor8_0(v *Value) bool { } func rewriteValueARM_OpZero_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Zero [0] _ mem) // cond: // result: mem @@ -22412,9 +22127,7 @@ func rewriteValueARM_OpZeroExt8to32_0(v *Value) bool { } func rewriteValueARM_OpZeromask_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Zeromask x) // cond: // result: (SRAconst (RSBshiftRL x x [1]) [31]) diff --git a/src/cmd/compile/internal/ssa/rewriteARM64.go b/src/cmd/compile/internal/ssa/rewriteARM64.go index a8acb4fec8..63e87880e8 100644 --- a/src/cmd/compile/internal/ssa/rewriteARM64.go +++ b/src/cmd/compile/internal/ssa/rewriteARM64.go @@ -1159,9 +1159,7 @@ func rewriteValueARM64_OpARM64ADD_0(v *Value) bool { } func rewriteValueARM64_OpARM64ADD_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ADD x (NEG y)) // cond: // result: (SUB x y) @@ -1550,9 +1548,7 @@ func rewriteValueARM64_OpARM64ADD_10(v *Value) bool { } func rewriteValueARM64_OpARM64ADD_20(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ADD (SRL x (ANDconst [63] y)) (CSEL0 {cc} (SLL x (SUB (MOVDconst [64]) (ANDconst [63] y))) (CMPconst [64] (SUB (MOVDconst [64]) (ANDconst [63] y))))) // cond: cc.(Op) == OpARM64LessThanU // result: (ROR x y) @@ -2323,9 +2319,7 @@ func rewriteValueARM64_OpARM64ADDconst_0(v *Value) bool { } func rewriteValueARM64_OpARM64ADDshiftLL_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ADDshiftLL (MOVDconst [c]) x [d]) // cond: // result: (ADDconst [c] (SLLconst x [d])) @@ -2486,7 +2480,6 @@ func rewriteValueARM64_OpARM64ADDshiftLL_0(v *Value) bool { } func rewriteValueARM64_OpARM64ADDshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (ADDshiftRA (MOVDconst [c]) x [d]) // cond: // result: (ADDconst [c] (SRAconst x [d])) @@ -2528,7 +2521,6 @@ func rewriteValueARM64_OpARM64ADDshiftRA_0(v *Value) bool { } func rewriteValueARM64_OpARM64ADDshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (ADDshiftRL (MOVDconst [c]) x [d]) // cond: // result: (ADDconst [c] (SRLconst x [d])) @@ -2972,7 +2964,6 @@ func rewriteValueARM64_OpARM64ANDconst_0(v *Value) bool { } func rewriteValueARM64_OpARM64ANDshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (ANDshiftLL (MOVDconst [c]) x [d]) // cond: // result: (ANDconst [c] (SLLconst x [d])) @@ -3037,7 +3028,6 @@ func rewriteValueARM64_OpARM64ANDshiftLL_0(v *Value) bool { } func rewriteValueARM64_OpARM64ANDshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (ANDshiftRA (MOVDconst [c]) x [d]) // cond: // result: (ANDconst [c] (SRAconst x [d])) @@ -3102,7 +3092,6 @@ func rewriteValueARM64_OpARM64ANDshiftRA_0(v *Value) bool { } func rewriteValueARM64_OpARM64ANDshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (ANDshiftRL (MOVDconst [c]) x [d]) // cond: // result: (ANDconst [c] (SRLconst x [d])) @@ -3750,7 +3739,6 @@ func rewriteValueARM64_OpARM64CMNconst_0(v *Value) bool { } func rewriteValueARM64_OpARM64CMNshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (CMNshiftLL (MOVDconst [c]) x [d]) // cond: // result: (CMNconst [c] (SLLconst x [d])) @@ -3792,7 +3780,6 @@ func rewriteValueARM64_OpARM64CMNshiftLL_0(v *Value) bool { } func rewriteValueARM64_OpARM64CMNshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (CMNshiftRA (MOVDconst [c]) x [d]) // cond: // result: (CMNconst [c] (SRAconst x [d])) @@ -3834,7 +3821,6 @@ func rewriteValueARM64_OpARM64CMNshiftRA_0(v *Value) bool { } func rewriteValueARM64_OpARM64CMNshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (CMNshiftRL (MOVDconst [c]) x [d]) // cond: // result: (CMNconst [c] (SRLconst x [d])) @@ -3876,7 +3862,6 @@ func rewriteValueARM64_OpARM64CMNshiftRL_0(v *Value) bool { } func rewriteValueARM64_OpARM64CMP_0(v *Value) bool { b := v.Block - _ = b // match: (CMP x (MOVDconst [c])) // cond: // result: (CMPconst [c] x) @@ -4047,7 +4032,6 @@ func rewriteValueARM64_OpARM64CMP_0(v *Value) bool { } func rewriteValueARM64_OpARM64CMPW_0(v *Value) bool { b := v.Block - _ = b // match: (CMPW x (MOVDconst [c])) // cond: // result: (CMPWconst [int64(int32(c))] x) @@ -4359,7 +4343,6 @@ func rewriteValueARM64_OpARM64CMPconst_0(v *Value) bool { } func rewriteValueARM64_OpARM64CMPshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (CMPshiftLL (MOVDconst [c]) x [d]) // cond: // result: (InvertFlags (CMPconst [c] (SLLconst x [d]))) @@ -4403,7 +4386,6 @@ func rewriteValueARM64_OpARM64CMPshiftLL_0(v *Value) bool { } func rewriteValueARM64_OpARM64CMPshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (CMPshiftRA (MOVDconst [c]) x [d]) // cond: // result: (InvertFlags (CMPconst [c] (SRAconst x [d]))) @@ -4447,7 +4429,6 @@ func rewriteValueARM64_OpARM64CMPshiftRA_0(v *Value) bool { } func rewriteValueARM64_OpARM64CMPshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (CMPshiftRL (MOVDconst [c]) x [d]) // cond: // result: (InvertFlags (CMPconst [c] (SRLconst x [d]))) @@ -5238,7 +5219,6 @@ func rewriteValueARM64_OpARM64FADDS_0(v *Value) bool { } func rewriteValueARM64_OpARM64FCMPD_0(v *Value) bool { b := v.Block - _ = b // match: (FCMPD x (FMOVDconst [0])) // cond: // result: (FCMPD0 x) @@ -5279,7 +5259,6 @@ func rewriteValueARM64_OpARM64FCMPD_0(v *Value) bool { } func rewriteValueARM64_OpARM64FCMPS_0(v *Value) bool { b := v.Block - _ = b // match: (FCMPS x (FMOVSconst [0])) // cond: // result: (FCMPS0 x) @@ -5320,7 +5299,6 @@ func rewriteValueARM64_OpARM64FCMPS_0(v *Value) bool { } func rewriteValueARM64_OpARM64FMOVDfpgp_0(v *Value) bool { b := v.Block - _ = b // match: (FMOVDfpgp (Arg [off] {sym})) // cond: // result: @b.Func.Entry (Arg [off] {sym}) @@ -5344,7 +5322,6 @@ func rewriteValueARM64_OpARM64FMOVDfpgp_0(v *Value) bool { } func rewriteValueARM64_OpARM64FMOVDgpfp_0(v *Value) bool { b := v.Block - _ = b // match: (FMOVDgpfp (Arg [off] {sym})) // cond: // result: @b.Func.Entry (Arg [off] {sym}) @@ -5368,9 +5345,7 @@ func rewriteValueARM64_OpARM64FMOVDgpfp_0(v *Value) bool { } func rewriteValueARM64_OpARM64FMOVDload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (FMOVDload [off] {sym} ptr (MOVDstore [off] {sym} ptr val _)) // cond: // result: (FMOVDgpfp val) @@ -5514,9 +5489,7 @@ func rewriteValueARM64_OpARM64FMOVDloadidx_0(v *Value) bool { } func rewriteValueARM64_OpARM64FMOVDstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (FMOVDstore [off] {sym} ptr (FMOVDgpfp val) mem) // cond: // result: (MOVDstore [off] {sym} ptr val mem) @@ -5665,9 +5638,7 @@ func rewriteValueARM64_OpARM64FMOVDstoreidx_0(v *Value) bool { } func rewriteValueARM64_OpARM64FMOVSload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (FMOVSload [off] {sym} ptr (MOVWstore [off] {sym} ptr val _)) // cond: // result: (FMOVSgpfp val) @@ -5811,9 +5782,7 @@ func rewriteValueARM64_OpARM64FMOVSloadidx_0(v *Value) bool { } func rewriteValueARM64_OpARM64FMOVSstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (FMOVSstore [off] {sym} ptr (FMOVSgpfp val) mem) // cond: // result: (MOVWstore [off] {sym} ptr val mem) @@ -7002,7 +6971,6 @@ func rewriteValueARM64_OpARM64LessThanU_0(v *Value) bool { } func rewriteValueARM64_OpARM64MADD_0(v *Value) bool { b := v.Block - _ = b // match: (MADD a x (MOVDconst [-1])) // cond: // result: (SUB a x) @@ -7232,7 +7200,6 @@ func rewriteValueARM64_OpARM64MADD_0(v *Value) bool { } func rewriteValueARM64_OpARM64MADD_10(v *Value) bool { b := v.Block - _ = b // match: (MADD a (MOVDconst [-1]) x) // cond: // result: (SUB a x) @@ -7462,7 +7429,6 @@ func rewriteValueARM64_OpARM64MADD_10(v *Value) bool { } func rewriteValueARM64_OpARM64MADD_20(v *Value) bool { b := v.Block - _ = b // match: (MADD (MOVDconst [c]) x y) // cond: // result: (ADDconst [c] (MUL x y)) @@ -7508,7 +7474,6 @@ func rewriteValueARM64_OpARM64MADD_20(v *Value) bool { } func rewriteValueARM64_OpARM64MADDW_0(v *Value) bool { b := v.Block - _ = b // match: (MADDW a x (MOVDconst [c])) // cond: int32(c)==-1 // result: (SUB a x) @@ -7741,7 +7706,6 @@ func rewriteValueARM64_OpARM64MADDW_0(v *Value) bool { } func rewriteValueARM64_OpARM64MADDW_10(v *Value) bool { b := v.Block - _ = b // match: (MADDW a (MOVDconst [c]) x) // cond: int32(c)==-1 // result: (SUB a x) @@ -7974,7 +7938,6 @@ func rewriteValueARM64_OpARM64MADDW_10(v *Value) bool { } func rewriteValueARM64_OpARM64MADDW_20(v *Value) bool { b := v.Block - _ = b // match: (MADDW (MOVDconst [c]) x y) // cond: // result: (ADDconst [c] (MULW x y)) @@ -8020,7 +7983,6 @@ func rewriteValueARM64_OpARM64MADDW_20(v *Value) bool { } func rewriteValueARM64_OpARM64MNEG_0(v *Value) bool { b := v.Block - _ = b // match: (MNEG x (MOVDconst [-1])) // cond: // result: x @@ -8213,7 +8175,6 @@ func rewriteValueARM64_OpARM64MNEG_0(v *Value) bool { } func rewriteValueARM64_OpARM64MNEG_10(v *Value) bool { b := v.Block - _ = b // match: (MNEG x (MOVDconst [c])) // cond: isPowerOfTwo(c+1) && c >= 7 // result: (NEG (ADDshiftLL (NEG x) x [log2(c+1)])) @@ -8503,7 +8464,6 @@ func rewriteValueARM64_OpARM64MNEG_20(v *Value) bool { } func rewriteValueARM64_OpARM64MNEGW_0(v *Value) bool { b := v.Block - _ = b // match: (MNEGW x (MOVDconst [c])) // cond: int32(c)==-1 // result: x @@ -8702,7 +8662,6 @@ func rewriteValueARM64_OpARM64MNEGW_0(v *Value) bool { } func rewriteValueARM64_OpARM64MNEGW_10(v *Value) bool { b := v.Block - _ = b // match: (MNEGW x (MOVDconst [c])) // cond: isPowerOfTwo(c+1) && int32(c) >= 7 // result: (NEG (ADDshiftLL (NEG x) x [log2(c+1)])) @@ -9036,9 +8995,7 @@ func rewriteValueARM64_OpARM64MODW_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVBUload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBUload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVBUload [off1+off2] {sym} ptr mem) @@ -9334,9 +9291,7 @@ func rewriteValueARM64_OpARM64MOVBUreg_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVBload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVBload [off1+off2] {sym} ptr mem) @@ -9569,9 +9524,7 @@ func rewriteValueARM64_OpARM64MOVBreg_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVBstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBstore [off1] {sym} (ADDconst [off2] ptr) val mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVBstore [off1+off2] {sym} ptr val mem) @@ -10271,7 +10224,6 @@ func rewriteValueARM64_OpARM64MOVBstore_10(v *Value) bool { } func rewriteValueARM64_OpARM64MOVBstore_20(v *Value) bool { b := v.Block - _ = b // match: (MOVBstore [i] {s} ptr0 (UBFX [bfc] w) x:(MOVBstore [i-1] {s} ptr1 w0:(UBFX [bfc2] w) mem)) // cond: x.Uses == 1 && isSamePtr(ptr0, ptr1) && getARM64BFwidth(bfc) == 32 - getARM64BFlsb(bfc) && getARM64BFwidth(bfc2) == 32 - getARM64BFlsb(bfc2) && getARM64BFlsb(bfc2) == getARM64BFlsb(bfc) - 8 && clobber(x) // result: (MOVHstore [i-1] {s} ptr0 w0 mem) @@ -11264,7 +11216,6 @@ func rewriteValueARM64_OpARM64MOVBstore_20(v *Value) bool { } func rewriteValueARM64_OpARM64MOVBstore_30(v *Value) bool { b := v.Block - _ = b // match: (MOVBstore [i] {s} ptr w x0:(MOVBstore [i-1] {s} ptr (SRLconst [8] w) x1:(MOVBstore [i-2] {s} ptr (SRLconst [16] w) x2:(MOVBstore [i-3] {s} ptr (SRLconst [24] w) mem)))) // cond: x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && clobber(x0) && clobber(x1) && clobber(x2) // result: (MOVWstore [i-3] {s} ptr (REVW w) mem) @@ -11841,7 +11792,6 @@ func rewriteValueARM64_OpARM64MOVBstore_30(v *Value) bool { } func rewriteValueARM64_OpARM64MOVBstore_40(v *Value) bool { b := v.Block - _ = b // match: (MOVBstore [i] {s} ptr w x:(MOVBstore [i-1] {s} ptr (SRLconst [8] (MOVDreg w)) mem)) // cond: x.Uses == 1 && clobber(x) // result: (MOVHstore [i-1] {s} ptr (REV16W w) mem) @@ -12179,7 +12129,6 @@ func rewriteValueARM64_OpARM64MOVBstoreidx_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVBstoreidx_10(v *Value) bool { b := v.Block - _ = b // match: (MOVBstoreidx ptr (ADDconst [3] idx) w x0:(MOVBstoreidx ptr (ADDconst [2] idx) (UBFX [armBFAuxInt(8, 24)] w) x1:(MOVBstoreidx ptr (ADDconst [1] idx) (UBFX [armBFAuxInt(16, 16)] w) x2:(MOVBstoreidx ptr idx (UBFX [armBFAuxInt(24, 8)] w) mem)))) // cond: x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && clobber(x0) && clobber(x1) && clobber(x2) // result: (MOVWstoreidx ptr idx (REVW w) mem) @@ -12488,9 +12437,7 @@ func rewriteValueARM64_OpARM64MOVBstoreidx_10(v *Value) bool { } func rewriteValueARM64_OpARM64MOVBstorezero_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVBstorezero [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVBstorezero [off1+off2] {sym} ptr mem) @@ -12704,9 +12651,7 @@ func rewriteValueARM64_OpARM64MOVBstorezeroidx_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVDload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVDload [off] {sym} ptr (FMOVDstore [off] {sym} ptr val _)) // cond: // result: (FMOVDfpgp val) @@ -13051,9 +12996,7 @@ func rewriteValueARM64_OpARM64MOVDreg_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVDstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVDstore [off] {sym} ptr (FMOVDfpgp val) mem) // cond: // result: (FMOVDstore [off] {sym} ptr val mem) @@ -13365,9 +13308,7 @@ func rewriteValueARM64_OpARM64MOVDstoreidx8_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVDstorezero_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVDstorezero [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVDstorezero [off1+off2] {sym} ptr mem) @@ -13674,9 +13615,7 @@ func rewriteValueARM64_OpARM64MOVDstorezeroidx8_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVHUload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVHUload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVHUload [off1+off2] {sym} ptr mem) @@ -14148,9 +14087,7 @@ func rewriteValueARM64_OpARM64MOVHUreg_10(v *Value) bool { } func rewriteValueARM64_OpARM64MOVHload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVHload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVHload [off1+off2] {sym} ptr mem) @@ -14609,9 +14546,7 @@ func rewriteValueARM64_OpARM64MOVHreg_10(v *Value) bool { } func rewriteValueARM64_OpARM64MOVHstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVHstore [off1] {sym} (ADDconst [off2] ptr) val mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVHstore [off1+off2] {sym} ptr val mem) @@ -14878,7 +14813,6 @@ func rewriteValueARM64_OpARM64MOVHstore_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVHstore_10(v *Value) bool { b := v.Block - _ = b // match: (MOVHstore [2] {s} (ADD ptr0 idx0) (SRLconst [16] w) x:(MOVHstoreidx ptr1 idx1 w mem)) // cond: x.Uses == 1 && s == nil && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) && clobber(x) // result: (MOVWstoreidx ptr1 idx1 w mem) @@ -15367,7 +15301,6 @@ func rewriteValueARM64_OpARM64MOVHstore_10(v *Value) bool { } func rewriteValueARM64_OpARM64MOVHstore_20(v *Value) bool { b := v.Block - _ = b // match: (MOVHstore [2] {s} (ADDshiftLL [1] ptr0 idx0) (SRLconst [j] w) x:(MOVHstoreidx2 ptr1 idx1 w0:(SRLconst [j-16] w) mem)) // cond: x.Uses == 1 && s == nil && isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) && clobber(x) // result: (MOVWstoreidx ptr1 (SLLconst [1] idx1) w0 mem) @@ -15840,9 +15773,7 @@ func rewriteValueARM64_OpARM64MOVHstoreidx2_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVHstorezero_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVHstorezero [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVHstorezero [off1+off2] {sym} ptr mem) @@ -16229,9 +16160,7 @@ func rewriteValueARM64_OpARM64MOVHstorezeroidx2_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVQstorezero_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVQstorezero [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVQstorezero [off1+off2] {sym} ptr mem) @@ -16285,9 +16214,7 @@ func rewriteValueARM64_OpARM64MOVQstorezero_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVWUload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWUload [off] {sym} ptr (FMOVSstore [off] {sym} ptr val _)) // cond: // result: (FMOVSfpgp val) @@ -16814,9 +16741,7 @@ func rewriteValueARM64_OpARM64MOVWUreg_10(v *Value) bool { } func rewriteValueARM64_OpARM64MOVWload_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWload [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVWload [off1+off2] {sym} ptr mem) @@ -17354,9 +17279,7 @@ func rewriteValueARM64_OpARM64MOVWreg_10(v *Value) bool { } func rewriteValueARM64_OpARM64MOVWstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWstore [off] {sym} ptr (FMOVSfpgp val) mem) // cond: // result: (FMOVSstore [off] {sym} ptr val mem) @@ -17646,7 +17569,6 @@ func rewriteValueARM64_OpARM64MOVWstore_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVWstore_10(v *Value) bool { b := v.Block - _ = b // match: (MOVWstore [4] {s} (ADDshiftLL [2] ptr0 idx0) (SRLconst [32] w) x:(MOVWstoreidx4 ptr1 idx1 w mem)) // cond: x.Uses == 1 && s == nil && isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) && clobber(x) // result: (MOVDstoreidx ptr1 (SLLconst [2] idx1) w mem) @@ -18137,9 +18059,7 @@ func rewriteValueARM64_OpARM64MOVWstoreidx4_0(v *Value) bool { } func rewriteValueARM64_OpARM64MOVWstorezero_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVWstorezero [off1] {sym} (ADDconst [off2] ptr) mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (MOVWstorezero [off1+off2] {sym} ptr mem) @@ -18482,7 +18402,6 @@ func rewriteValueARM64_OpARM64MOVWstorezeroidx4_0(v *Value) bool { } func rewriteValueARM64_OpARM64MSUB_0(v *Value) bool { b := v.Block - _ = b // match: (MSUB a x (MOVDconst [-1])) // cond: // result: (ADD a x) @@ -18712,7 +18631,6 @@ func rewriteValueARM64_OpARM64MSUB_0(v *Value) bool { } func rewriteValueARM64_OpARM64MSUB_10(v *Value) bool { b := v.Block - _ = b // match: (MSUB a (MOVDconst [-1]) x) // cond: // result: (ADD a x) @@ -18942,7 +18860,6 @@ func rewriteValueARM64_OpARM64MSUB_10(v *Value) bool { } func rewriteValueARM64_OpARM64MSUB_20(v *Value) bool { b := v.Block - _ = b // match: (MSUB (MOVDconst [c]) x y) // cond: // result: (ADDconst [c] (MNEG x y)) @@ -18988,7 +18905,6 @@ func rewriteValueARM64_OpARM64MSUB_20(v *Value) bool { } func rewriteValueARM64_OpARM64MSUBW_0(v *Value) bool { b := v.Block - _ = b // match: (MSUBW a x (MOVDconst [c])) // cond: int32(c)==-1 // result: (ADD a x) @@ -19221,7 +19137,6 @@ func rewriteValueARM64_OpARM64MSUBW_0(v *Value) bool { } func rewriteValueARM64_OpARM64MSUBW_10(v *Value) bool { b := v.Block - _ = b // match: (MSUBW a (MOVDconst [c]) x) // cond: int32(c)==-1 // result: (ADD a x) @@ -19454,7 +19369,6 @@ func rewriteValueARM64_OpARM64MSUBW_10(v *Value) bool { } func rewriteValueARM64_OpARM64MSUBW_20(v *Value) bool { b := v.Block - _ = b // match: (MSUBW (MOVDconst [c]) x y) // cond: // result: (ADDconst [c] (MNEGW x y)) @@ -19675,7 +19589,6 @@ func rewriteValueARM64_OpARM64MUL_0(v *Value) bool { } func rewriteValueARM64_OpARM64MUL_10(v *Value) bool { b := v.Block - _ = b // match: (MUL x (MOVDconst [c])) // cond: isPowerOfTwo(c-1) && c >= 3 // result: (ADDshiftLL x x [log2(c-1)]) @@ -19906,7 +19819,6 @@ func rewriteValueARM64_OpARM64MUL_10(v *Value) bool { } func rewriteValueARM64_OpARM64MUL_20(v *Value) bool { b := v.Block - _ = b // match: (MUL x (MOVDconst [c])) // cond: c%9 == 0 && isPowerOfTwo(c/9) // result: (SLLconst [log2(c/9)] (ADDshiftLL x x [3])) @@ -20176,7 +20088,6 @@ func rewriteValueARM64_OpARM64MULW_0(v *Value) bool { } func rewriteValueARM64_OpARM64MULW_10(v *Value) bool { b := v.Block - _ = b // match: (MULW x (MOVDconst [c])) // cond: isPowerOfTwo(c-1) && int32(c) >= 3 // result: (ADDshiftLL x x [log2(c-1)]) @@ -20407,7 +20318,6 @@ func rewriteValueARM64_OpARM64MULW_10(v *Value) bool { } func rewriteValueARM64_OpARM64MULW_20(v *Value) bool { b := v.Block - _ = b // match: (MULW x (MOVDconst [c])) // cond: c%9 == 0 && isPowerOfTwo(c/9) && is32Bit(c) // result: (SLLconst [log2(c/9)] (ADDshiftLL x x [3])) @@ -21032,9 +20942,7 @@ func rewriteValueARM64_OpARM64OR_0(v *Value) bool { } func rewriteValueARM64_OpARM64OR_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR x1:(SRAconst [c] y) x0) // cond: clobberIfDead(x1) // result: (ORshiftRA x0 y [c]) @@ -21998,7 +21906,6 @@ func rewriteValueARM64_OpARM64OR_10(v *Value) bool { } func rewriteValueARM64_OpARM64OR_20(v *Value) bool { b := v.Block - _ = b // match: (OR (ANDconst [ac] y) (UBFIZ [bfc] x)) // cond: ac == ^((1< y7:(MOVDnop x7:(MOVBUload [i0] {s} p mem)) o0:(ORshiftLL [8] o1:(ORshiftLL [16] o2:(ORshiftLL [24] o3:(ORshiftLL [32] o4:(ORshiftLL [40] o5:(ORshiftLL [48] s0:(SLLconst [56] y0:(MOVDnop x0:(MOVBUload [i7] {s} p mem))) y1:(MOVDnop x1:(MOVBUload [i6] {s} p mem))) y2:(MOVDnop x2:(MOVBUload [i5] {s} p mem))) y3:(MOVDnop x3:(MOVBUload [i4] {s} p mem))) y4:(MOVDnop x4:(MOVBUload [i3] {s} p mem))) y5:(MOVDnop x5:(MOVBUload [i2] {s} p mem))) y6:(MOVDnop x6:(MOVBUload [i1] {s} p mem)))) // cond: i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && y0.Uses == 1 && y1.Uses == 1 && y2.Uses == 1 && y3.Uses == 1 && y4.Uses == 1 && y5.Uses == 1 && y6.Uses == 1 && y7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(y0) && clobber(y1) && clobber(y2) && clobber(y3) && clobber(y4) && clobber(y5) && clobber(y6) && clobber(y7) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5) && clobber(s0) // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload {s} (OffPtr [i0] p) mem) @@ -24828,7 +24734,6 @@ func rewriteValueARM64_OpARM64OR_30(v *Value) bool { } func rewriteValueARM64_OpARM64OR_40(v *Value) bool { b := v.Block - _ = b // match: (OR y3:(MOVDnop x3:(MOVBUloadidx ptr (ADDconst [3] idx) mem)) o0:(ORshiftLL [8] o1:(ORshiftLL [16] s0:(SLLconst [24] y0:(MOVDnop x0:(MOVBUloadidx ptr idx mem))) y1:(MOVDnop x1:(MOVBUloadidx ptr (ADDconst [1] idx) mem))) y2:(MOVDnop x2:(MOVBUloadidx ptr (ADDconst [2] idx) mem)))) // cond: x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && y0.Uses == 1 && y1.Uses == 1 && y2.Uses == 1 && y3.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1,x2,x3) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(y0) && clobber(y1) && clobber(y2) && clobber(y3) && clobber(o0) && clobber(o1) && clobber(s0) // result: @mergePoint(b,x0,x1,x2,x3) (REVW (MOVWUloadidx ptr idx mem)) @@ -26700,9 +26605,7 @@ func rewriteValueARM64_OpARM64ORconst_0(v *Value) bool { } func rewriteValueARM64_OpARM64ORshiftLL_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORshiftLL (MOVDconst [c]) x [d]) // cond: // result: (ORconst [c] (SLLconst x [d])) @@ -26971,7 +26874,6 @@ func rewriteValueARM64_OpARM64ORshiftLL_0(v *Value) bool { } func rewriteValueARM64_OpARM64ORshiftLL_10(v *Value) bool { b := v.Block - _ = b // match: (ORshiftLL [8] y0:(MOVDnop x0:(MOVBUloadidx ptr0 idx0 mem)) y1:(MOVDnop x1:(MOVBUload [1] {s} p1:(ADD ptr1 idx1) mem))) // cond: s == nil && x0.Uses == 1 && x1.Uses == 1 && y0.Uses == 1 && y1.Uses == 1 && mergePoint(b,x0,x1) != nil && (isSamePtr(ptr0, ptr1) && isSamePtr(idx0, idx1) || isSamePtr(ptr0, idx1) && isSamePtr(idx0, ptr1)) && clobber(x0) && clobber(x1) && clobber(y0) && clobber(y1) // result: @mergePoint(b,x0,x1) (MOVHUloadidx ptr0 idx0 mem) @@ -27986,7 +27888,6 @@ func rewriteValueARM64_OpARM64ORshiftLL_10(v *Value) bool { } func rewriteValueARM64_OpARM64ORshiftLL_20(v *Value) bool { b := v.Block - _ = b // match: (ORshiftLL [8] y0:(MOVDnop x0:(MOVBUload [i1] {s} p mem)) y1:(MOVDnop x1:(MOVBUload [i0] {s} p mem))) // cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && y0.Uses == 1 && y1.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(y0) && clobber(y1) // result: @mergePoint(b,x0,x1) (REV16W (MOVHUload [i0] {s} p mem)) @@ -28869,7 +28770,6 @@ func rewriteValueARM64_OpARM64ORshiftLL_20(v *Value) bool { } func rewriteValueARM64_OpARM64ORshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (ORshiftRA (MOVDconst [c]) x [d]) // cond: // result: (ORconst [c] (SRAconst x [d])) @@ -28934,7 +28834,6 @@ func rewriteValueARM64_OpARM64ORshiftRA_0(v *Value) bool { } func rewriteValueARM64_OpARM64ORshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (ORshiftRL (MOVDconst [c]) x [d]) // cond: // result: (ORconst [c] (SRLconst x [d])) @@ -29678,9 +29577,7 @@ func rewriteValueARM64_OpARM64SRLconst_10(v *Value) bool { } func rewriteValueARM64_OpARM64STP_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (STP [off1] {sym} (ADDconst [off2] ptr) val1 val2 mem) // cond: is32Bit(off1+off2) && (ptr.Op != OpSB || !config.ctxt.Flag_shared) // result: (STP [off1+off2] {sym} ptr val1 val2 mem) @@ -29772,7 +29669,6 @@ func rewriteValueARM64_OpARM64STP_0(v *Value) bool { } func rewriteValueARM64_OpARM64SUB_0(v *Value) bool { b := v.Block - _ = b // match: (SUB x (MOVDconst [c])) // cond: // result: (SUBconst [c] x) @@ -30488,7 +30384,6 @@ func rewriteValueARM64_OpARM64TSTconst_0(v *Value) bool { } func rewriteValueARM64_OpARM64TSTshiftLL_0(v *Value) bool { b := v.Block - _ = b // match: (TSTshiftLL (MOVDconst [c]) x [d]) // cond: // result: (TSTconst [c] (SLLconst x [d])) @@ -30530,7 +30425,6 @@ func rewriteValueARM64_OpARM64TSTshiftLL_0(v *Value) bool { } func rewriteValueARM64_OpARM64TSTshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (TSTshiftRA (MOVDconst [c]) x [d]) // cond: // result: (TSTconst [c] (SRAconst x [d])) @@ -30572,7 +30466,6 @@ func rewriteValueARM64_OpARM64TSTshiftRA_0(v *Value) bool { } func rewriteValueARM64_OpARM64TSTshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (TSTshiftRL (MOVDconst [c]) x [d]) // cond: // result: (TSTconst [c] (SRLconst x [d])) @@ -30834,9 +30727,7 @@ func rewriteValueARM64_OpARM64UDIVW_0(v *Value) bool { } func rewriteValueARM64_OpARM64UMOD_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (UMOD x y) // cond: // result: (MSUB x y (UDIV x y)) @@ -30915,9 +30806,7 @@ func rewriteValueARM64_OpARM64UMOD_0(v *Value) bool { } func rewriteValueARM64_OpARM64UMODW_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (UMODW x y) // cond: // result: (MSUBW x y (UDIVW x y)) @@ -31182,9 +31071,7 @@ func rewriteValueARM64_OpARM64XOR_0(v *Value) bool { } func rewriteValueARM64_OpARM64XOR_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (XOR x1:(SRAconst [c] y) x0) // cond: clobberIfDead(x1) // result: (XORshiftRA x0 y [c]) @@ -32180,9 +32067,7 @@ func rewriteValueARM64_OpARM64XORconst_0(v *Value) bool { } func rewriteValueARM64_OpARM64XORshiftLL_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (XORshiftLL (MOVDconst [c]) x [d]) // cond: // result: (XORconst [c] (SLLconst x [d])) @@ -32365,7 +32250,6 @@ func rewriteValueARM64_OpARM64XORshiftLL_0(v *Value) bool { } func rewriteValueARM64_OpARM64XORshiftRA_0(v *Value) bool { b := v.Block - _ = b // match: (XORshiftRA (MOVDconst [c]) x [d]) // cond: // result: (XORconst [c] (SRAconst x [d])) @@ -32429,7 +32313,6 @@ func rewriteValueARM64_OpARM64XORshiftRA_0(v *Value) bool { } func rewriteValueARM64_OpARM64XORshiftRL_0(v *Value) bool { b := v.Block - _ = b // match: (XORshiftRL (MOVDconst [c]) x [d]) // cond: // result: (XORconst [c] (SRLconst x [d])) @@ -32801,9 +32684,7 @@ func rewriteValueARM64_OpAtomicAdd64Variant_0(v *Value) bool { } func rewriteValueARM64_OpAtomicAnd8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (AtomicAnd8 ptr val mem) // cond: // result: (Select1 (LoweredAtomicAnd8 ptr val mem)) @@ -32933,9 +32814,7 @@ func rewriteValueARM64_OpAtomicLoadPtr_0(v *Value) bool { } func rewriteValueARM64_OpAtomicOr8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (AtomicOr8 ptr val mem) // cond: // result: (Select1 (LoweredAtomicOr8 ptr val mem)) @@ -33003,7 +32882,6 @@ func rewriteValueARM64_OpAtomicStorePtrNoWB_0(v *Value) bool { } func rewriteValueARM64_OpAvg64u_0(v *Value) bool { b := v.Block - _ = b // match: (Avg64u x y) // cond: // result: (ADD (SRLconst (SUB x y) [1]) y) @@ -33026,9 +32904,7 @@ func rewriteValueARM64_OpAvg64u_0(v *Value) bool { } func rewriteValueARM64_OpBitLen32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen32 x) // cond: // result: (SUB (MOVDconst [32]) (CLZW x)) @@ -33046,9 +32922,7 @@ func rewriteValueARM64_OpBitLen32_0(v *Value) bool { } func rewriteValueARM64_OpBitLen64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen64 x) // cond: // result: (SUB (MOVDconst [64]) (CLZ x)) @@ -33066,9 +32940,7 @@ func rewriteValueARM64_OpBitLen64_0(v *Value) bool { } func rewriteValueARM64_OpBitRev16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitRev16 x) // cond: // result: (SRLconst [48] (RBIT x)) @@ -33106,9 +32978,7 @@ func rewriteValueARM64_OpBitRev64_0(v *Value) bool { } func rewriteValueARM64_OpBitRev8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitRev8 x) // cond: // result: (SRLconst [56] (RBIT x)) @@ -33219,7 +33089,6 @@ func rewriteValueARM64_OpCom8_0(v *Value) bool { } func rewriteValueARM64_OpCondSelect_0(v *Value) bool { b := v.Block - _ = b // match: (CondSelect x y bool) // cond: flagArg(bool) != nil // result: (CSEL {bool.Op} x y flagArg(bool)) @@ -33350,9 +33219,7 @@ func rewriteValueARM64_OpConstNil_0(v *Value) bool { } func rewriteValueARM64_OpCtz16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz16 x) // cond: // result: (CLZW (RBITW (ORconst [0x10000] x))) @@ -33383,7 +33250,6 @@ func rewriteValueARM64_OpCtz16NonZero_0(v *Value) bool { } func rewriteValueARM64_OpCtz32_0(v *Value) bool { b := v.Block - _ = b // match: (Ctz32 x) // cond: // result: (CLZW (RBITW x)) @@ -33410,7 +33276,6 @@ func rewriteValueARM64_OpCtz32NonZero_0(v *Value) bool { } func rewriteValueARM64_OpCtz64_0(v *Value) bool { b := v.Block - _ = b // match: (Ctz64 x) // cond: // result: (CLZ (RBIT x)) @@ -33437,9 +33302,7 @@ func rewriteValueARM64_OpCtz64NonZero_0(v *Value) bool { } func rewriteValueARM64_OpCtz8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz8 x) // cond: // result: (CLZW (RBITW (ORconst [0x100] x))) @@ -33668,9 +33531,7 @@ func rewriteValueARM64_OpCvt64to64F_0(v *Value) bool { } func rewriteValueARM64_OpDiv16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16 x y) // cond: // result: (DIVW (SignExt16to32 x) (SignExt16to32 y)) @@ -33690,9 +33551,7 @@ func rewriteValueARM64_OpDiv16_0(v *Value) bool { } func rewriteValueARM64_OpDiv16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16u x y) // cond: // result: (UDIVW (ZeroExt16to32 x) (ZeroExt16to32 y)) @@ -33796,9 +33655,7 @@ func rewriteValueARM64_OpDiv64u_0(v *Value) bool { } func rewriteValueARM64_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 x y) // cond: // result: (DIVW (SignExt8to32 x) (SignExt8to32 y)) @@ -33818,9 +33675,7 @@ func rewriteValueARM64_OpDiv8_0(v *Value) bool { } func rewriteValueARM64_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u x y) // cond: // result: (UDIVW (ZeroExt8to32 x) (ZeroExt8to32 y)) @@ -33840,9 +33695,7 @@ func rewriteValueARM64_OpDiv8u_0(v *Value) bool { } func rewriteValueARM64_OpEq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq16 x y) // cond: // result: (Equal (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -33864,7 +33717,6 @@ func rewriteValueARM64_OpEq16_0(v *Value) bool { } func rewriteValueARM64_OpEq32_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32 x y) // cond: // result: (Equal (CMPW x y)) @@ -33882,7 +33734,6 @@ func rewriteValueARM64_OpEq32_0(v *Value) bool { } func rewriteValueARM64_OpEq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32F x y) // cond: // result: (Equal (FCMPS x y)) @@ -33900,7 +33751,6 @@ func rewriteValueARM64_OpEq32F_0(v *Value) bool { } func rewriteValueARM64_OpEq64_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64 x y) // cond: // result: (Equal (CMP x y)) @@ -33918,7 +33768,6 @@ func rewriteValueARM64_OpEq64_0(v *Value) bool { } func rewriteValueARM64_OpEq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64F x y) // cond: // result: (Equal (FCMPD x y)) @@ -33936,9 +33785,7 @@ func rewriteValueARM64_OpEq64F_0(v *Value) bool { } func rewriteValueARM64_OpEq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq8 x y) // cond: // result: (Equal (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -33960,9 +33807,7 @@ func rewriteValueARM64_OpEq8_0(v *Value) bool { } func rewriteValueARM64_OpEqB_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqB x y) // cond: // result: (XOR (MOVDconst [1]) (XOR x y)) @@ -33983,7 +33828,6 @@ func rewriteValueARM64_OpEqB_0(v *Value) bool { } func rewriteValueARM64_OpEqPtr_0(v *Value) bool { b := v.Block - _ = b // match: (EqPtr x y) // cond: // result: (Equal (CMP x y)) @@ -34012,9 +33856,7 @@ func rewriteValueARM64_OpFloor_0(v *Value) bool { } func rewriteValueARM64_OpGeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16 x y) // cond: // result: (GreaterEqual (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -34036,9 +33878,7 @@ func rewriteValueARM64_OpGeq16_0(v *Value) bool { } func rewriteValueARM64_OpGeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16U x y) // cond: // result: (GreaterEqualU (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -34060,7 +33900,6 @@ func rewriteValueARM64_OpGeq16U_0(v *Value) bool { } func rewriteValueARM64_OpGeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32 x y) // cond: // result: (GreaterEqual (CMPW x y)) @@ -34078,7 +33917,6 @@ func rewriteValueARM64_OpGeq32_0(v *Value) bool { } func rewriteValueARM64_OpGeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32F x y) // cond: // result: (GreaterEqualF (FCMPS x y)) @@ -34096,7 +33934,6 @@ func rewriteValueARM64_OpGeq32F_0(v *Value) bool { } func rewriteValueARM64_OpGeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32U x y) // cond: // result: (GreaterEqualU (CMPW x y)) @@ -34114,7 +33951,6 @@ func rewriteValueARM64_OpGeq32U_0(v *Value) bool { } func rewriteValueARM64_OpGeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64 x y) // cond: // result: (GreaterEqual (CMP x y)) @@ -34132,7 +33968,6 @@ func rewriteValueARM64_OpGeq64_0(v *Value) bool { } func rewriteValueARM64_OpGeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64F x y) // cond: // result: (GreaterEqualF (FCMPD x y)) @@ -34150,7 +33985,6 @@ func rewriteValueARM64_OpGeq64F_0(v *Value) bool { } func rewriteValueARM64_OpGeq64U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64U x y) // cond: // result: (GreaterEqualU (CMP x y)) @@ -34168,9 +34002,7 @@ func rewriteValueARM64_OpGeq64U_0(v *Value) bool { } func rewriteValueARM64_OpGeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8 x y) // cond: // result: (GreaterEqual (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -34192,9 +34024,7 @@ func rewriteValueARM64_OpGeq8_0(v *Value) bool { } func rewriteValueARM64_OpGeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8U x y) // cond: // result: (GreaterEqualU (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -34243,9 +34073,7 @@ func rewriteValueARM64_OpGetClosurePtr_0(v *Value) bool { } func rewriteValueARM64_OpGreater16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16 x y) // cond: // result: (GreaterThan (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -34267,9 +34095,7 @@ func rewriteValueARM64_OpGreater16_0(v *Value) bool { } func rewriteValueARM64_OpGreater16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16U x y) // cond: // result: (GreaterThanU (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -34291,7 +34117,6 @@ func rewriteValueARM64_OpGreater16U_0(v *Value) bool { } func rewriteValueARM64_OpGreater32_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32 x y) // cond: // result: (GreaterThan (CMPW x y)) @@ -34309,7 +34134,6 @@ func rewriteValueARM64_OpGreater32_0(v *Value) bool { } func rewriteValueARM64_OpGreater32F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32F x y) // cond: // result: (GreaterThanF (FCMPS x y)) @@ -34327,7 +34151,6 @@ func rewriteValueARM64_OpGreater32F_0(v *Value) bool { } func rewriteValueARM64_OpGreater32U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32U x y) // cond: // result: (GreaterThanU (CMPW x y)) @@ -34345,7 +34168,6 @@ func rewriteValueARM64_OpGreater32U_0(v *Value) bool { } func rewriteValueARM64_OpGreater64_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64 x y) // cond: // result: (GreaterThan (CMP x y)) @@ -34363,7 +34185,6 @@ func rewriteValueARM64_OpGreater64_0(v *Value) bool { } func rewriteValueARM64_OpGreater64F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64F x y) // cond: // result: (GreaterThanF (FCMPD x y)) @@ -34381,7 +34202,6 @@ func rewriteValueARM64_OpGreater64F_0(v *Value) bool { } func rewriteValueARM64_OpGreater64U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64U x y) // cond: // result: (GreaterThanU (CMP x y)) @@ -34399,9 +34219,7 @@ func rewriteValueARM64_OpGreater64U_0(v *Value) bool { } func rewriteValueARM64_OpGreater8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8 x y) // cond: // result: (GreaterThan (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -34423,9 +34241,7 @@ func rewriteValueARM64_OpGreater8_0(v *Value) bool { } func rewriteValueARM64_OpGreater8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8U x y) // cond: // result: (GreaterThanU (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -34447,9 +34263,7 @@ func rewriteValueARM64_OpGreater8U_0(v *Value) bool { } func rewriteValueARM64_OpHmul32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul32 x y) // cond: // result: (SRAconst (MULL x y) [32]) @@ -34468,9 +34282,7 @@ func rewriteValueARM64_OpHmul32_0(v *Value) bool { } func rewriteValueARM64_OpHmul32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul32u x y) // cond: // result: (SRAconst (UMULL x y) [32]) @@ -34533,7 +34345,6 @@ func rewriteValueARM64_OpInterCall_0(v *Value) bool { } func rewriteValueARM64_OpIsInBounds_0(v *Value) bool { b := v.Block - _ = b // match: (IsInBounds idx len) // cond: // result: (LessThanU (CMP idx len)) @@ -34551,7 +34362,6 @@ func rewriteValueARM64_OpIsInBounds_0(v *Value) bool { } func rewriteValueARM64_OpIsNonNil_0(v *Value) bool { b := v.Block - _ = b // match: (IsNonNil ptr) // cond: // result: (NotEqual (CMPconst [0] ptr)) @@ -34567,7 +34377,6 @@ func rewriteValueARM64_OpIsNonNil_0(v *Value) bool { } func rewriteValueARM64_OpIsSliceInBounds_0(v *Value) bool { b := v.Block - _ = b // match: (IsSliceInBounds idx len) // cond: // result: (LessEqualU (CMP idx len)) @@ -34585,9 +34394,7 @@ func rewriteValueARM64_OpIsSliceInBounds_0(v *Value) bool { } func rewriteValueARM64_OpLeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16 x y) // cond: // result: (LessEqual (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -34609,9 +34416,7 @@ func rewriteValueARM64_OpLeq16_0(v *Value) bool { } func rewriteValueARM64_OpLeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16U x y) // cond: // result: (LessEqualU (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -34633,7 +34438,6 @@ func rewriteValueARM64_OpLeq16U_0(v *Value) bool { } func rewriteValueARM64_OpLeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32 x y) // cond: // result: (LessEqual (CMPW x y)) @@ -34651,7 +34455,6 @@ func rewriteValueARM64_OpLeq32_0(v *Value) bool { } func rewriteValueARM64_OpLeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32F x y) // cond: // result: (LessEqualF (FCMPS x y)) @@ -34669,7 +34472,6 @@ func rewriteValueARM64_OpLeq32F_0(v *Value) bool { } func rewriteValueARM64_OpLeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32U x y) // cond: // result: (LessEqualU (CMPW x y)) @@ -34687,7 +34489,6 @@ func rewriteValueARM64_OpLeq32U_0(v *Value) bool { } func rewriteValueARM64_OpLeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64 x y) // cond: // result: (LessEqual (CMP x y)) @@ -34705,7 +34506,6 @@ func rewriteValueARM64_OpLeq64_0(v *Value) bool { } func rewriteValueARM64_OpLeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64F x y) // cond: // result: (LessEqualF (FCMPD x y)) @@ -34723,7 +34523,6 @@ func rewriteValueARM64_OpLeq64F_0(v *Value) bool { } func rewriteValueARM64_OpLeq64U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64U x y) // cond: // result: (LessEqualU (CMP x y)) @@ -34741,9 +34540,7 @@ func rewriteValueARM64_OpLeq64U_0(v *Value) bool { } func rewriteValueARM64_OpLeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8 x y) // cond: // result: (LessEqual (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -34765,9 +34562,7 @@ func rewriteValueARM64_OpLeq8_0(v *Value) bool { } func rewriteValueARM64_OpLeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8U x y) // cond: // result: (LessEqualU (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -34789,9 +34584,7 @@ func rewriteValueARM64_OpLeq8U_0(v *Value) bool { } func rewriteValueARM64_OpLess16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16 x y) // cond: // result: (LessThan (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -34813,9 +34606,7 @@ func rewriteValueARM64_OpLess16_0(v *Value) bool { } func rewriteValueARM64_OpLess16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16U x y) // cond: // result: (LessThanU (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -34837,7 +34628,6 @@ func rewriteValueARM64_OpLess16U_0(v *Value) bool { } func rewriteValueARM64_OpLess32_0(v *Value) bool { b := v.Block - _ = b // match: (Less32 x y) // cond: // result: (LessThan (CMPW x y)) @@ -34855,7 +34645,6 @@ func rewriteValueARM64_OpLess32_0(v *Value) bool { } func rewriteValueARM64_OpLess32F_0(v *Value) bool { b := v.Block - _ = b // match: (Less32F x y) // cond: // result: (LessThanF (FCMPS x y)) @@ -34873,7 +34662,6 @@ func rewriteValueARM64_OpLess32F_0(v *Value) bool { } func rewriteValueARM64_OpLess32U_0(v *Value) bool { b := v.Block - _ = b // match: (Less32U x y) // cond: // result: (LessThanU (CMPW x y)) @@ -34891,7 +34679,6 @@ func rewriteValueARM64_OpLess32U_0(v *Value) bool { } func rewriteValueARM64_OpLess64_0(v *Value) bool { b := v.Block - _ = b // match: (Less64 x y) // cond: // result: (LessThan (CMP x y)) @@ -34909,7 +34696,6 @@ func rewriteValueARM64_OpLess64_0(v *Value) bool { } func rewriteValueARM64_OpLess64F_0(v *Value) bool { b := v.Block - _ = b // match: (Less64F x y) // cond: // result: (LessThanF (FCMPD x y)) @@ -34927,7 +34713,6 @@ func rewriteValueARM64_OpLess64F_0(v *Value) bool { } func rewriteValueARM64_OpLess64U_0(v *Value) bool { b := v.Block - _ = b // match: (Less64U x y) // cond: // result: (LessThanU (CMP x y)) @@ -34945,9 +34730,7 @@ func rewriteValueARM64_OpLess64U_0(v *Value) bool { } func rewriteValueARM64_OpLess8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8 x y) // cond: // result: (LessThan (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -34969,9 +34752,7 @@ func rewriteValueARM64_OpLess8_0(v *Value) bool { } func rewriteValueARM64_OpLess8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8U x y) // cond: // result: (LessThanU (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -35170,9 +34951,7 @@ func rewriteValueARM64_OpLocalAddr_0(v *Value) bool { } func rewriteValueARM64_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x16 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt16to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt16to64 y))) @@ -35203,9 +34982,7 @@ func rewriteValueARM64_OpLsh16x16_0(v *Value) bool { } func rewriteValueARM64_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x32 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt32to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt32to64 y))) @@ -35236,7 +35013,6 @@ func rewriteValueARM64_OpLsh16x32_0(v *Value) bool { } func rewriteValueARM64_OpLsh16x64_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x64 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x y) (Const64 [0]) (CMPconst [64] y)) @@ -35263,9 +35039,7 @@ func rewriteValueARM64_OpLsh16x64_0(v *Value) bool { } func rewriteValueARM64_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x8 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt8to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt8to64 y))) @@ -35296,9 +35070,7 @@ func rewriteValueARM64_OpLsh16x8_0(v *Value) bool { } func rewriteValueARM64_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x16 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt16to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt16to64 y))) @@ -35329,9 +35101,7 @@ func rewriteValueARM64_OpLsh32x16_0(v *Value) bool { } func rewriteValueARM64_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x32 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt32to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt32to64 y))) @@ -35362,7 +35132,6 @@ func rewriteValueARM64_OpLsh32x32_0(v *Value) bool { } func rewriteValueARM64_OpLsh32x64_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x64 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x y) (Const64 [0]) (CMPconst [64] y)) @@ -35389,9 +35158,7 @@ func rewriteValueARM64_OpLsh32x64_0(v *Value) bool { } func rewriteValueARM64_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x8 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt8to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt8to64 y))) @@ -35422,9 +35189,7 @@ func rewriteValueARM64_OpLsh32x8_0(v *Value) bool { } func rewriteValueARM64_OpLsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x16 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt16to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt16to64 y))) @@ -35455,9 +35220,7 @@ func rewriteValueARM64_OpLsh64x16_0(v *Value) bool { } func rewriteValueARM64_OpLsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x32 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt32to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt32to64 y))) @@ -35488,7 +35251,6 @@ func rewriteValueARM64_OpLsh64x32_0(v *Value) bool { } func rewriteValueARM64_OpLsh64x64_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh64x64 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x y) (Const64 [0]) (CMPconst [64] y)) @@ -35515,9 +35277,7 @@ func rewriteValueARM64_OpLsh64x64_0(v *Value) bool { } func rewriteValueARM64_OpLsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x8 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt8to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt8to64 y))) @@ -35548,9 +35308,7 @@ func rewriteValueARM64_OpLsh64x8_0(v *Value) bool { } func rewriteValueARM64_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x16 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt16to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt16to64 y))) @@ -35581,9 +35339,7 @@ func rewriteValueARM64_OpLsh8x16_0(v *Value) bool { } func rewriteValueARM64_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x32 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt32to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt32to64 y))) @@ -35614,7 +35370,6 @@ func rewriteValueARM64_OpLsh8x32_0(v *Value) bool { } func rewriteValueARM64_OpLsh8x64_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x64 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x y) (Const64 [0]) (CMPconst [64] y)) @@ -35641,9 +35396,7 @@ func rewriteValueARM64_OpLsh8x64_0(v *Value) bool { } func rewriteValueARM64_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x8 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SLL x (ZeroExt8to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt8to64 y))) @@ -35674,9 +35427,7 @@ func rewriteValueARM64_OpLsh8x8_0(v *Value) bool { } func rewriteValueARM64_OpMod16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16 x y) // cond: // result: (MODW (SignExt16to32 x) (SignExt16to32 y)) @@ -35696,9 +35447,7 @@ func rewriteValueARM64_OpMod16_0(v *Value) bool { } func rewriteValueARM64_OpMod16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16u x y) // cond: // result: (UMODW (ZeroExt16to32 x) (ZeroExt16to32 y)) @@ -35774,9 +35523,7 @@ func rewriteValueARM64_OpMod64u_0(v *Value) bool { } func rewriteValueARM64_OpMod8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8 x y) // cond: // result: (MODW (SignExt8to32 x) (SignExt8to32 y)) @@ -35796,9 +35543,7 @@ func rewriteValueARM64_OpMod8_0(v *Value) bool { } func rewriteValueARM64_OpMod8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8u x y) // cond: // result: (UMODW (ZeroExt8to32 x) (ZeroExt8to32 y)) @@ -35818,9 +35563,7 @@ func rewriteValueARM64_OpMod8u_0(v *Value) bool { } func rewriteValueARM64_OpMove_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Move [0] _ _ mem) // cond: // result: mem @@ -36073,11 +35816,8 @@ func rewriteValueARM64_OpMove_0(v *Value) bool { } func rewriteValueARM64_OpMove_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Move [16] dst src mem) // cond: // result: (MOVDstore [8] dst (MOVDload [8] src mem) (MOVDstore dst (MOVDload src mem) mem)) @@ -36412,9 +36152,7 @@ func rewriteValueARM64_OpNeg8_0(v *Value) bool { } func rewriteValueARM64_OpNeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq16 x y) // cond: // result: (NotEqual (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -36436,7 +36174,6 @@ func rewriteValueARM64_OpNeq16_0(v *Value) bool { } func rewriteValueARM64_OpNeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32 x y) // cond: // result: (NotEqual (CMPW x y)) @@ -36454,7 +36191,6 @@ func rewriteValueARM64_OpNeq32_0(v *Value) bool { } func rewriteValueARM64_OpNeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32F x y) // cond: // result: (NotEqual (FCMPS x y)) @@ -36472,7 +36208,6 @@ func rewriteValueARM64_OpNeq32F_0(v *Value) bool { } func rewriteValueARM64_OpNeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64 x y) // cond: // result: (NotEqual (CMP x y)) @@ -36490,7 +36225,6 @@ func rewriteValueARM64_OpNeq64_0(v *Value) bool { } func rewriteValueARM64_OpNeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64F x y) // cond: // result: (NotEqual (FCMPD x y)) @@ -36508,9 +36242,7 @@ func rewriteValueARM64_OpNeq64F_0(v *Value) bool { } func rewriteValueARM64_OpNeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq8 x y) // cond: // result: (NotEqual (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -36546,7 +36278,6 @@ func rewriteValueARM64_OpNeqB_0(v *Value) bool { } func rewriteValueARM64_OpNeqPtr_0(v *Value) bool { b := v.Block - _ = b // match: (NeqPtr x y) // cond: // result: (NotEqual (CMP x y)) @@ -36578,9 +36309,7 @@ func rewriteValueARM64_OpNilCheck_0(v *Value) bool { } func rewriteValueARM64_OpNot_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Not x) // cond: // result: (XOR (MOVDconst [1]) x) @@ -36693,9 +36422,7 @@ func rewriteValueARM64_OpOrB_0(v *Value) bool { } func rewriteValueARM64_OpPopCount16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount16 x) // cond: // result: (FMOVDfpgp (VUADDLV (VCNT (FMOVDgpfp (ZeroExt16to64 x))))) @@ -36718,9 +36445,7 @@ func rewriteValueARM64_OpPopCount16_0(v *Value) bool { } func rewriteValueARM64_OpPopCount32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount32 x) // cond: // result: (FMOVDfpgp (VUADDLV (VCNT (FMOVDgpfp (ZeroExt32to64 x))))) @@ -36743,9 +36468,7 @@ func rewriteValueARM64_OpPopCount32_0(v *Value) bool { } func rewriteValueARM64_OpPopCount64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount64 x) // cond: // result: (FMOVDfpgp (VUADDLV (VCNT (FMOVDgpfp x)))) @@ -36766,7 +36489,6 @@ func rewriteValueARM64_OpPopCount64_0(v *Value) bool { } func rewriteValueARM64_OpRotateLeft32_0(v *Value) bool { b := v.Block - _ = b // match: (RotateLeft32 x y) // cond: // result: (RORW x (NEG y)) @@ -36784,7 +36506,6 @@ func rewriteValueARM64_OpRotateLeft32_0(v *Value) bool { } func rewriteValueARM64_OpRotateLeft64_0(v *Value) bool { b := v.Block - _ = b // match: (RotateLeft64 x y) // cond: // result: (ROR x (NEG y)) @@ -36846,9 +36567,7 @@ func rewriteValueARM64_OpRoundToEven_0(v *Value) bool { } func rewriteValueARM64_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux16 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt16to64 x) (ZeroExt16to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt16to64 y))) @@ -36881,9 +36600,7 @@ func rewriteValueARM64_OpRsh16Ux16_0(v *Value) bool { } func rewriteValueARM64_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux32 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt16to64 x) (ZeroExt32to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt32to64 y))) @@ -36916,9 +36633,7 @@ func rewriteValueARM64_OpRsh16Ux32_0(v *Value) bool { } func rewriteValueARM64_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux64 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt16to64 x) y) (Const64 [0]) (CMPconst [64] y)) @@ -36947,9 +36662,7 @@ func rewriteValueARM64_OpRsh16Ux64_0(v *Value) bool { } func rewriteValueARM64_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux8 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt16to64 x) (ZeroExt8to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt8to64 y))) @@ -36982,9 +36695,7 @@ func rewriteValueARM64_OpRsh16Ux8_0(v *Value) bool { } func rewriteValueARM64_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x16 x y) // cond: // result: (SRA (SignExt16to64 x) (CSEL {OpARM64LessThanU} (ZeroExt16to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt16to64 y)))) @@ -37016,9 +36727,7 @@ func rewriteValueARM64_OpRsh16x16_0(v *Value) bool { } func rewriteValueARM64_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x32 x y) // cond: // result: (SRA (SignExt16to64 x) (CSEL {OpARM64LessThanU} (ZeroExt32to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt32to64 y)))) @@ -37050,9 +36759,7 @@ func rewriteValueARM64_OpRsh16x32_0(v *Value) bool { } func rewriteValueARM64_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x64 x y) // cond: // result: (SRA (SignExt16to64 x) (CSEL {OpARM64LessThanU} y (Const64 [63]) (CMPconst [64] y))) @@ -37080,9 +36787,7 @@ func rewriteValueARM64_OpRsh16x64_0(v *Value) bool { } func rewriteValueARM64_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x8 x y) // cond: // result: (SRA (SignExt16to64 x) (CSEL {OpARM64LessThanU} (ZeroExt8to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt8to64 y)))) @@ -37114,9 +36819,7 @@ func rewriteValueARM64_OpRsh16x8_0(v *Value) bool { } func rewriteValueARM64_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux16 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt32to64 x) (ZeroExt16to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt16to64 y))) @@ -37149,9 +36852,7 @@ func rewriteValueARM64_OpRsh32Ux16_0(v *Value) bool { } func rewriteValueARM64_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux32 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt32to64 x) (ZeroExt32to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt32to64 y))) @@ -37184,9 +36885,7 @@ func rewriteValueARM64_OpRsh32Ux32_0(v *Value) bool { } func rewriteValueARM64_OpRsh32Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux64 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt32to64 x) y) (Const64 [0]) (CMPconst [64] y)) @@ -37215,9 +36914,7 @@ func rewriteValueARM64_OpRsh32Ux64_0(v *Value) bool { } func rewriteValueARM64_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux8 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt32to64 x) (ZeroExt8to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt8to64 y))) @@ -37250,9 +36947,7 @@ func rewriteValueARM64_OpRsh32Ux8_0(v *Value) bool { } func rewriteValueARM64_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x16 x y) // cond: // result: (SRA (SignExt32to64 x) (CSEL {OpARM64LessThanU} (ZeroExt16to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt16to64 y)))) @@ -37284,9 +36979,7 @@ func rewriteValueARM64_OpRsh32x16_0(v *Value) bool { } func rewriteValueARM64_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x32 x y) // cond: // result: (SRA (SignExt32to64 x) (CSEL {OpARM64LessThanU} (ZeroExt32to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt32to64 y)))) @@ -37318,9 +37011,7 @@ func rewriteValueARM64_OpRsh32x32_0(v *Value) bool { } func rewriteValueARM64_OpRsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x64 x y) // cond: // result: (SRA (SignExt32to64 x) (CSEL {OpARM64LessThanU} y (Const64 [63]) (CMPconst [64] y))) @@ -37348,9 +37039,7 @@ func rewriteValueARM64_OpRsh32x64_0(v *Value) bool { } func rewriteValueARM64_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x8 x y) // cond: // result: (SRA (SignExt32to64 x) (CSEL {OpARM64LessThanU} (ZeroExt8to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt8to64 y)))) @@ -37382,9 +37071,7 @@ func rewriteValueARM64_OpRsh32x8_0(v *Value) bool { } func rewriteValueARM64_OpRsh64Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux16 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL x (ZeroExt16to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt16to64 y))) @@ -37415,9 +37102,7 @@ func rewriteValueARM64_OpRsh64Ux16_0(v *Value) bool { } func rewriteValueARM64_OpRsh64Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux32 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL x (ZeroExt32to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt32to64 y))) @@ -37448,7 +37133,6 @@ func rewriteValueARM64_OpRsh64Ux32_0(v *Value) bool { } func rewriteValueARM64_OpRsh64Ux64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64Ux64 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL x y) (Const64 [0]) (CMPconst [64] y)) @@ -37475,9 +37159,7 @@ func rewriteValueARM64_OpRsh64Ux64_0(v *Value) bool { } func rewriteValueARM64_OpRsh64Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux8 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL x (ZeroExt8to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt8to64 y))) @@ -37508,9 +37190,7 @@ func rewriteValueARM64_OpRsh64Ux8_0(v *Value) bool { } func rewriteValueARM64_OpRsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x16 x y) // cond: // result: (SRA x (CSEL {OpARM64LessThanU} (ZeroExt16to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt16to64 y)))) @@ -37540,9 +37220,7 @@ func rewriteValueARM64_OpRsh64x16_0(v *Value) bool { } func rewriteValueARM64_OpRsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x32 x y) // cond: // result: (SRA x (CSEL {OpARM64LessThanU} (ZeroExt32to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt32to64 y)))) @@ -37572,7 +37250,6 @@ func rewriteValueARM64_OpRsh64x32_0(v *Value) bool { } func rewriteValueARM64_OpRsh64x64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x64 x y) // cond: // result: (SRA x (CSEL {OpARM64LessThanU} y (Const64 [63]) (CMPconst [64] y))) @@ -37598,9 +37275,7 @@ func rewriteValueARM64_OpRsh64x64_0(v *Value) bool { } func rewriteValueARM64_OpRsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x8 x y) // cond: // result: (SRA x (CSEL {OpARM64LessThanU} (ZeroExt8to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt8to64 y)))) @@ -37630,9 +37305,7 @@ func rewriteValueARM64_OpRsh64x8_0(v *Value) bool { } func rewriteValueARM64_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux16 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt8to64 x) (ZeroExt16to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt16to64 y))) @@ -37665,9 +37338,7 @@ func rewriteValueARM64_OpRsh8Ux16_0(v *Value) bool { } func rewriteValueARM64_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux32 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt8to64 x) (ZeroExt32to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt32to64 y))) @@ -37700,9 +37371,7 @@ func rewriteValueARM64_OpRsh8Ux32_0(v *Value) bool { } func rewriteValueARM64_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux64 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt8to64 x) y) (Const64 [0]) (CMPconst [64] y)) @@ -37731,9 +37400,7 @@ func rewriteValueARM64_OpRsh8Ux64_0(v *Value) bool { } func rewriteValueARM64_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux8 x y) // cond: // result: (CSEL {OpARM64LessThanU} (SRL (ZeroExt8to64 x) (ZeroExt8to64 y)) (Const64 [0]) (CMPconst [64] (ZeroExt8to64 y))) @@ -37766,9 +37433,7 @@ func rewriteValueARM64_OpRsh8Ux8_0(v *Value) bool { } func rewriteValueARM64_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x16 x y) // cond: // result: (SRA (SignExt8to64 x) (CSEL {OpARM64LessThanU} (ZeroExt16to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt16to64 y)))) @@ -37800,9 +37465,7 @@ func rewriteValueARM64_OpRsh8x16_0(v *Value) bool { } func rewriteValueARM64_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x32 x y) // cond: // result: (SRA (SignExt8to64 x) (CSEL {OpARM64LessThanU} (ZeroExt32to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt32to64 y)))) @@ -37834,9 +37497,7 @@ func rewriteValueARM64_OpRsh8x32_0(v *Value) bool { } func rewriteValueARM64_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x64 x y) // cond: // result: (SRA (SignExt8to64 x) (CSEL {OpARM64LessThanU} y (Const64 [63]) (CMPconst [64] y))) @@ -37864,9 +37525,7 @@ func rewriteValueARM64_OpRsh8x64_0(v *Value) bool { } func rewriteValueARM64_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x8 x y) // cond: // result: (SRA (SignExt8to64 x) (CSEL {OpARM64LessThanU} (ZeroExt8to64 y) (Const64 [63]) (CMPconst [64] (ZeroExt8to64 y)))) @@ -37964,7 +37623,6 @@ func rewriteValueARM64_OpSignExt8to64_0(v *Value) bool { } func rewriteValueARM64_OpSlicemask_0(v *Value) bool { b := v.Block - _ = b // match: (Slicemask x) // cond: // result: (SRAconst (NEG x) [63]) @@ -38373,9 +38031,7 @@ func rewriteValueARM64_OpXor8_0(v *Value) bool { } func rewriteValueARM64_OpZero_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Zero [0] _ mem) // cond: // result: mem @@ -38598,9 +38254,7 @@ func rewriteValueARM64_OpZero_0(v *Value) bool { } func rewriteValueARM64_OpZero_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Zero [10] ptr mem) // cond: // result: (MOVHstore [8] ptr (MOVDconst [0]) (MOVDstore ptr (MOVDconst [0]) mem)) @@ -38938,9 +38592,7 @@ func rewriteValueARM64_OpZero_10(v *Value) bool { } func rewriteValueARM64_OpZero_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (Zero [s] ptr mem) // cond: s%16 != 0 && s%16 <= 8 && s > 16 // result: (Zero [8] (OffPtr ptr [s-8]) (Zero [s-s%16] ptr mem)) diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS.go b/src/cmd/compile/internal/ssa/rewriteMIPS.go index 55bef5a792..a2520df710 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS.go @@ -562,7 +562,6 @@ func rewriteValueMIPS_OpAdd32F_0(v *Value) bool { } func rewriteValueMIPS_OpAdd32withcarry_0(v *Value) bool { b := v.Block - _ = b // match: (Add32withcarry x y c) // cond: // result: (ADD c (ADD x y)) @@ -710,11 +709,8 @@ func rewriteValueMIPS_OpAtomicAdd32_0(v *Value) bool { } func rewriteValueMIPS_OpAtomicAnd8_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (AtomicAnd8 ptr val mem) // cond: !config.BigEndian // result: (LoweredAtomicAnd (AND (MOVWconst [^3]) ptr) (OR (SLL (ZeroExt8to32 val) (SLLconst [3] (ANDconst [3] ptr))) (NORconst [0] (SLL (MOVWconst [0xff]) (SLLconst [3] (ANDconst [3] ptr))))) mem) @@ -887,11 +883,8 @@ func rewriteValueMIPS_OpAtomicLoadPtr_0(v *Value) bool { } func rewriteValueMIPS_OpAtomicOr8_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (AtomicOr8 ptr val mem) // cond: !config.BigEndian // result: (LoweredAtomicOr (AND (MOVWconst [^3]) ptr) (SLL (ZeroExt8to32 val) (SLLconst [3] (ANDconst [3] ptr))) mem) @@ -997,7 +990,6 @@ func rewriteValueMIPS_OpAtomicStorePtrNoWB_0(v *Value) bool { } func rewriteValueMIPS_OpAvg32u_0(v *Value) bool { b := v.Block - _ = b // match: (Avg32u x y) // cond: // result: (ADD (SRLconst (SUB x y) [1]) y) @@ -1020,9 +1012,7 @@ func rewriteValueMIPS_OpAvg32u_0(v *Value) bool { } func rewriteValueMIPS_OpBitLen32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen32 x) // cond: // result: (SUB (MOVWconst [32]) (CLZ x)) @@ -1171,9 +1161,7 @@ func rewriteValueMIPS_OpConstNil_0(v *Value) bool { } func rewriteValueMIPS_OpCtz32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz32 x) // cond: // result: (SUB (MOVWconst [32]) (CLZ (SUBconst [1] (AND x (NEG x))))) @@ -1277,9 +1265,7 @@ func rewriteValueMIPS_OpCvt64Fto32F_0(v *Value) bool { } func rewriteValueMIPS_OpDiv16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16 x y) // cond: // result: (Select1 (DIV (SignExt16to32 x) (SignExt16to32 y))) @@ -1301,9 +1287,7 @@ func rewriteValueMIPS_OpDiv16_0(v *Value) bool { } func rewriteValueMIPS_OpDiv16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16u x y) // cond: // result: (Select1 (DIVU (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -1325,9 +1309,7 @@ func rewriteValueMIPS_OpDiv16u_0(v *Value) bool { } func rewriteValueMIPS_OpDiv32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32 x y) // cond: // result: (Select1 (DIV x y)) @@ -1359,9 +1341,7 @@ func rewriteValueMIPS_OpDiv32F_0(v *Value) bool { } func rewriteValueMIPS_OpDiv32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32u x y) // cond: // result: (Select1 (DIVU x y)) @@ -1393,9 +1373,7 @@ func rewriteValueMIPS_OpDiv64F_0(v *Value) bool { } func rewriteValueMIPS_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 x y) // cond: // result: (Select1 (DIV (SignExt8to32 x) (SignExt8to32 y))) @@ -1417,9 +1395,7 @@ func rewriteValueMIPS_OpDiv8_0(v *Value) bool { } func rewriteValueMIPS_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u x y) // cond: // result: (Select1 (DIVU (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -1441,9 +1417,7 @@ func rewriteValueMIPS_OpDiv8u_0(v *Value) bool { } func rewriteValueMIPS_OpEq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq16 x y) // cond: // result: (SGTUconst [1] (XOR (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -1466,9 +1440,7 @@ func rewriteValueMIPS_OpEq16_0(v *Value) bool { } func rewriteValueMIPS_OpEq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq32 x y) // cond: // result: (SGTUconst [1] (XOR x y)) @@ -1487,7 +1459,6 @@ func rewriteValueMIPS_OpEq32_0(v *Value) bool { } func rewriteValueMIPS_OpEq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32F x y) // cond: // result: (FPFlagTrue (CMPEQF x y)) @@ -1505,7 +1476,6 @@ func rewriteValueMIPS_OpEq32F_0(v *Value) bool { } func rewriteValueMIPS_OpEq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64F x y) // cond: // result: (FPFlagTrue (CMPEQD x y)) @@ -1523,9 +1493,7 @@ func rewriteValueMIPS_OpEq64F_0(v *Value) bool { } func rewriteValueMIPS_OpEq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq8 x y) // cond: // result: (SGTUconst [1] (XOR (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -1548,9 +1516,7 @@ func rewriteValueMIPS_OpEq8_0(v *Value) bool { } func rewriteValueMIPS_OpEqB_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqB x y) // cond: // result: (XORconst [1] (XOR x y)) @@ -1569,9 +1535,7 @@ func rewriteValueMIPS_OpEqB_0(v *Value) bool { } func rewriteValueMIPS_OpEqPtr_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqPtr x y) // cond: // result: (SGTUconst [1] (XOR x y)) @@ -1590,9 +1554,7 @@ func rewriteValueMIPS_OpEqPtr_0(v *Value) bool { } func rewriteValueMIPS_OpGeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16 x y) // cond: // result: (XORconst [1] (SGT (SignExt16to32 y) (SignExt16to32 x))) @@ -1615,9 +1577,7 @@ func rewriteValueMIPS_OpGeq16_0(v *Value) bool { } func rewriteValueMIPS_OpGeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16U x y) // cond: // result: (XORconst [1] (SGTU (ZeroExt16to32 y) (ZeroExt16to32 x))) @@ -1640,9 +1600,7 @@ func rewriteValueMIPS_OpGeq16U_0(v *Value) bool { } func rewriteValueMIPS_OpGeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32 x y) // cond: // result: (XORconst [1] (SGT y x)) @@ -1661,7 +1619,6 @@ func rewriteValueMIPS_OpGeq32_0(v *Value) bool { } func rewriteValueMIPS_OpGeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32F x y) // cond: // result: (FPFlagTrue (CMPGEF x y)) @@ -1679,9 +1636,7 @@ func rewriteValueMIPS_OpGeq32F_0(v *Value) bool { } func rewriteValueMIPS_OpGeq32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32U x y) // cond: // result: (XORconst [1] (SGTU y x)) @@ -1700,7 +1655,6 @@ func rewriteValueMIPS_OpGeq32U_0(v *Value) bool { } func rewriteValueMIPS_OpGeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64F x y) // cond: // result: (FPFlagTrue (CMPGED x y)) @@ -1718,9 +1672,7 @@ func rewriteValueMIPS_OpGeq64F_0(v *Value) bool { } func rewriteValueMIPS_OpGeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8 x y) // cond: // result: (XORconst [1] (SGT (SignExt8to32 y) (SignExt8to32 x))) @@ -1743,9 +1695,7 @@ func rewriteValueMIPS_OpGeq8_0(v *Value) bool { } func rewriteValueMIPS_OpGeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8U x y) // cond: // result: (XORconst [1] (SGTU (ZeroExt8to32 y) (ZeroExt8to32 x))) @@ -1795,9 +1745,7 @@ func rewriteValueMIPS_OpGetClosurePtr_0(v *Value) bool { } func rewriteValueMIPS_OpGreater16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16 x y) // cond: // result: (SGT (SignExt16to32 x) (SignExt16to32 y)) @@ -1817,9 +1765,7 @@ func rewriteValueMIPS_OpGreater16_0(v *Value) bool { } func rewriteValueMIPS_OpGreater16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16U x y) // cond: // result: (SGTU (ZeroExt16to32 x) (ZeroExt16to32 y)) @@ -1853,7 +1799,6 @@ func rewriteValueMIPS_OpGreater32_0(v *Value) bool { } func rewriteValueMIPS_OpGreater32F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32F x y) // cond: // result: (FPFlagTrue (CMPGTF x y)) @@ -1885,7 +1830,6 @@ func rewriteValueMIPS_OpGreater32U_0(v *Value) bool { } func rewriteValueMIPS_OpGreater64F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64F x y) // cond: // result: (FPFlagTrue (CMPGTD x y)) @@ -1903,9 +1847,7 @@ func rewriteValueMIPS_OpGreater64F_0(v *Value) bool { } func rewriteValueMIPS_OpGreater8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8 x y) // cond: // result: (SGT (SignExt8to32 x) (SignExt8to32 y)) @@ -1925,9 +1867,7 @@ func rewriteValueMIPS_OpGreater8_0(v *Value) bool { } func rewriteValueMIPS_OpGreater8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8U x y) // cond: // result: (SGTU (ZeroExt8to32 x) (ZeroExt8to32 y)) @@ -1947,9 +1887,7 @@ func rewriteValueMIPS_OpGreater8U_0(v *Value) bool { } func rewriteValueMIPS_OpHmul32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul32 x y) // cond: // result: (Select0 (MULT x y)) @@ -1967,9 +1905,7 @@ func rewriteValueMIPS_OpHmul32_0(v *Value) bool { } func rewriteValueMIPS_OpHmul32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul32u x y) // cond: // result: (Select0 (MULTU x y)) @@ -2017,9 +1953,7 @@ func rewriteValueMIPS_OpIsInBounds_0(v *Value) bool { } func rewriteValueMIPS_OpIsNonNil_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (IsNonNil ptr) // cond: // result: (SGTU ptr (MOVWconst [0])) @@ -2035,9 +1969,7 @@ func rewriteValueMIPS_OpIsNonNil_0(v *Value) bool { } func rewriteValueMIPS_OpIsSliceInBounds_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (IsSliceInBounds idx len) // cond: // result: (XORconst [1] (SGTU idx len)) @@ -2056,9 +1988,7 @@ func rewriteValueMIPS_OpIsSliceInBounds_0(v *Value) bool { } func rewriteValueMIPS_OpLeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16 x y) // cond: // result: (XORconst [1] (SGT (SignExt16to32 x) (SignExt16to32 y))) @@ -2081,9 +2011,7 @@ func rewriteValueMIPS_OpLeq16_0(v *Value) bool { } func rewriteValueMIPS_OpLeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16U x y) // cond: // result: (XORconst [1] (SGTU (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -2106,9 +2034,7 @@ func rewriteValueMIPS_OpLeq16U_0(v *Value) bool { } func rewriteValueMIPS_OpLeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32 x y) // cond: // result: (XORconst [1] (SGT x y)) @@ -2127,7 +2053,6 @@ func rewriteValueMIPS_OpLeq32_0(v *Value) bool { } func rewriteValueMIPS_OpLeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32F x y) // cond: // result: (FPFlagTrue (CMPGEF y x)) @@ -2145,9 +2070,7 @@ func rewriteValueMIPS_OpLeq32F_0(v *Value) bool { } func rewriteValueMIPS_OpLeq32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32U x y) // cond: // result: (XORconst [1] (SGTU x y)) @@ -2166,7 +2089,6 @@ func rewriteValueMIPS_OpLeq32U_0(v *Value) bool { } func rewriteValueMIPS_OpLeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64F x y) // cond: // result: (FPFlagTrue (CMPGED y x)) @@ -2184,9 +2106,7 @@ func rewriteValueMIPS_OpLeq64F_0(v *Value) bool { } func rewriteValueMIPS_OpLeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8 x y) // cond: // result: (XORconst [1] (SGT (SignExt8to32 x) (SignExt8to32 y))) @@ -2209,9 +2129,7 @@ func rewriteValueMIPS_OpLeq8_0(v *Value) bool { } func rewriteValueMIPS_OpLeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8U x y) // cond: // result: (XORconst [1] (SGTU (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -2234,9 +2152,7 @@ func rewriteValueMIPS_OpLeq8U_0(v *Value) bool { } func rewriteValueMIPS_OpLess16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16 x y) // cond: // result: (SGT (SignExt16to32 y) (SignExt16to32 x)) @@ -2256,9 +2172,7 @@ func rewriteValueMIPS_OpLess16_0(v *Value) bool { } func rewriteValueMIPS_OpLess16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16U x y) // cond: // result: (SGTU (ZeroExt16to32 y) (ZeroExt16to32 x)) @@ -2292,7 +2206,6 @@ func rewriteValueMIPS_OpLess32_0(v *Value) bool { } func rewriteValueMIPS_OpLess32F_0(v *Value) bool { b := v.Block - _ = b // match: (Less32F x y) // cond: // result: (FPFlagTrue (CMPGTF y x)) @@ -2324,7 +2237,6 @@ func rewriteValueMIPS_OpLess32U_0(v *Value) bool { } func rewriteValueMIPS_OpLess64F_0(v *Value) bool { b := v.Block - _ = b // match: (Less64F x y) // cond: // result: (FPFlagTrue (CMPGTD y x)) @@ -2342,9 +2254,7 @@ func rewriteValueMIPS_OpLess64F_0(v *Value) bool { } func rewriteValueMIPS_OpLess8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8 x y) // cond: // result: (SGT (SignExt8to32 y) (SignExt8to32 x)) @@ -2364,9 +2274,7 @@ func rewriteValueMIPS_OpLess8_0(v *Value) bool { } func rewriteValueMIPS_OpLess8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8U x y) // cond: // result: (SGTU (ZeroExt8to32 y) (ZeroExt8to32 x)) @@ -2531,9 +2439,7 @@ func rewriteValueMIPS_OpLocalAddr_0(v *Value) bool { } func rewriteValueMIPS_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x16 x y) // cond: // result: (CMOVZ (SLL x (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y))) @@ -2563,9 +2469,7 @@ func rewriteValueMIPS_OpLsh16x16_0(v *Value) bool { } func rewriteValueMIPS_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x32 x y) // cond: // result: (CMOVZ (SLL x y) (MOVWconst [0]) (SGTUconst [32] y)) @@ -2630,9 +2534,7 @@ func rewriteValueMIPS_OpLsh16x64_0(v *Value) bool { } func rewriteValueMIPS_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x8 x y) // cond: // result: (CMOVZ (SLL x (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y))) @@ -2662,9 +2564,7 @@ func rewriteValueMIPS_OpLsh16x8_0(v *Value) bool { } func rewriteValueMIPS_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x16 x y) // cond: // result: (CMOVZ (SLL x (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y))) @@ -2694,9 +2594,7 @@ func rewriteValueMIPS_OpLsh32x16_0(v *Value) bool { } func rewriteValueMIPS_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x32 x y) // cond: // result: (CMOVZ (SLL x y) (MOVWconst [0]) (SGTUconst [32] y)) @@ -2761,9 +2659,7 @@ func rewriteValueMIPS_OpLsh32x64_0(v *Value) bool { } func rewriteValueMIPS_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x8 x y) // cond: // result: (CMOVZ (SLL x (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y))) @@ -2793,9 +2689,7 @@ func rewriteValueMIPS_OpLsh32x8_0(v *Value) bool { } func rewriteValueMIPS_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x16 x y) // cond: // result: (CMOVZ (SLL x (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y))) @@ -2825,9 +2719,7 @@ func rewriteValueMIPS_OpLsh8x16_0(v *Value) bool { } func rewriteValueMIPS_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x32 x y) // cond: // result: (CMOVZ (SLL x y) (MOVWconst [0]) (SGTUconst [32] y)) @@ -2892,9 +2784,7 @@ func rewriteValueMIPS_OpLsh8x64_0(v *Value) bool { } func rewriteValueMIPS_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x8 x y) // cond: // result: (CMOVZ (SLL x (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y))) @@ -3071,7 +2961,6 @@ func rewriteValueMIPS_OpMIPSADDconst_0(v *Value) bool { } func rewriteValueMIPS_OpMIPSAND_0(v *Value) bool { b := v.Block - _ = b // match: (AND x (MOVWconst [c])) // cond: // result: (ANDconst [c] x) @@ -3236,14 +3125,12 @@ func rewriteValueMIPS_OpMIPSANDconst_0(v *Value) bool { return false } func rewriteValueMIPS_OpMIPSCMOVZ_0(v *Value) bool { - b := v.Block - _ = b - // match: (CMOVZ _ b (MOVWconst [0])) + // match: (CMOVZ _ f (MOVWconst [0])) // cond: - // result: b + // result: f for { _ = v.Args[2] - b := v.Args[1] + f := v.Args[1] v_2 := v.Args[2] if v_2.Op != OpMIPSMOVWconst { break @@ -3252,8 +3139,8 @@ func rewriteValueMIPS_OpMIPSCMOVZ_0(v *Value) bool { break } v.reset(OpCopy) - v.Type = b.Type - v.AddArg(b) + v.Type = f.Type + v.AddArg(f) return true } // match: (CMOVZ a _ (MOVWconst [c])) @@ -3458,7 +3345,6 @@ func rewriteValueMIPS_OpMIPSMOVBUload_0(v *Value) bool { } func rewriteValueMIPS_OpMIPSMOVBUreg_0(v *Value) bool { b := v.Block - _ = b // match: (MOVBUreg x:(MOVBUload _ _)) // cond: // result: (MOVWreg x) @@ -3619,7 +3505,6 @@ func rewriteValueMIPS_OpMIPSMOVBload_0(v *Value) bool { } func rewriteValueMIPS_OpMIPSMOVBreg_0(v *Value) bool { b := v.Block - _ = b // match: (MOVBreg x:(MOVBload _ _)) // cond: // result: (MOVWreg x) @@ -4290,7 +4175,6 @@ func rewriteValueMIPS_OpMIPSMOVHUload_0(v *Value) bool { } func rewriteValueMIPS_OpMIPSMOVHUreg_0(v *Value) bool { b := v.Block - _ = b // match: (MOVHUreg x:(MOVBUload _ _)) // cond: // result: (MOVWreg x) @@ -4476,7 +4360,6 @@ func rewriteValueMIPS_OpMIPSMOVHload_0(v *Value) bool { } func rewriteValueMIPS_OpMIPSMOVHreg_0(v *Value) bool { b := v.Block - _ = b // match: (MOVHreg x:(MOVBload _ _)) // cond: // result: (MOVWreg x) @@ -5318,7 +5201,6 @@ func rewriteValueMIPS_OpMIPSNORconst_0(v *Value) bool { } func rewriteValueMIPS_OpMIPSOR_0(v *Value) bool { b := v.Block - _ = b // match: (OR x (MOVWconst [c])) // cond: // result: (ORconst [c] x) @@ -6296,9 +6178,7 @@ func rewriteValueMIPS_OpMIPSXORconst_0(v *Value) bool { } func rewriteValueMIPS_OpMod16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16 x y) // cond: // result: (Select0 (DIV (SignExt16to32 x) (SignExt16to32 y))) @@ -6320,9 +6200,7 @@ func rewriteValueMIPS_OpMod16_0(v *Value) bool { } func rewriteValueMIPS_OpMod16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16u x y) // cond: // result: (Select0 (DIVU (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -6344,9 +6222,7 @@ func rewriteValueMIPS_OpMod16u_0(v *Value) bool { } func rewriteValueMIPS_OpMod32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32 x y) // cond: // result: (Select0 (DIV x y)) @@ -6364,9 +6240,7 @@ func rewriteValueMIPS_OpMod32_0(v *Value) bool { } func rewriteValueMIPS_OpMod32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32u x y) // cond: // result: (Select0 (DIVU x y)) @@ -6384,9 +6258,7 @@ func rewriteValueMIPS_OpMod32u_0(v *Value) bool { } func rewriteValueMIPS_OpMod8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8 x y) // cond: // result: (Select0 (DIV (SignExt8to32 x) (SignExt8to32 y))) @@ -6408,9 +6280,7 @@ func rewriteValueMIPS_OpMod8_0(v *Value) bool { } func rewriteValueMIPS_OpMod8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8u x y) // cond: // result: (Select0 (DIVU (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -6432,9 +6302,7 @@ func rewriteValueMIPS_OpMod8u_0(v *Value) bool { } func rewriteValueMIPS_OpMove_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Move [0] _ _ mem) // cond: // result: mem @@ -6752,11 +6620,8 @@ func rewriteValueMIPS_OpMove_0(v *Value) bool { } func rewriteValueMIPS_OpMove_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Move [6] {t} dst src mem) // cond: t.(*types.Type).Alignment()%2 == 0 // result: (MOVHstore [4] dst (MOVHload [4] src mem) (MOVHstore [2] dst (MOVHload [2] src mem) (MOVHstore dst (MOVHload src mem) mem))) @@ -7059,9 +6924,7 @@ func rewriteValueMIPS_OpNeg8_0(v *Value) bool { } func rewriteValueMIPS_OpNeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq16 x y) // cond: // result: (SGTU (XOR (ZeroExt16to32 x) (ZeroExt16to32 y)) (MOVWconst [0])) @@ -7086,9 +6949,7 @@ func rewriteValueMIPS_OpNeq16_0(v *Value) bool { } func rewriteValueMIPS_OpNeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq32 x y) // cond: // result: (SGTU (XOR x y) (MOVWconst [0])) @@ -7109,7 +6970,6 @@ func rewriteValueMIPS_OpNeq32_0(v *Value) bool { } func rewriteValueMIPS_OpNeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32F x y) // cond: // result: (FPFlagFalse (CMPEQF x y)) @@ -7127,7 +6987,6 @@ func rewriteValueMIPS_OpNeq32F_0(v *Value) bool { } func rewriteValueMIPS_OpNeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64F x y) // cond: // result: (FPFlagFalse (CMPEQD x y)) @@ -7145,9 +7004,7 @@ func rewriteValueMIPS_OpNeq64F_0(v *Value) bool { } func rewriteValueMIPS_OpNeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq8 x y) // cond: // result: (SGTU (XOR (ZeroExt8to32 x) (ZeroExt8to32 y)) (MOVWconst [0])) @@ -7186,9 +7043,7 @@ func rewriteValueMIPS_OpNeqB_0(v *Value) bool { } func rewriteValueMIPS_OpNeqPtr_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (NeqPtr x y) // cond: // result: (SGTU (XOR x y) (MOVWconst [0])) @@ -7342,9 +7197,7 @@ func rewriteValueMIPS_OpRound64F_0(v *Value) bool { } func rewriteValueMIPS_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux16 x y) // cond: // result: (CMOVZ (SRL (ZeroExt16to32 x) (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y))) @@ -7376,9 +7229,7 @@ func rewriteValueMIPS_OpRsh16Ux16_0(v *Value) bool { } func rewriteValueMIPS_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux32 x y) // cond: // result: (CMOVZ (SRL (ZeroExt16to32 x) y) (MOVWconst [0]) (SGTUconst [32] y)) @@ -7406,9 +7257,7 @@ func rewriteValueMIPS_OpRsh16Ux32_0(v *Value) bool { } func rewriteValueMIPS_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux64 x (Const64 [c])) // cond: uint32(c) < 16 // result: (SRLconst (SLLconst x [16]) [c+16]) @@ -7452,9 +7301,7 @@ func rewriteValueMIPS_OpRsh16Ux64_0(v *Value) bool { } func rewriteValueMIPS_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux8 x y) // cond: // result: (CMOVZ (SRL (ZeroExt16to32 x) (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y))) @@ -7486,9 +7333,7 @@ func rewriteValueMIPS_OpRsh16Ux8_0(v *Value) bool { } func rewriteValueMIPS_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x16 x y) // cond: // result: (SRA (SignExt16to32 x) ( CMOVZ (ZeroExt16to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt16to32 y)))) @@ -7519,9 +7364,7 @@ func rewriteValueMIPS_OpRsh16x16_0(v *Value) bool { } func rewriteValueMIPS_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x32 x y) // cond: // result: (SRA (SignExt16to32 x) ( CMOVZ y (MOVWconst [-1]) (SGTUconst [32] y))) @@ -7548,9 +7391,7 @@ func rewriteValueMIPS_OpRsh16x32_0(v *Value) bool { } func rewriteValueMIPS_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x64 x (Const64 [c])) // cond: uint32(c) < 16 // result: (SRAconst (SLLconst x [16]) [c+16]) @@ -7599,9 +7440,7 @@ func rewriteValueMIPS_OpRsh16x64_0(v *Value) bool { } func rewriteValueMIPS_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x8 x y) // cond: // result: (SRA (SignExt16to32 x) ( CMOVZ (ZeroExt8to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt8to32 y)))) @@ -7632,9 +7471,7 @@ func rewriteValueMIPS_OpRsh16x8_0(v *Value) bool { } func rewriteValueMIPS_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux16 x y) // cond: // result: (CMOVZ (SRL x (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y))) @@ -7664,9 +7501,7 @@ func rewriteValueMIPS_OpRsh32Ux16_0(v *Value) bool { } func rewriteValueMIPS_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux32 x y) // cond: // result: (CMOVZ (SRL x y) (MOVWconst [0]) (SGTUconst [32] y)) @@ -7731,9 +7566,7 @@ func rewriteValueMIPS_OpRsh32Ux64_0(v *Value) bool { } func rewriteValueMIPS_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux8 x y) // cond: // result: (CMOVZ (SRL x (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y))) @@ -7763,9 +7596,7 @@ func rewriteValueMIPS_OpRsh32Ux8_0(v *Value) bool { } func rewriteValueMIPS_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x16 x y) // cond: // result: (SRA x ( CMOVZ (ZeroExt16to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt16to32 y)))) @@ -7794,9 +7625,7 @@ func rewriteValueMIPS_OpRsh32x16_0(v *Value) bool { } func rewriteValueMIPS_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x32 x y) // cond: // result: (SRA x ( CMOVZ y (MOVWconst [-1]) (SGTUconst [32] y))) @@ -7862,9 +7691,7 @@ func rewriteValueMIPS_OpRsh32x64_0(v *Value) bool { } func rewriteValueMIPS_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x8 x y) // cond: // result: (SRA x ( CMOVZ (ZeroExt8to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt8to32 y)))) @@ -7893,9 +7720,7 @@ func rewriteValueMIPS_OpRsh32x8_0(v *Value) bool { } func rewriteValueMIPS_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux16 x y) // cond: // result: (CMOVZ (SRL (ZeroExt8to32 x) (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y))) @@ -7927,9 +7752,7 @@ func rewriteValueMIPS_OpRsh8Ux16_0(v *Value) bool { } func rewriteValueMIPS_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux32 x y) // cond: // result: (CMOVZ (SRL (ZeroExt8to32 x) y) (MOVWconst [0]) (SGTUconst [32] y)) @@ -7957,9 +7780,7 @@ func rewriteValueMIPS_OpRsh8Ux32_0(v *Value) bool { } func rewriteValueMIPS_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux64 x (Const64 [c])) // cond: uint32(c) < 8 // result: (SRLconst (SLLconst x [24]) [c+24]) @@ -8003,9 +7824,7 @@ func rewriteValueMIPS_OpRsh8Ux64_0(v *Value) bool { } func rewriteValueMIPS_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux8 x y) // cond: // result: (CMOVZ (SRL (ZeroExt8to32 x) (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y))) @@ -8037,9 +7856,7 @@ func rewriteValueMIPS_OpRsh8Ux8_0(v *Value) bool { } func rewriteValueMIPS_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x16 x y) // cond: // result: (SRA (SignExt16to32 x) ( CMOVZ (ZeroExt16to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt16to32 y)))) @@ -8070,9 +7887,7 @@ func rewriteValueMIPS_OpRsh8x16_0(v *Value) bool { } func rewriteValueMIPS_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x32 x y) // cond: // result: (SRA (SignExt16to32 x) ( CMOVZ y (MOVWconst [-1]) (SGTUconst [32] y))) @@ -8099,9 +7914,7 @@ func rewriteValueMIPS_OpRsh8x32_0(v *Value) bool { } func rewriteValueMIPS_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x64 x (Const64 [c])) // cond: uint32(c) < 8 // result: (SRAconst (SLLconst x [24]) [c+24]) @@ -8150,9 +7963,7 @@ func rewriteValueMIPS_OpRsh8x64_0(v *Value) bool { } func rewriteValueMIPS_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x8 x y) // cond: // result: (SRA (SignExt16to32 x) ( CMOVZ (ZeroExt8to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt8to32 y)))) @@ -8183,9 +7994,7 @@ func rewriteValueMIPS_OpRsh8x8_0(v *Value) bool { } func rewriteValueMIPS_OpSelect0_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Select0 (Add32carry x y)) // cond: // result: (ADD x y) @@ -8503,9 +8312,7 @@ func rewriteValueMIPS_OpSelect0_10(v *Value) bool { } func rewriteValueMIPS_OpSelect1_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Select1 (Add32carry x y)) // cond: // result: (SGTU x (ADD x y)) @@ -8866,7 +8673,6 @@ func rewriteValueMIPS_OpSignmask_0(v *Value) bool { } func rewriteValueMIPS_OpSlicemask_0(v *Value) bool { b := v.Block - _ = b // match: (Slicemask x) // cond: // result: (SRAconst (NEG x) [31]) @@ -9044,7 +8850,6 @@ func rewriteValueMIPS_OpSub32F_0(v *Value) bool { } func rewriteValueMIPS_OpSub32withcarry_0(v *Value) bool { b := v.Block - _ = b // match: (Sub32withcarry x y c) // cond: // result: (SUB (SUB x y) c) @@ -9203,9 +9008,7 @@ func rewriteValueMIPS_OpXor8_0(v *Value) bool { } func rewriteValueMIPS_OpZero_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Zero [0] _ mem) // cond: // result: mem @@ -9482,11 +9285,8 @@ func rewriteValueMIPS_OpZero_0(v *Value) bool { } func rewriteValueMIPS_OpZero_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Zero [12] {t} ptr mem) // cond: t.(*types.Type).Alignment()%4 == 0 // result: (MOVWstore [8] ptr (MOVWconst [0]) (MOVWstore [4] ptr (MOVWconst [0]) (MOVWstore [0] ptr (MOVWconst [0]) mem))) @@ -9627,9 +9427,7 @@ func rewriteValueMIPS_OpZeroExt8to32_0(v *Value) bool { } func rewriteValueMIPS_OpZeromask_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Zeromask x) // cond: // result: (NEG (SGTU x (MOVWconst [0]))) diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS64.go b/src/cmd/compile/internal/ssa/rewriteMIPS64.go index 9e12780664..c56f82f696 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS64.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS64.go @@ -987,7 +987,6 @@ func rewriteValueMIPS64_OpAtomicStorePtrNoWB_0(v *Value) bool { } func rewriteValueMIPS64_OpAvg64u_0(v *Value) bool { b := v.Block - _ = b // match: (Avg64u x y) // cond: // result: (ADDV (SRLVconst (SUBV x y) [1]) y) @@ -1028,9 +1027,7 @@ func rewriteValueMIPS64_OpClosureCall_0(v *Value) bool { } func rewriteValueMIPS64_OpCom16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Com16 x) // cond: // result: (NOR (MOVVconst [0]) x) @@ -1046,9 +1043,7 @@ func rewriteValueMIPS64_OpCom16_0(v *Value) bool { } func rewriteValueMIPS64_OpCom32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Com32 x) // cond: // result: (NOR (MOVVconst [0]) x) @@ -1064,9 +1059,7 @@ func rewriteValueMIPS64_OpCom32_0(v *Value) bool { } func rewriteValueMIPS64_OpCom64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Com64 x) // cond: // result: (NOR (MOVVconst [0]) x) @@ -1082,9 +1075,7 @@ func rewriteValueMIPS64_OpCom64_0(v *Value) bool { } func rewriteValueMIPS64_OpCom8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Com8 x) // cond: // result: (NOR (MOVVconst [0]) x) @@ -1297,9 +1288,7 @@ func rewriteValueMIPS64_OpCvt64to64F_0(v *Value) bool { } func rewriteValueMIPS64_OpDiv16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16 x y) // cond: // result: (Select1 (DIVV (SignExt16to64 x) (SignExt16to64 y))) @@ -1321,9 +1310,7 @@ func rewriteValueMIPS64_OpDiv16_0(v *Value) bool { } func rewriteValueMIPS64_OpDiv16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16u x y) // cond: // result: (Select1 (DIVVU (ZeroExt16to64 x) (ZeroExt16to64 y))) @@ -1345,9 +1332,7 @@ func rewriteValueMIPS64_OpDiv16u_0(v *Value) bool { } func rewriteValueMIPS64_OpDiv32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32 x y) // cond: // result: (Select1 (DIVV (SignExt32to64 x) (SignExt32to64 y))) @@ -1383,9 +1368,7 @@ func rewriteValueMIPS64_OpDiv32F_0(v *Value) bool { } func rewriteValueMIPS64_OpDiv32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32u x y) // cond: // result: (Select1 (DIVVU (ZeroExt32to64 x) (ZeroExt32to64 y))) @@ -1407,9 +1390,7 @@ func rewriteValueMIPS64_OpDiv32u_0(v *Value) bool { } func rewriteValueMIPS64_OpDiv64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div64 x y) // cond: // result: (Select1 (DIVV x y)) @@ -1441,9 +1422,7 @@ func rewriteValueMIPS64_OpDiv64F_0(v *Value) bool { } func rewriteValueMIPS64_OpDiv64u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div64u x y) // cond: // result: (Select1 (DIVVU x y)) @@ -1461,9 +1440,7 @@ func rewriteValueMIPS64_OpDiv64u_0(v *Value) bool { } func rewriteValueMIPS64_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 x y) // cond: // result: (Select1 (DIVV (SignExt8to64 x) (SignExt8to64 y))) @@ -1485,9 +1462,7 @@ func rewriteValueMIPS64_OpDiv8_0(v *Value) bool { } func rewriteValueMIPS64_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u x y) // cond: // result: (Select1 (DIVVU (ZeroExt8to64 x) (ZeroExt8to64 y))) @@ -1509,9 +1484,7 @@ func rewriteValueMIPS64_OpDiv8u_0(v *Value) bool { } func rewriteValueMIPS64_OpEq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq16 x y) // cond: // result: (SGTU (MOVVconst [1]) (XOR (ZeroExt16to64 x) (ZeroExt16to64 y))) @@ -1536,9 +1509,7 @@ func rewriteValueMIPS64_OpEq16_0(v *Value) bool { } func rewriteValueMIPS64_OpEq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq32 x y) // cond: // result: (SGTU (MOVVconst [1]) (XOR (ZeroExt32to64 x) (ZeroExt32to64 y))) @@ -1563,7 +1534,6 @@ func rewriteValueMIPS64_OpEq32_0(v *Value) bool { } func rewriteValueMIPS64_OpEq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32F x y) // cond: // result: (FPFlagTrue (CMPEQF x y)) @@ -1581,9 +1551,7 @@ func rewriteValueMIPS64_OpEq32F_0(v *Value) bool { } func rewriteValueMIPS64_OpEq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq64 x y) // cond: // result: (SGTU (MOVVconst [1]) (XOR x y)) @@ -1604,7 +1572,6 @@ func rewriteValueMIPS64_OpEq64_0(v *Value) bool { } func rewriteValueMIPS64_OpEq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64F x y) // cond: // result: (FPFlagTrue (CMPEQD x y)) @@ -1622,9 +1589,7 @@ func rewriteValueMIPS64_OpEq64F_0(v *Value) bool { } func rewriteValueMIPS64_OpEq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq8 x y) // cond: // result: (SGTU (MOVVconst [1]) (XOR (ZeroExt8to64 x) (ZeroExt8to64 y))) @@ -1649,9 +1614,7 @@ func rewriteValueMIPS64_OpEq8_0(v *Value) bool { } func rewriteValueMIPS64_OpEqB_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqB x y) // cond: // result: (XOR (MOVVconst [1]) (XOR x y)) @@ -1672,9 +1635,7 @@ func rewriteValueMIPS64_OpEqB_0(v *Value) bool { } func rewriteValueMIPS64_OpEqPtr_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqPtr x y) // cond: // result: (SGTU (MOVVconst [1]) (XOR x y)) @@ -1695,9 +1656,7 @@ func rewriteValueMIPS64_OpEqPtr_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16 x y) // cond: // result: (XOR (MOVVconst [1]) (SGT (SignExt16to64 y) (SignExt16to64 x))) @@ -1722,9 +1681,7 @@ func rewriteValueMIPS64_OpGeq16_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16U x y) // cond: // result: (XOR (MOVVconst [1]) (SGTU (ZeroExt16to64 y) (ZeroExt16to64 x))) @@ -1749,9 +1706,7 @@ func rewriteValueMIPS64_OpGeq16U_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32 x y) // cond: // result: (XOR (MOVVconst [1]) (SGT (SignExt32to64 y) (SignExt32to64 x))) @@ -1776,7 +1731,6 @@ func rewriteValueMIPS64_OpGeq32_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32F x y) // cond: // result: (FPFlagTrue (CMPGEF x y)) @@ -1794,9 +1748,7 @@ func rewriteValueMIPS64_OpGeq32F_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32U x y) // cond: // result: (XOR (MOVVconst [1]) (SGTU (ZeroExt32to64 y) (ZeroExt32to64 x))) @@ -1821,9 +1773,7 @@ func rewriteValueMIPS64_OpGeq32U_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq64 x y) // cond: // result: (XOR (MOVVconst [1]) (SGT y x)) @@ -1844,7 +1794,6 @@ func rewriteValueMIPS64_OpGeq64_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64F x y) // cond: // result: (FPFlagTrue (CMPGED x y)) @@ -1862,9 +1811,7 @@ func rewriteValueMIPS64_OpGeq64F_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq64U x y) // cond: // result: (XOR (MOVVconst [1]) (SGTU y x)) @@ -1885,9 +1832,7 @@ func rewriteValueMIPS64_OpGeq64U_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8 x y) // cond: // result: (XOR (MOVVconst [1]) (SGT (SignExt8to64 y) (SignExt8to64 x))) @@ -1912,9 +1857,7 @@ func rewriteValueMIPS64_OpGeq8_0(v *Value) bool { } func rewriteValueMIPS64_OpGeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8U x y) // cond: // result: (XOR (MOVVconst [1]) (SGTU (ZeroExt8to64 y) (ZeroExt8to64 x))) @@ -1966,9 +1909,7 @@ func rewriteValueMIPS64_OpGetClosurePtr_0(v *Value) bool { } func rewriteValueMIPS64_OpGreater16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16 x y) // cond: // result: (SGT (SignExt16to64 x) (SignExt16to64 y)) @@ -1988,9 +1929,7 @@ func rewriteValueMIPS64_OpGreater16_0(v *Value) bool { } func rewriteValueMIPS64_OpGreater16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16U x y) // cond: // result: (SGTU (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -2010,9 +1949,7 @@ func rewriteValueMIPS64_OpGreater16U_0(v *Value) bool { } func rewriteValueMIPS64_OpGreater32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater32 x y) // cond: // result: (SGT (SignExt32to64 x) (SignExt32to64 y)) @@ -2032,7 +1969,6 @@ func rewriteValueMIPS64_OpGreater32_0(v *Value) bool { } func rewriteValueMIPS64_OpGreater32F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32F x y) // cond: // result: (FPFlagTrue (CMPGTF x y)) @@ -2050,9 +1986,7 @@ func rewriteValueMIPS64_OpGreater32F_0(v *Value) bool { } func rewriteValueMIPS64_OpGreater32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater32U x y) // cond: // result: (SGTU (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -2086,7 +2020,6 @@ func rewriteValueMIPS64_OpGreater64_0(v *Value) bool { } func rewriteValueMIPS64_OpGreater64F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64F x y) // cond: // result: (FPFlagTrue (CMPGTD x y)) @@ -2118,9 +2051,7 @@ func rewriteValueMIPS64_OpGreater64U_0(v *Value) bool { } func rewriteValueMIPS64_OpGreater8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8 x y) // cond: // result: (SGT (SignExt8to64 x) (SignExt8to64 y)) @@ -2140,9 +2071,7 @@ func rewriteValueMIPS64_OpGreater8_0(v *Value) bool { } func rewriteValueMIPS64_OpGreater8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8U x y) // cond: // result: (SGTU (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -2162,9 +2091,7 @@ func rewriteValueMIPS64_OpGreater8U_0(v *Value) bool { } func rewriteValueMIPS64_OpHmul32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul32 x y) // cond: // result: (SRAVconst (Select1 (MULV (SignExt32to64 x) (SignExt32to64 y))) [32]) @@ -2189,9 +2116,7 @@ func rewriteValueMIPS64_OpHmul32_0(v *Value) bool { } func rewriteValueMIPS64_OpHmul32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul32u x y) // cond: // result: (SRLVconst (Select1 (MULVU (ZeroExt32to64 x) (ZeroExt32to64 y))) [32]) @@ -2216,9 +2141,7 @@ func rewriteValueMIPS64_OpHmul32u_0(v *Value) bool { } func rewriteValueMIPS64_OpHmul64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul64 x y) // cond: // result: (Select0 (MULV x y)) @@ -2236,9 +2159,7 @@ func rewriteValueMIPS64_OpHmul64_0(v *Value) bool { } func rewriteValueMIPS64_OpHmul64u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul64u x y) // cond: // result: (Select0 (MULVU x y)) @@ -2286,9 +2207,7 @@ func rewriteValueMIPS64_OpIsInBounds_0(v *Value) bool { } func rewriteValueMIPS64_OpIsNonNil_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (IsNonNil ptr) // cond: // result: (SGTU ptr (MOVVconst [0])) @@ -2304,9 +2223,7 @@ func rewriteValueMIPS64_OpIsNonNil_0(v *Value) bool { } func rewriteValueMIPS64_OpIsSliceInBounds_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (IsSliceInBounds idx len) // cond: // result: (XOR (MOVVconst [1]) (SGTU idx len)) @@ -2327,9 +2244,7 @@ func rewriteValueMIPS64_OpIsSliceInBounds_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16 x y) // cond: // result: (XOR (MOVVconst [1]) (SGT (SignExt16to64 x) (SignExt16to64 y))) @@ -2354,9 +2269,7 @@ func rewriteValueMIPS64_OpLeq16_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16U x y) // cond: // result: (XOR (MOVVconst [1]) (SGTU (ZeroExt16to64 x) (ZeroExt16to64 y))) @@ -2381,9 +2294,7 @@ func rewriteValueMIPS64_OpLeq16U_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32 x y) // cond: // result: (XOR (MOVVconst [1]) (SGT (SignExt32to64 x) (SignExt32to64 y))) @@ -2408,7 +2319,6 @@ func rewriteValueMIPS64_OpLeq32_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32F x y) // cond: // result: (FPFlagTrue (CMPGEF y x)) @@ -2426,9 +2336,7 @@ func rewriteValueMIPS64_OpLeq32F_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32U x y) // cond: // result: (XOR (MOVVconst [1]) (SGTU (ZeroExt32to64 x) (ZeroExt32to64 y))) @@ -2453,9 +2361,7 @@ func rewriteValueMIPS64_OpLeq32U_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq64 x y) // cond: // result: (XOR (MOVVconst [1]) (SGT x y)) @@ -2476,7 +2382,6 @@ func rewriteValueMIPS64_OpLeq64_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64F x y) // cond: // result: (FPFlagTrue (CMPGED y x)) @@ -2494,9 +2399,7 @@ func rewriteValueMIPS64_OpLeq64F_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq64U x y) // cond: // result: (XOR (MOVVconst [1]) (SGTU x y)) @@ -2517,9 +2420,7 @@ func rewriteValueMIPS64_OpLeq64U_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8 x y) // cond: // result: (XOR (MOVVconst [1]) (SGT (SignExt8to64 x) (SignExt8to64 y))) @@ -2544,9 +2445,7 @@ func rewriteValueMIPS64_OpLeq8_0(v *Value) bool { } func rewriteValueMIPS64_OpLeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8U x y) // cond: // result: (XOR (MOVVconst [1]) (SGTU (ZeroExt8to64 x) (ZeroExt8to64 y))) @@ -2571,9 +2470,7 @@ func rewriteValueMIPS64_OpLeq8U_0(v *Value) bool { } func rewriteValueMIPS64_OpLess16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16 x y) // cond: // result: (SGT (SignExt16to64 y) (SignExt16to64 x)) @@ -2593,9 +2490,7 @@ func rewriteValueMIPS64_OpLess16_0(v *Value) bool { } func rewriteValueMIPS64_OpLess16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16U x y) // cond: // result: (SGTU (ZeroExt16to64 y) (ZeroExt16to64 x)) @@ -2615,9 +2510,7 @@ func rewriteValueMIPS64_OpLess16U_0(v *Value) bool { } func rewriteValueMIPS64_OpLess32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less32 x y) // cond: // result: (SGT (SignExt32to64 y) (SignExt32to64 x)) @@ -2637,7 +2530,6 @@ func rewriteValueMIPS64_OpLess32_0(v *Value) bool { } func rewriteValueMIPS64_OpLess32F_0(v *Value) bool { b := v.Block - _ = b // match: (Less32F x y) // cond: // result: (FPFlagTrue (CMPGTF y x)) @@ -2655,9 +2547,7 @@ func rewriteValueMIPS64_OpLess32F_0(v *Value) bool { } func rewriteValueMIPS64_OpLess32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less32U x y) // cond: // result: (SGTU (ZeroExt32to64 y) (ZeroExt32to64 x)) @@ -2691,7 +2581,6 @@ func rewriteValueMIPS64_OpLess64_0(v *Value) bool { } func rewriteValueMIPS64_OpLess64F_0(v *Value) bool { b := v.Block - _ = b // match: (Less64F x y) // cond: // result: (FPFlagTrue (CMPGTD y x)) @@ -2723,9 +2612,7 @@ func rewriteValueMIPS64_OpLess64U_0(v *Value) bool { } func rewriteValueMIPS64_OpLess8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8 x y) // cond: // result: (SGT (SignExt8to64 y) (SignExt8to64 x)) @@ -2745,9 +2632,7 @@ func rewriteValueMIPS64_OpLess8_0(v *Value) bool { } func rewriteValueMIPS64_OpLess8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8U x y) // cond: // result: (SGTU (ZeroExt8to64 y) (ZeroExt8to64 x)) @@ -2944,9 +2829,7 @@ func rewriteValueMIPS64_OpLocalAddr_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x16 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt16to64 y))) (SLLV x (ZeroExt16to64 y))) @@ -2977,9 +2860,7 @@ func rewriteValueMIPS64_OpLsh16x16_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x32 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt32to64 y))) (SLLV x (ZeroExt32to64 y))) @@ -3010,9 +2891,7 @@ func rewriteValueMIPS64_OpLsh16x32_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x64 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) y)) (SLLV x y)) @@ -3039,9 +2918,7 @@ func rewriteValueMIPS64_OpLsh16x64_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x8 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt8to64 y))) (SLLV x (ZeroExt8to64 y))) @@ -3072,9 +2949,7 @@ func rewriteValueMIPS64_OpLsh16x8_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x16 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt16to64 y))) (SLLV x (ZeroExt16to64 y))) @@ -3105,9 +2980,7 @@ func rewriteValueMIPS64_OpLsh32x16_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x32 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt32to64 y))) (SLLV x (ZeroExt32to64 y))) @@ -3138,9 +3011,7 @@ func rewriteValueMIPS64_OpLsh32x32_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x64 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) y)) (SLLV x y)) @@ -3167,9 +3038,7 @@ func rewriteValueMIPS64_OpLsh32x64_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x8 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt8to64 y))) (SLLV x (ZeroExt8to64 y))) @@ -3200,9 +3069,7 @@ func rewriteValueMIPS64_OpLsh32x8_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x16 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt16to64 y))) (SLLV x (ZeroExt16to64 y))) @@ -3233,9 +3100,7 @@ func rewriteValueMIPS64_OpLsh64x16_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x32 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt32to64 y))) (SLLV x (ZeroExt32to64 y))) @@ -3266,9 +3131,7 @@ func rewriteValueMIPS64_OpLsh64x32_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x64 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) y)) (SLLV x y)) @@ -3295,9 +3158,7 @@ func rewriteValueMIPS64_OpLsh64x64_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x8 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt8to64 y))) (SLLV x (ZeroExt8to64 y))) @@ -3328,9 +3189,7 @@ func rewriteValueMIPS64_OpLsh64x8_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x16 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt16to64 y))) (SLLV x (ZeroExt16to64 y))) @@ -3361,9 +3220,7 @@ func rewriteValueMIPS64_OpLsh8x16_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x32 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt32to64 y))) (SLLV x (ZeroExt32to64 y))) @@ -3394,9 +3251,7 @@ func rewriteValueMIPS64_OpLsh8x32_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x64 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) y)) (SLLV x y)) @@ -3423,9 +3278,7 @@ func rewriteValueMIPS64_OpLsh8x64_0(v *Value) bool { } func rewriteValueMIPS64_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x8 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt8to64 y))) (SLLV x (ZeroExt8to64 y))) @@ -6640,9 +6493,7 @@ func rewriteValueMIPS64_OpMIPS64XORconst_0(v *Value) bool { } func rewriteValueMIPS64_OpMod16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16 x y) // cond: // result: (Select0 (DIVV (SignExt16to64 x) (SignExt16to64 y))) @@ -6664,9 +6515,7 @@ func rewriteValueMIPS64_OpMod16_0(v *Value) bool { } func rewriteValueMIPS64_OpMod16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16u x y) // cond: // result: (Select0 (DIVVU (ZeroExt16to64 x) (ZeroExt16to64 y))) @@ -6688,9 +6537,7 @@ func rewriteValueMIPS64_OpMod16u_0(v *Value) bool { } func rewriteValueMIPS64_OpMod32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32 x y) // cond: // result: (Select0 (DIVV (SignExt32to64 x) (SignExt32to64 y))) @@ -6712,9 +6559,7 @@ func rewriteValueMIPS64_OpMod32_0(v *Value) bool { } func rewriteValueMIPS64_OpMod32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32u x y) // cond: // result: (Select0 (DIVVU (ZeroExt32to64 x) (ZeroExt32to64 y))) @@ -6736,9 +6581,7 @@ func rewriteValueMIPS64_OpMod32u_0(v *Value) bool { } func rewriteValueMIPS64_OpMod64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod64 x y) // cond: // result: (Select0 (DIVV x y)) @@ -6756,9 +6599,7 @@ func rewriteValueMIPS64_OpMod64_0(v *Value) bool { } func rewriteValueMIPS64_OpMod64u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod64u x y) // cond: // result: (Select0 (DIVVU x y)) @@ -6776,9 +6617,7 @@ func rewriteValueMIPS64_OpMod64u_0(v *Value) bool { } func rewriteValueMIPS64_OpMod8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8 x y) // cond: // result: (Select0 (DIVV (SignExt8to64 x) (SignExt8to64 y))) @@ -6800,9 +6639,7 @@ func rewriteValueMIPS64_OpMod8_0(v *Value) bool { } func rewriteValueMIPS64_OpMod8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8u x y) // cond: // result: (Select0 (DIVVU (ZeroExt8to64 x) (ZeroExt8to64 y))) @@ -6824,9 +6661,7 @@ func rewriteValueMIPS64_OpMod8u_0(v *Value) bool { } func rewriteValueMIPS64_OpMove_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Move [0] _ _ mem) // cond: // result: mem @@ -7130,11 +6965,8 @@ func rewriteValueMIPS64_OpMove_0(v *Value) bool { } func rewriteValueMIPS64_OpMove_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Move [3] dst src mem) // cond: // result: (MOVBstore [2] dst (MOVBload [2] src mem) (MOVBstore [1] dst (MOVBload [1] src mem) (MOVBstore dst (MOVBload src mem) mem))) @@ -7360,9 +7192,7 @@ func rewriteValueMIPS64_OpMove_10(v *Value) bool { } func rewriteValueMIPS64_OpMul16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mul16 x y) // cond: // result: (Select1 (MULVU x y)) @@ -7380,9 +7210,7 @@ func rewriteValueMIPS64_OpMul16_0(v *Value) bool { } func rewriteValueMIPS64_OpMul32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mul32 x y) // cond: // result: (Select1 (MULVU x y)) @@ -7414,9 +7242,7 @@ func rewriteValueMIPS64_OpMul32F_0(v *Value) bool { } func rewriteValueMIPS64_OpMul64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mul64 x y) // cond: // result: (Select1 (MULVU x y)) @@ -7448,9 +7274,7 @@ func rewriteValueMIPS64_OpMul64F_0(v *Value) bool { } func rewriteValueMIPS64_OpMul8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mul8 x y) // cond: // result: (Select1 (MULVU x y)) @@ -7534,9 +7358,7 @@ func rewriteValueMIPS64_OpNeg8_0(v *Value) bool { } func rewriteValueMIPS64_OpNeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq16 x y) // cond: // result: (SGTU (XOR (ZeroExt16to32 x) (ZeroExt16to64 y)) (MOVVconst [0])) @@ -7561,9 +7383,7 @@ func rewriteValueMIPS64_OpNeq16_0(v *Value) bool { } func rewriteValueMIPS64_OpNeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq32 x y) // cond: // result: (SGTU (XOR (ZeroExt32to64 x) (ZeroExt32to64 y)) (MOVVconst [0])) @@ -7588,7 +7408,6 @@ func rewriteValueMIPS64_OpNeq32_0(v *Value) bool { } func rewriteValueMIPS64_OpNeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32F x y) // cond: // result: (FPFlagFalse (CMPEQF x y)) @@ -7606,9 +7425,7 @@ func rewriteValueMIPS64_OpNeq32F_0(v *Value) bool { } func rewriteValueMIPS64_OpNeq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq64 x y) // cond: // result: (SGTU (XOR x y) (MOVVconst [0])) @@ -7629,7 +7446,6 @@ func rewriteValueMIPS64_OpNeq64_0(v *Value) bool { } func rewriteValueMIPS64_OpNeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64F x y) // cond: // result: (FPFlagFalse (CMPEQD x y)) @@ -7647,9 +7463,7 @@ func rewriteValueMIPS64_OpNeq64F_0(v *Value) bool { } func rewriteValueMIPS64_OpNeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq8 x y) // cond: // result: (SGTU (XOR (ZeroExt8to64 x) (ZeroExt8to64 y)) (MOVVconst [0])) @@ -7688,9 +7502,7 @@ func rewriteValueMIPS64_OpNeqB_0(v *Value) bool { } func rewriteValueMIPS64_OpNeqPtr_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (NeqPtr x y) // cond: // result: (SGTU (XOR x y) (MOVVconst [0])) @@ -7858,9 +7670,7 @@ func rewriteValueMIPS64_OpRound64F_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux16 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt16to64 y))) (SRLV (ZeroExt16to64 x) (ZeroExt16to64 y))) @@ -7893,9 +7703,7 @@ func rewriteValueMIPS64_OpRsh16Ux16_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux32 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt32to64 y))) (SRLV (ZeroExt16to64 x) (ZeroExt32to64 y))) @@ -7928,9 +7736,7 @@ func rewriteValueMIPS64_OpRsh16Ux32_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux64 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) y)) (SRLV (ZeroExt16to64 x) y)) @@ -7959,9 +7765,7 @@ func rewriteValueMIPS64_OpRsh16Ux64_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux8 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt8to64 y))) (SRLV (ZeroExt16to64 x) (ZeroExt8to64 y))) @@ -7994,9 +7798,7 @@ func rewriteValueMIPS64_OpRsh16Ux8_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x16 x y) // cond: // result: (SRAV (SignExt16to64 x) (OR (NEGV (SGTU (ZeroExt16to64 y) (MOVVconst [63]))) (ZeroExt16to64 y))) @@ -8029,9 +7831,7 @@ func rewriteValueMIPS64_OpRsh16x16_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x32 x y) // cond: // result: (SRAV (SignExt16to64 x) (OR (NEGV (SGTU (ZeroExt32to64 y) (MOVVconst [63]))) (ZeroExt32to64 y))) @@ -8064,9 +7864,7 @@ func rewriteValueMIPS64_OpRsh16x32_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x64 x y) // cond: // result: (SRAV (SignExt16to64 x) (OR (NEGV (SGTU y (MOVVconst [63]))) y)) @@ -8095,9 +7893,7 @@ func rewriteValueMIPS64_OpRsh16x64_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x8 x y) // cond: // result: (SRAV (SignExt16to64 x) (OR (NEGV (SGTU (ZeroExt8to64 y) (MOVVconst [63]))) (ZeroExt8to64 y))) @@ -8130,9 +7926,7 @@ func rewriteValueMIPS64_OpRsh16x8_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux16 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt16to64 y))) (SRLV (ZeroExt32to64 x) (ZeroExt16to64 y))) @@ -8165,9 +7959,7 @@ func rewriteValueMIPS64_OpRsh32Ux16_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux32 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt32to64 y))) (SRLV (ZeroExt32to64 x) (ZeroExt32to64 y))) @@ -8200,9 +7992,7 @@ func rewriteValueMIPS64_OpRsh32Ux32_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh32Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux64 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) y)) (SRLV (ZeroExt32to64 x) y)) @@ -8231,9 +8021,7 @@ func rewriteValueMIPS64_OpRsh32Ux64_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux8 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt8to64 y))) (SRLV (ZeroExt32to64 x) (ZeroExt8to64 y))) @@ -8266,9 +8054,7 @@ func rewriteValueMIPS64_OpRsh32Ux8_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x16 x y) // cond: // result: (SRAV (SignExt32to64 x) (OR (NEGV (SGTU (ZeroExt16to64 y) (MOVVconst [63]))) (ZeroExt16to64 y))) @@ -8301,9 +8087,7 @@ func rewriteValueMIPS64_OpRsh32x16_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x32 x y) // cond: // result: (SRAV (SignExt32to64 x) (OR (NEGV (SGTU (ZeroExt32to64 y) (MOVVconst [63]))) (ZeroExt32to64 y))) @@ -8336,9 +8120,7 @@ func rewriteValueMIPS64_OpRsh32x32_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x64 x y) // cond: // result: (SRAV (SignExt32to64 x) (OR (NEGV (SGTU y (MOVVconst [63]))) y)) @@ -8367,9 +8149,7 @@ func rewriteValueMIPS64_OpRsh32x64_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x8 x y) // cond: // result: (SRAV (SignExt32to64 x) (OR (NEGV (SGTU (ZeroExt8to64 y) (MOVVconst [63]))) (ZeroExt8to64 y))) @@ -8402,9 +8182,7 @@ func rewriteValueMIPS64_OpRsh32x8_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh64Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux16 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt16to64 y))) (SRLV x (ZeroExt16to64 y))) @@ -8435,9 +8213,7 @@ func rewriteValueMIPS64_OpRsh64Ux16_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh64Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux32 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt32to64 y))) (SRLV x (ZeroExt32to64 y))) @@ -8468,9 +8244,7 @@ func rewriteValueMIPS64_OpRsh64Ux32_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh64Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux64 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) y)) (SRLV x y)) @@ -8497,9 +8271,7 @@ func rewriteValueMIPS64_OpRsh64Ux64_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh64Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux8 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt8to64 y))) (SRLV x (ZeroExt8to64 y))) @@ -8530,9 +8302,7 @@ func rewriteValueMIPS64_OpRsh64Ux8_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x16 x y) // cond: // result: (SRAV x (OR (NEGV (SGTU (ZeroExt16to64 y) (MOVVconst [63]))) (ZeroExt16to64 y))) @@ -8563,9 +8333,7 @@ func rewriteValueMIPS64_OpRsh64x16_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x32 x y) // cond: // result: (SRAV x (OR (NEGV (SGTU (ZeroExt32to64 y) (MOVVconst [63]))) (ZeroExt32to64 y))) @@ -8596,9 +8364,7 @@ func rewriteValueMIPS64_OpRsh64x32_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x64 x y) // cond: // result: (SRAV x (OR (NEGV (SGTU y (MOVVconst [63]))) y)) @@ -8625,9 +8391,7 @@ func rewriteValueMIPS64_OpRsh64x64_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x8 x y) // cond: // result: (SRAV x (OR (NEGV (SGTU (ZeroExt8to64 y) (MOVVconst [63]))) (ZeroExt8to64 y))) @@ -8658,9 +8422,7 @@ func rewriteValueMIPS64_OpRsh64x8_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux16 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt16to64 y))) (SRLV (ZeroExt8to64 x) (ZeroExt16to64 y))) @@ -8693,9 +8455,7 @@ func rewriteValueMIPS64_OpRsh8Ux16_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux32 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt32to64 y))) (SRLV (ZeroExt8to64 x) (ZeroExt32to64 y))) @@ -8728,9 +8488,7 @@ func rewriteValueMIPS64_OpRsh8Ux32_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux64 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) y)) (SRLV (ZeroExt8to64 x) y)) @@ -8759,9 +8517,7 @@ func rewriteValueMIPS64_OpRsh8Ux64_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux8 x y) // cond: // result: (AND (NEGV (SGTU (MOVVconst [64]) (ZeroExt8to64 y))) (SRLV (ZeroExt8to64 x) (ZeroExt8to64 y))) @@ -8794,9 +8550,7 @@ func rewriteValueMIPS64_OpRsh8Ux8_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x16 x y) // cond: // result: (SRAV (SignExt8to64 x) (OR (NEGV (SGTU (ZeroExt16to64 y) (MOVVconst [63]))) (ZeroExt16to64 y))) @@ -8829,9 +8583,7 @@ func rewriteValueMIPS64_OpRsh8x16_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x32 x y) // cond: // result: (SRAV (SignExt8to64 x) (OR (NEGV (SGTU (ZeroExt32to64 y) (MOVVconst [63]))) (ZeroExt32to64 y))) @@ -8864,9 +8616,7 @@ func rewriteValueMIPS64_OpRsh8x32_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x64 x y) // cond: // result: (SRAV (SignExt8to64 x) (OR (NEGV (SGTU y (MOVVconst [63]))) y)) @@ -8895,9 +8645,7 @@ func rewriteValueMIPS64_OpRsh8x64_0(v *Value) bool { } func rewriteValueMIPS64_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x8 x y) // cond: // result: (SRAV (SignExt8to64 x) (OR (NEGV (SGTU (ZeroExt8to64 y) (MOVVconst [63]))) (ZeroExt8to64 y))) @@ -9578,7 +9326,6 @@ func rewriteValueMIPS64_OpSignExt8to64_0(v *Value) bool { } func rewriteValueMIPS64_OpSlicemask_0(v *Value) bool { b := v.Block - _ = b // match: (Slicemask x) // cond: // result: (SRAVconst (NEGV x) [63]) @@ -9976,9 +9723,7 @@ func rewriteValueMIPS64_OpXor8_0(v *Value) bool { } func rewriteValueMIPS64_OpZero_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Zero [0] _ mem) // cond: // result: mem @@ -10251,11 +9996,8 @@ func rewriteValueMIPS64_OpZero_0(v *Value) bool { } func rewriteValueMIPS64_OpZero_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Zero [3] ptr mem) // cond: // result: (MOVBstore [2] ptr (MOVVconst [0]) (MOVBstore [1] ptr (MOVVconst [0]) (MOVBstore [0] ptr (MOVVconst [0]) mem))) diff --git a/src/cmd/compile/internal/ssa/rewritePPC64.go b/src/cmd/compile/internal/ssa/rewritePPC64.go index fdb34aec0a..29d9ec5d4d 100644 --- a/src/cmd/compile/internal/ssa/rewritePPC64.go +++ b/src/cmd/compile/internal/ssa/rewritePPC64.go @@ -1154,7 +1154,6 @@ func rewriteValuePPC64_OpAtomicStoreRel32_0(v *Value) bool { } func rewriteValuePPC64_OpAvg64u_0(v *Value) bool { b := v.Block - _ = b // match: (Avg64u x y) // cond: // result: (ADD (SRDconst (SUB x y) [1]) y) @@ -1177,9 +1176,7 @@ func rewriteValuePPC64_OpAvg64u_0(v *Value) bool { } func rewriteValuePPC64_OpBitLen32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen32 x) // cond: // result: (SUB (MOVDconst [32]) (CNTLZW x)) @@ -1197,9 +1194,7 @@ func rewriteValuePPC64_OpBitLen32_0(v *Value) bool { } func rewriteValuePPC64_OpBitLen64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen64 x) // cond: // result: (SUB (MOVDconst [64]) (CNTLZD x)) @@ -1395,9 +1390,7 @@ func rewriteValuePPC64_OpCopysign_0(v *Value) bool { } func rewriteValuePPC64_OpCtz16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz16 x) // cond: // result: (POPCNTW (MOVHZreg (ANDN (ADDconst [-1] x) x))) @@ -1418,9 +1411,7 @@ func rewriteValuePPC64_OpCtz16_0(v *Value) bool { } func rewriteValuePPC64_OpCtz32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz32 x) // cond: // result: (POPCNTW (MOVWZreg (ANDN (ADDconst [-1] x) x))) @@ -1452,9 +1443,7 @@ func rewriteValuePPC64_OpCtz32NonZero_0(v *Value) bool { } func rewriteValuePPC64_OpCtz64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz64 x) // cond: // result: (POPCNTD (ANDN (ADDconst [-1] x) x)) @@ -1484,9 +1473,7 @@ func rewriteValuePPC64_OpCtz64NonZero_0(v *Value) bool { } func rewriteValuePPC64_OpCtz8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz8 x) // cond: // result: (POPCNTB (MOVBZreg (ANDN (ADDconst [-1] x) x))) @@ -1507,9 +1494,7 @@ func rewriteValuePPC64_OpCtz8_0(v *Value) bool { } func rewriteValuePPC64_OpCvt32Fto32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt32Fto32 x) // cond: // result: (MFVSRD (FCTIWZ x)) @@ -1524,9 +1509,7 @@ func rewriteValuePPC64_OpCvt32Fto32_0(v *Value) bool { } func rewriteValuePPC64_OpCvt32Fto64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt32Fto64 x) // cond: // result: (MFVSRD (FCTIDZ x)) @@ -1553,9 +1536,7 @@ func rewriteValuePPC64_OpCvt32Fto64F_0(v *Value) bool { } func rewriteValuePPC64_OpCvt32to32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt32to32F x) // cond: // result: (FCFIDS (MTVSRD (SignExt32to64 x))) @@ -1572,9 +1553,7 @@ func rewriteValuePPC64_OpCvt32to32F_0(v *Value) bool { } func rewriteValuePPC64_OpCvt32to64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt32to64F x) // cond: // result: (FCFID (MTVSRD (SignExt32to64 x))) @@ -1591,9 +1570,7 @@ func rewriteValuePPC64_OpCvt32to64F_0(v *Value) bool { } func rewriteValuePPC64_OpCvt64Fto32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt64Fto32 x) // cond: // result: (MFVSRD (FCTIWZ x)) @@ -1619,9 +1596,7 @@ func rewriteValuePPC64_OpCvt64Fto32F_0(v *Value) bool { } func rewriteValuePPC64_OpCvt64Fto64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt64Fto64 x) // cond: // result: (MFVSRD (FCTIDZ x)) @@ -1636,9 +1611,7 @@ func rewriteValuePPC64_OpCvt64Fto64_0(v *Value) bool { } func rewriteValuePPC64_OpCvt64to32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt64to32F x) // cond: // result: (FCFIDS (MTVSRD x)) @@ -1653,9 +1626,7 @@ func rewriteValuePPC64_OpCvt64to32F_0(v *Value) bool { } func rewriteValuePPC64_OpCvt64to64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt64to64F x) // cond: // result: (FCFID (MTVSRD x)) @@ -1670,9 +1641,7 @@ func rewriteValuePPC64_OpCvt64to64F_0(v *Value) bool { } func rewriteValuePPC64_OpDiv16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16 x y) // cond: // result: (DIVW (SignExt16to32 x) (SignExt16to32 y)) @@ -1692,9 +1661,7 @@ func rewriteValuePPC64_OpDiv16_0(v *Value) bool { } func rewriteValuePPC64_OpDiv16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16u x y) // cond: // result: (DIVWU (ZeroExt16to32 x) (ZeroExt16to32 y)) @@ -1798,9 +1765,7 @@ func rewriteValuePPC64_OpDiv64u_0(v *Value) bool { } func rewriteValuePPC64_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 x y) // cond: // result: (DIVW (SignExt8to32 x) (SignExt8to32 y)) @@ -1820,9 +1785,7 @@ func rewriteValuePPC64_OpDiv8_0(v *Value) bool { } func rewriteValuePPC64_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u x y) // cond: // result: (DIVWU (ZeroExt8to32 x) (ZeroExt8to32 y)) @@ -1842,9 +1805,7 @@ func rewriteValuePPC64_OpDiv8u_0(v *Value) bool { } func rewriteValuePPC64_OpEq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq16 x y) // cond: isSigned(x.Type) && isSigned(y.Type) // result: (Equal (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -1887,7 +1848,6 @@ func rewriteValuePPC64_OpEq16_0(v *Value) bool { } func rewriteValuePPC64_OpEq32_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32 x y) // cond: // result: (Equal (CMPW x y)) @@ -1905,7 +1865,6 @@ func rewriteValuePPC64_OpEq32_0(v *Value) bool { } func rewriteValuePPC64_OpEq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32F x y) // cond: // result: (Equal (FCMPU x y)) @@ -1923,7 +1882,6 @@ func rewriteValuePPC64_OpEq32F_0(v *Value) bool { } func rewriteValuePPC64_OpEq64_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64 x y) // cond: // result: (Equal (CMP x y)) @@ -1941,7 +1899,6 @@ func rewriteValuePPC64_OpEq64_0(v *Value) bool { } func rewriteValuePPC64_OpEq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64F x y) // cond: // result: (Equal (FCMPU x y)) @@ -1959,9 +1916,7 @@ func rewriteValuePPC64_OpEq64F_0(v *Value) bool { } func rewriteValuePPC64_OpEq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq8 x y) // cond: isSigned(x.Type) && isSigned(y.Type) // result: (Equal (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -2004,9 +1959,7 @@ func rewriteValuePPC64_OpEq8_0(v *Value) bool { } func rewriteValuePPC64_OpEqB_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqB x y) // cond: // result: (ANDconst [1] (EQV x y)) @@ -2025,7 +1978,6 @@ func rewriteValuePPC64_OpEqB_0(v *Value) bool { } func rewriteValuePPC64_OpEqPtr_0(v *Value) bool { b := v.Block - _ = b // match: (EqPtr x y) // cond: // result: (Equal (CMP x y)) @@ -2054,9 +2006,7 @@ func rewriteValuePPC64_OpFloor_0(v *Value) bool { } func rewriteValuePPC64_OpGeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16 x y) // cond: // result: (GreaterEqual (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -2078,9 +2028,7 @@ func rewriteValuePPC64_OpGeq16_0(v *Value) bool { } func rewriteValuePPC64_OpGeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16U x y) // cond: // result: (GreaterEqual (CMPWU (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -2102,7 +2050,6 @@ func rewriteValuePPC64_OpGeq16U_0(v *Value) bool { } func rewriteValuePPC64_OpGeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32 x y) // cond: // result: (GreaterEqual (CMPW x y)) @@ -2120,7 +2067,6 @@ func rewriteValuePPC64_OpGeq32_0(v *Value) bool { } func rewriteValuePPC64_OpGeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32F x y) // cond: // result: (FGreaterEqual (FCMPU x y)) @@ -2138,7 +2084,6 @@ func rewriteValuePPC64_OpGeq32F_0(v *Value) bool { } func rewriteValuePPC64_OpGeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq32U x y) // cond: // result: (GreaterEqual (CMPWU x y)) @@ -2156,7 +2101,6 @@ func rewriteValuePPC64_OpGeq32U_0(v *Value) bool { } func rewriteValuePPC64_OpGeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64 x y) // cond: // result: (GreaterEqual (CMP x y)) @@ -2174,7 +2118,6 @@ func rewriteValuePPC64_OpGeq64_0(v *Value) bool { } func rewriteValuePPC64_OpGeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64F x y) // cond: // result: (FGreaterEqual (FCMPU x y)) @@ -2192,7 +2135,6 @@ func rewriteValuePPC64_OpGeq64F_0(v *Value) bool { } func rewriteValuePPC64_OpGeq64U_0(v *Value) bool { b := v.Block - _ = b // match: (Geq64U x y) // cond: // result: (GreaterEqual (CMPU x y)) @@ -2210,9 +2152,7 @@ func rewriteValuePPC64_OpGeq64U_0(v *Value) bool { } func rewriteValuePPC64_OpGeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8 x y) // cond: // result: (GreaterEqual (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -2234,9 +2174,7 @@ func rewriteValuePPC64_OpGeq8_0(v *Value) bool { } func rewriteValuePPC64_OpGeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8U x y) // cond: // result: (GreaterEqual (CMPWU (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -2285,9 +2223,7 @@ func rewriteValuePPC64_OpGetClosurePtr_0(v *Value) bool { } func rewriteValuePPC64_OpGreater16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16 x y) // cond: // result: (GreaterThan (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -2309,9 +2245,7 @@ func rewriteValuePPC64_OpGreater16_0(v *Value) bool { } func rewriteValuePPC64_OpGreater16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16U x y) // cond: // result: (GreaterThan (CMPWU (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -2333,7 +2267,6 @@ func rewriteValuePPC64_OpGreater16U_0(v *Value) bool { } func rewriteValuePPC64_OpGreater32_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32 x y) // cond: // result: (GreaterThan (CMPW x y)) @@ -2351,7 +2284,6 @@ func rewriteValuePPC64_OpGreater32_0(v *Value) bool { } func rewriteValuePPC64_OpGreater32F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32F x y) // cond: // result: (FGreaterThan (FCMPU x y)) @@ -2369,7 +2301,6 @@ func rewriteValuePPC64_OpGreater32F_0(v *Value) bool { } func rewriteValuePPC64_OpGreater32U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater32U x y) // cond: // result: (GreaterThan (CMPWU x y)) @@ -2387,7 +2318,6 @@ func rewriteValuePPC64_OpGreater32U_0(v *Value) bool { } func rewriteValuePPC64_OpGreater64_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64 x y) // cond: // result: (GreaterThan (CMP x y)) @@ -2405,7 +2335,6 @@ func rewriteValuePPC64_OpGreater64_0(v *Value) bool { } func rewriteValuePPC64_OpGreater64F_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64F x y) // cond: // result: (FGreaterThan (FCMPU x y)) @@ -2423,7 +2352,6 @@ func rewriteValuePPC64_OpGreater64F_0(v *Value) bool { } func rewriteValuePPC64_OpGreater64U_0(v *Value) bool { b := v.Block - _ = b // match: (Greater64U x y) // cond: // result: (GreaterThan (CMPU x y)) @@ -2441,9 +2369,7 @@ func rewriteValuePPC64_OpGreater64U_0(v *Value) bool { } func rewriteValuePPC64_OpGreater8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8 x y) // cond: // result: (GreaterThan (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -2465,9 +2391,7 @@ func rewriteValuePPC64_OpGreater8_0(v *Value) bool { } func rewriteValuePPC64_OpGreater8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8U x y) // cond: // result: (GreaterThan (CMPWU (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -2561,7 +2485,6 @@ func rewriteValuePPC64_OpInterCall_0(v *Value) bool { } func rewriteValuePPC64_OpIsInBounds_0(v *Value) bool { b := v.Block - _ = b // match: (IsInBounds idx len) // cond: // result: (LessThan (CMPU idx len)) @@ -2579,7 +2502,6 @@ func rewriteValuePPC64_OpIsInBounds_0(v *Value) bool { } func rewriteValuePPC64_OpIsNonNil_0(v *Value) bool { b := v.Block - _ = b // match: (IsNonNil ptr) // cond: // result: (NotEqual (CMPconst [0] ptr)) @@ -2595,7 +2517,6 @@ func rewriteValuePPC64_OpIsNonNil_0(v *Value) bool { } func rewriteValuePPC64_OpIsSliceInBounds_0(v *Value) bool { b := v.Block - _ = b // match: (IsSliceInBounds idx len) // cond: // result: (LessEqual (CMPU idx len)) @@ -2613,9 +2534,7 @@ func rewriteValuePPC64_OpIsSliceInBounds_0(v *Value) bool { } func rewriteValuePPC64_OpLeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16 x y) // cond: // result: (LessEqual (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -2637,9 +2556,7 @@ func rewriteValuePPC64_OpLeq16_0(v *Value) bool { } func rewriteValuePPC64_OpLeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16U x y) // cond: // result: (LessEqual (CMPWU (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -2661,7 +2578,6 @@ func rewriteValuePPC64_OpLeq16U_0(v *Value) bool { } func rewriteValuePPC64_OpLeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32 x y) // cond: // result: (LessEqual (CMPW x y)) @@ -2679,7 +2595,6 @@ func rewriteValuePPC64_OpLeq32_0(v *Value) bool { } func rewriteValuePPC64_OpLeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32F x y) // cond: // result: (FLessEqual (FCMPU x y)) @@ -2697,7 +2612,6 @@ func rewriteValuePPC64_OpLeq32F_0(v *Value) bool { } func rewriteValuePPC64_OpLeq32U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq32U x y) // cond: // result: (LessEqual (CMPWU x y)) @@ -2715,7 +2629,6 @@ func rewriteValuePPC64_OpLeq32U_0(v *Value) bool { } func rewriteValuePPC64_OpLeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64 x y) // cond: // result: (LessEqual (CMP x y)) @@ -2733,7 +2646,6 @@ func rewriteValuePPC64_OpLeq64_0(v *Value) bool { } func rewriteValuePPC64_OpLeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64F x y) // cond: // result: (FLessEqual (FCMPU x y)) @@ -2751,7 +2663,6 @@ func rewriteValuePPC64_OpLeq64F_0(v *Value) bool { } func rewriteValuePPC64_OpLeq64U_0(v *Value) bool { b := v.Block - _ = b // match: (Leq64U x y) // cond: // result: (LessEqual (CMPU x y)) @@ -2769,9 +2680,7 @@ func rewriteValuePPC64_OpLeq64U_0(v *Value) bool { } func rewriteValuePPC64_OpLeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8 x y) // cond: // result: (LessEqual (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -2793,9 +2702,7 @@ func rewriteValuePPC64_OpLeq8_0(v *Value) bool { } func rewriteValuePPC64_OpLeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8U x y) // cond: // result: (LessEqual (CMPWU (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -2817,9 +2724,7 @@ func rewriteValuePPC64_OpLeq8U_0(v *Value) bool { } func rewriteValuePPC64_OpLess16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16 x y) // cond: // result: (LessThan (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -2841,9 +2746,7 @@ func rewriteValuePPC64_OpLess16_0(v *Value) bool { } func rewriteValuePPC64_OpLess16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16U x y) // cond: // result: (LessThan (CMPWU (ZeroExt16to32 x) (ZeroExt16to32 y))) @@ -2865,7 +2768,6 @@ func rewriteValuePPC64_OpLess16U_0(v *Value) bool { } func rewriteValuePPC64_OpLess32_0(v *Value) bool { b := v.Block - _ = b // match: (Less32 x y) // cond: // result: (LessThan (CMPW x y)) @@ -2883,7 +2785,6 @@ func rewriteValuePPC64_OpLess32_0(v *Value) bool { } func rewriteValuePPC64_OpLess32F_0(v *Value) bool { b := v.Block - _ = b // match: (Less32F x y) // cond: // result: (FLessThan (FCMPU x y)) @@ -2901,7 +2802,6 @@ func rewriteValuePPC64_OpLess32F_0(v *Value) bool { } func rewriteValuePPC64_OpLess32U_0(v *Value) bool { b := v.Block - _ = b // match: (Less32U x y) // cond: // result: (LessThan (CMPWU x y)) @@ -2919,7 +2819,6 @@ func rewriteValuePPC64_OpLess32U_0(v *Value) bool { } func rewriteValuePPC64_OpLess64_0(v *Value) bool { b := v.Block - _ = b // match: (Less64 x y) // cond: // result: (LessThan (CMP x y)) @@ -2937,7 +2836,6 @@ func rewriteValuePPC64_OpLess64_0(v *Value) bool { } func rewriteValuePPC64_OpLess64F_0(v *Value) bool { b := v.Block - _ = b // match: (Less64F x y) // cond: // result: (FLessThan (FCMPU x y)) @@ -2955,7 +2853,6 @@ func rewriteValuePPC64_OpLess64F_0(v *Value) bool { } func rewriteValuePPC64_OpLess64U_0(v *Value) bool { b := v.Block - _ = b // match: (Less64U x y) // cond: // result: (LessThan (CMPU x y)) @@ -2973,9 +2870,7 @@ func rewriteValuePPC64_OpLess64U_0(v *Value) bool { } func rewriteValuePPC64_OpLess8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8 x y) // cond: // result: (LessThan (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -2997,9 +2892,7 @@ func rewriteValuePPC64_OpLess8_0(v *Value) bool { } func rewriteValuePPC64_OpLess8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8U x y) // cond: // result: (LessThan (CMPWU (ZeroExt8to32 x) (ZeroExt8to32 y))) @@ -3021,9 +2914,7 @@ func rewriteValuePPC64_OpLess8U_0(v *Value) bool { } func rewriteValuePPC64_OpLoad_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Load ptr mem) // cond: (is64BitInt(t) || isPtr(t)) // result: (MOVDload ptr mem) @@ -3204,9 +3095,7 @@ func rewriteValuePPC64_OpLocalAddr_0(v *Value) bool { } func rewriteValuePPC64_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x16 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3247,9 +3136,7 @@ func rewriteValuePPC64_OpLsh16x16_0(v *Value) bool { } func rewriteValuePPC64_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x32 x (Const64 [c])) // cond: uint32(c) < 16 // result: (SLWconst x [c]) @@ -3328,9 +3215,7 @@ func rewriteValuePPC64_OpLsh16x32_0(v *Value) bool { } func rewriteValuePPC64_OpLsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x64 x (Const64 [c])) // cond: uint64(c) < 16 // result: (SLWconst x [c]) @@ -3424,9 +3309,7 @@ func rewriteValuePPC64_OpLsh16x64_0(v *Value) bool { } func rewriteValuePPC64_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x8 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3467,9 +3350,7 @@ func rewriteValuePPC64_OpLsh16x8_0(v *Value) bool { } func rewriteValuePPC64_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x16 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3510,9 +3391,7 @@ func rewriteValuePPC64_OpLsh32x16_0(v *Value) bool { } func rewriteValuePPC64_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x32 x (Const64 [c])) // cond: uint32(c) < 32 // result: (SLWconst x [c]) @@ -3591,9 +3470,7 @@ func rewriteValuePPC64_OpLsh32x32_0(v *Value) bool { } func rewriteValuePPC64_OpLsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x64 x (Const64 [c])) // cond: uint64(c) < 32 // result: (SLWconst x [c]) @@ -3766,9 +3643,7 @@ func rewriteValuePPC64_OpLsh32x64_0(v *Value) bool { } func rewriteValuePPC64_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x8 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3809,9 +3684,7 @@ func rewriteValuePPC64_OpLsh32x8_0(v *Value) bool { } func rewriteValuePPC64_OpLsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x16 x y) // cond: shiftIsBounded(v) // result: (SLD x y) @@ -3852,9 +3725,7 @@ func rewriteValuePPC64_OpLsh64x16_0(v *Value) bool { } func rewriteValuePPC64_OpLsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x32 x (Const64 [c])) // cond: uint32(c) < 64 // result: (SLDconst x [c]) @@ -3933,9 +3804,7 @@ func rewriteValuePPC64_OpLsh64x32_0(v *Value) bool { } func rewriteValuePPC64_OpLsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x64 x (Const64 [c])) // cond: uint64(c) < 64 // result: (SLDconst x [c]) @@ -4108,9 +3977,7 @@ func rewriteValuePPC64_OpLsh64x64_0(v *Value) bool { } func rewriteValuePPC64_OpLsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x8 x y) // cond: shiftIsBounded(v) // result: (SLD x y) @@ -4151,9 +4018,7 @@ func rewriteValuePPC64_OpLsh64x8_0(v *Value) bool { } func rewriteValuePPC64_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x16 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -4194,9 +4059,7 @@ func rewriteValuePPC64_OpLsh8x16_0(v *Value) bool { } func rewriteValuePPC64_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x32 x (Const64 [c])) // cond: uint32(c) < 8 // result: (SLWconst x [c]) @@ -4275,9 +4138,7 @@ func rewriteValuePPC64_OpLsh8x32_0(v *Value) bool { } func rewriteValuePPC64_OpLsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x64 x (Const64 [c])) // cond: uint64(c) < 8 // result: (SLWconst x [c]) @@ -4371,9 +4232,7 @@ func rewriteValuePPC64_OpLsh8x64_0(v *Value) bool { } func rewriteValuePPC64_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x8 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -4414,9 +4273,7 @@ func rewriteValuePPC64_OpLsh8x8_0(v *Value) bool { } func rewriteValuePPC64_OpMod16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16 x y) // cond: // result: (Mod32 (SignExt16to32 x) (SignExt16to32 y)) @@ -4436,9 +4293,7 @@ func rewriteValuePPC64_OpMod16_0(v *Value) bool { } func rewriteValuePPC64_OpMod16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16u x y) // cond: // result: (Mod32u (ZeroExt16to32 x) (ZeroExt16to32 y)) @@ -4458,9 +4313,7 @@ func rewriteValuePPC64_OpMod16u_0(v *Value) bool { } func rewriteValuePPC64_OpMod32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32 x y) // cond: // result: (SUB x (MULLW y (DIVW x y))) @@ -4482,9 +4335,7 @@ func rewriteValuePPC64_OpMod32_0(v *Value) bool { } func rewriteValuePPC64_OpMod32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32u x y) // cond: // result: (SUB x (MULLW y (DIVWU x y))) @@ -4506,9 +4357,7 @@ func rewriteValuePPC64_OpMod32u_0(v *Value) bool { } func rewriteValuePPC64_OpMod64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod64 x y) // cond: // result: (SUB x (MULLD y (DIVD x y))) @@ -4530,9 +4379,7 @@ func rewriteValuePPC64_OpMod64_0(v *Value) bool { } func rewriteValuePPC64_OpMod64u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod64u x y) // cond: // result: (SUB x (MULLD y (DIVDU x y))) @@ -4554,9 +4401,7 @@ func rewriteValuePPC64_OpMod64u_0(v *Value) bool { } func rewriteValuePPC64_OpMod8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8 x y) // cond: // result: (Mod32 (SignExt8to32 x) (SignExt8to32 y)) @@ -4576,9 +4421,7 @@ func rewriteValuePPC64_OpMod8_0(v *Value) bool { } func rewriteValuePPC64_OpMod8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8u x y) // cond: // result: (Mod32u (ZeroExt8to32 x) (ZeroExt8to32 y)) @@ -4598,9 +4441,7 @@ func rewriteValuePPC64_OpMod8u_0(v *Value) bool { } func rewriteValuePPC64_OpMove_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Move [0] _ _ mem) // cond: // result: mem @@ -5043,9 +4884,7 @@ func rewriteValuePPC64_OpNeg8_0(v *Value) bool { } func rewriteValuePPC64_OpNeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq16 x y) // cond: isSigned(x.Type) && isSigned(y.Type) // result: (NotEqual (CMPW (SignExt16to32 x) (SignExt16to32 y))) @@ -5088,7 +4927,6 @@ func rewriteValuePPC64_OpNeq16_0(v *Value) bool { } func rewriteValuePPC64_OpNeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32 x y) // cond: // result: (NotEqual (CMPW x y)) @@ -5106,7 +4944,6 @@ func rewriteValuePPC64_OpNeq32_0(v *Value) bool { } func rewriteValuePPC64_OpNeq32F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32F x y) // cond: // result: (NotEqual (FCMPU x y)) @@ -5124,7 +4961,6 @@ func rewriteValuePPC64_OpNeq32F_0(v *Value) bool { } func rewriteValuePPC64_OpNeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64 x y) // cond: // result: (NotEqual (CMP x y)) @@ -5142,7 +4978,6 @@ func rewriteValuePPC64_OpNeq64_0(v *Value) bool { } func rewriteValuePPC64_OpNeq64F_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64F x y) // cond: // result: (NotEqual (FCMPU x y)) @@ -5160,9 +4995,7 @@ func rewriteValuePPC64_OpNeq64F_0(v *Value) bool { } func rewriteValuePPC64_OpNeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq8 x y) // cond: isSigned(x.Type) && isSigned(y.Type) // result: (NotEqual (CMPW (SignExt8to32 x) (SignExt8to32 y))) @@ -5219,7 +5052,6 @@ func rewriteValuePPC64_OpNeqB_0(v *Value) bool { } func rewriteValuePPC64_OpNeqPtr_0(v *Value) bool { b := v.Block - _ = b // match: (NeqPtr x y) // cond: // result: (NotEqual (CMP x y)) @@ -5263,9 +5095,7 @@ func rewriteValuePPC64_OpNot_0(v *Value) bool { } func rewriteValuePPC64_OpOffPtr_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OffPtr [off] ptr) // cond: // result: (ADD (MOVDconst [off]) ptr) @@ -5352,9 +5182,7 @@ func rewriteValuePPC64_OpOrB_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64ADD_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ADD (SLDconst x [c]) (SRDconst x [d])) // cond: d == 64-c // result: (ROTLconst [c] x) @@ -6300,7 +6128,6 @@ func rewriteValuePPC64_OpPPC64ANDconst_10(v *Value) bool { } func rewriteValuePPC64_OpPPC64CMP_0(v *Value) bool { b := v.Block - _ = b // match: (CMP x (MOVDconst [c])) // cond: is16Bit(c) // result: (CMPconst x [c]) @@ -6345,7 +6172,6 @@ func rewriteValuePPC64_OpPPC64CMP_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64CMPU_0(v *Value) bool { b := v.Block - _ = b // match: (CMPU x (MOVDconst [c])) // cond: isU16Bit(c) // result: (CMPUconst x [c]) @@ -6441,7 +6267,6 @@ func rewriteValuePPC64_OpPPC64CMPUconst_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64CMPW_0(v *Value) bool { b := v.Block - _ = b // match: (CMPW x (MOVWreg y)) // cond: // result: (CMPW x y) @@ -6518,7 +6343,6 @@ func rewriteValuePPC64_OpPPC64CMPW_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64CMPWU_0(v *Value) bool { b := v.Block - _ = b // match: (CMPWU x (MOVWZreg y)) // cond: // result: (CMPWU x y) @@ -7508,9 +7332,7 @@ func rewriteValuePPC64_OpPPC64LessThan_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64MFVSRD_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MFVSRD (FMOVDconst [c])) // cond: // result: (MOVDconst [c]) @@ -7677,9 +7499,7 @@ func rewriteValuePPC64_OpPPC64MOVBZloadidx_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVBZreg_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVBZreg y:(ANDconst [c] _)) // cond: uint64(c) <= 0xFF // result: y @@ -7863,9 +7683,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg_10(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVBreg_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVBreg y:(ANDconst [c] _)) // cond: uint64(c) <= 0x7F // result: y @@ -8294,11 +8112,8 @@ func rewriteValuePPC64_OpPPC64MOVBstore_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVBstore_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (MOVBstore [off] {sym} ptr (SRWconst (MOVHreg x) [c]) mem) // cond: c <= 8 // result: (MOVBstore [off] {sym} ptr (SRWconst x [c]) mem) @@ -8761,11 +8576,8 @@ func rewriteValuePPC64_OpPPC64MOVBstore_10(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVBstore_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (MOVBstore [i7] {s} p (SRDconst w [56]) x0:(MOVBstore [i6] {s} p (SRDconst w [48]) x1:(MOVBstore [i5] {s} p (SRDconst w [40]) x2:(MOVBstore [i4] {s} p (SRDconst w [32]) x3:(MOVWstore [i0] {s} p w mem))))) // cond: !config.BigEndian && i0%4 == 0 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) // result: (MOVDstore [i0] {s} p w mem) @@ -9056,9 +8868,7 @@ func rewriteValuePPC64_OpPPC64MOVBstore_20(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVBstoreidx_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVBstoreidx ptr (MOVDconst [c]) val mem) // cond: is16Bit(c) // result: (MOVBstore [c] ptr val mem) @@ -9323,9 +9133,7 @@ func rewriteValuePPC64_OpPPC64MOVBstoreidx_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVBstoreidx_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVBstoreidx [off] {sym} ptr idx (SRWconst (MOVWreg x) [c]) mem) // cond: c <= 24 // result: (MOVBstoreidx [off] {sym} ptr idx (SRWconst x [c]) mem) @@ -10036,9 +9844,7 @@ func rewriteValuePPC64_OpPPC64MOVHZloadidx_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVHZreg_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVHZreg y:(ANDconst [c] _)) // cond: uint64(c) <= 0xFFFF // result: y @@ -10421,9 +10227,7 @@ func rewriteValuePPC64_OpPPC64MOVHloadidx_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVHreg_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVHreg y:(ANDconst [c] _)) // cond: uint64(c) <= 0x7FFF // result: y @@ -10677,9 +10481,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg_10(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVHstore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (MOVHstore [off1] {sym} (ADDconst [off2] x) val mem) // cond: is16Bit(off1+off2) // result: (MOVHstore [off1+off2] {sym} x val mem) @@ -11323,9 +11125,7 @@ func rewriteValuePPC64_OpPPC64MOVWZloadidx_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVWZreg_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVWZreg y:(ANDconst [c] _)) // cond: uint64(c) <= 0xFFFFFFFF // result: y @@ -11813,9 +11613,7 @@ func rewriteValuePPC64_OpPPC64MOVWloadidx_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64MOVWreg_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVWreg y:(ANDconst [c] _)) // cond: uint64(c) <= 0xFFFF // result: y @@ -12437,9 +12235,7 @@ func rewriteValuePPC64_OpPPC64MOVWstorezero_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64MTVSRD_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MTVSRD (MOVDconst [c])) // cond: // result: (FMOVDconst [c]) @@ -12559,9 +12355,7 @@ func rewriteValuePPC64_OpPPC64NotEqual_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR (SLDconst x [c]) (SRDconst x [d])) // cond: d == 64-c // result: (ROTLconst [c] x) @@ -12964,11 +12758,8 @@ func rewriteValuePPC64_OpPPC64OR_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR x (MOVDconst [c])) // cond: isU32Bit(c) // result: (ORconst [c] x) @@ -13419,11 +13210,8 @@ func rewriteValuePPC64_OpPPC64OR_10(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR s0:(SLWconst x0:(MOVBZload [i1] {s} p mem) [n1]) s1:(SLWconst x1:(MOVBZload [i0] {s} p mem) [n2])) // cond: !config.BigEndian && i1 == i0+1 && n1%8 == 0 && n2 == n1+8 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) // result: @mergePoint(b,x0,x1) (SLDconst (MOVHBRload (MOVDaddr [i0] {s} p) mem) [n1]) @@ -14140,11 +13928,8 @@ func rewriteValuePPC64_OpPPC64OR_20(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_30(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR o0:(OR s0:(SLDconst x1:(MOVBZload [i2] {s} p mem) [16]) x0:(MOVHZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i3] {s} p mem) [24])) // cond: !config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses ==1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0) // result: @mergePoint(b,x0,x1,x2) (MOVWZload {s} [i0] p mem) @@ -15045,11 +14830,8 @@ func rewriteValuePPC64_OpPPC64OR_30(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_40(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR x0:(MOVBZload [i3] {s} p mem) o0:(OR s0:(SLWconst x1:(MOVBZload [i2] {s} p mem) [8]) s1:(SLWconst x2:(MOVHBRload (MOVDaddr [i0] {s} p) mem) [16]))) // cond: !config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0) // result: @mergePoint(b,x0,x1,x2) (MOVWBRload (MOVDaddr [i0] {s} p) mem) @@ -15994,11 +15776,8 @@ func rewriteValuePPC64_OpPPC64OR_40(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_50(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR o0:(OR s1:(SLDconst x1:(MOVBZload [i2] {s} p mem) [40]) s0:(SLDconst x0:(MOVHBRload (MOVDaddr [i0] {s} p) mem) [48])) s2:(SLDconst x2:(MOVBZload [i3] {s} p mem) [32])) // cond: !config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(o0) // result: @mergePoint(b,x0,x1,x2) (SLDconst (MOVWBRload (MOVDaddr [i0] {s} p) mem) [32]) @@ -17175,9 +16954,7 @@ func rewriteValuePPC64_OpPPC64OR_50(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_60(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (OR s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR o4:(OR s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]))) // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5) // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload {s} [i0] p mem) @@ -18582,11 +18359,8 @@ func rewriteValuePPC64_OpPPC64OR_60(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_70(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR o5:(OR o4:(OR o3:(OR s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem)) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56])) // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5) // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload {s} [i0] p mem) @@ -20063,11 +19837,8 @@ func rewriteValuePPC64_OpPPC64OR_70(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_80(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR o0:(OR s1:(SLDconst x1:(MOVBZload [i1] {s} p mem) [48]) o1:(OR s2:(SLDconst x2:(MOVBZload [i2] {s} p mem) [40]) o2:(OR s3:(SLDconst x3:(MOVBZload [i3] {s} p mem) [32]) x4:(MOVWBRload (MOVDaddr [i4] p) mem)))) s0:(SLDconst x0:(MOVBZload [i0] {s} p mem) [56])) // cond: !config.BigEndian && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) // result: @mergePoint(b,x0,x1,x2,x3,x4) (MOVDBRload (MOVDaddr [i0] {s} p) mem) @@ -21568,11 +21339,8 @@ func rewriteValuePPC64_OpPPC64OR_80(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_90(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR x7:(MOVBZload [i7] {s} p mem) o5:(OR s6:(SLDconst x6:(MOVBZload [i6] {s} p mem) [8]) o4:(OR o3:(OR s4:(SLDconst x4:(MOVBZload [i4] {s} p mem) [24]) s0:(SLWconst x3:(MOVWBRload (MOVDaddr [i0] {s} p) mem) [32])) s5:(SLDconst x5:(MOVBZload [i5] {s} p mem) [16])))) // cond: !config.BigEndian && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x3, x4, x5, x6, x7) != nil && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(o3) && clobber(o4) && clobber(o5) && clobber(s0) && clobber(s4) && clobber(s5) && clobber(s6) // result: @mergePoint(b,x3,x4,x5,x6,x7) (MOVDBRload (MOVDaddr [i0] {s} p) mem) @@ -23097,11 +22865,8 @@ func rewriteValuePPC64_OpPPC64OR_90(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_100(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR o5:(OR o4:(OR s5:(SLDconst x5:(MOVBZload [i5] {s} p mem) [16]) o3:(OR s4:(SLDconst x4:(MOVBZload [i4] {s} p mem) [24]) s0:(SLWconst x3:(MOVWBRload (MOVDaddr [i0] {s} p) mem) [32]))) s6:(SLDconst x6:(MOVBZload [i6] {s} p mem) [8])) x7:(MOVBZload [i7] {s} p mem)) // cond: !config.BigEndian && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x3, x4, x5, x6, x7) != nil && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(o3) && clobber(o4) && clobber(o5) && clobber(s0) && clobber(s4) && clobber(s5) && clobber(s6) // result: @mergePoint(b,x3,x4,x5,x6,x7) (MOVDBRload (MOVDaddr [i0] {s} p) mem) @@ -24626,11 +24391,8 @@ func rewriteValuePPC64_OpPPC64OR_100(v *Value) bool { } func rewriteValuePPC64_OpPPC64OR_110(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (OR x7:(MOVBZload [i7] {s} p mem) o5:(OR o4:(OR o3:(OR s4:(SLDconst x4:(MOVBZload [i4] {s} p mem) [24]) s0:(SLDconst x3:(MOVWBRload (MOVDaddr [i0] {s} p) mem) [32])) s5:(SLDconst x5:(MOVBZload [i5] {s} p mem) [16])) s6:(SLDconst x6:(MOVBZload [i6] {s} p mem) [8]))) // cond: !config.BigEndian && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x3, x4, x5, x6, x7) != nil && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(o3) && clobber(o4) && clobber(o5) && clobber(s0) && clobber(s4) && clobber(s5) && clobber(s6) // result: @mergePoint(b,x3,x4,x5,x6,x7) (MOVDBRload (MOVDaddr [i0] {s} p) mem) @@ -26241,9 +26003,7 @@ func rewriteValuePPC64_OpPPC64SUB_0(v *Value) bool { } func rewriteValuePPC64_OpPPC64XOR_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (XOR (SLDconst x [c]) (SRDconst x [d])) // cond: d == 64-c // result: (ROTLconst [c] x) @@ -26719,9 +26479,7 @@ func rewriteValuePPC64_OpPPC64XORconst_0(v *Value) bool { } func rewriteValuePPC64_OpPopCount16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount16 x) // cond: // result: (POPCNTW (MOVHZreg x)) @@ -26736,9 +26494,7 @@ func rewriteValuePPC64_OpPopCount16_0(v *Value) bool { } func rewriteValuePPC64_OpPopCount32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount32 x) // cond: // result: (POPCNTW (MOVWZreg x)) @@ -26764,9 +26520,7 @@ func rewriteValuePPC64_OpPopCount64_0(v *Value) bool { } func rewriteValuePPC64_OpPopCount8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount8 x) // cond: // result: (POPCNTB (MOVBZreg x)) @@ -26814,9 +26568,7 @@ func rewriteValuePPC64_OpRound64F_0(v *Value) bool { } func rewriteValuePPC64_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux16 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVHZreg x) y) @@ -26861,9 +26613,7 @@ func rewriteValuePPC64_OpRsh16Ux16_0(v *Value) bool { } func rewriteValuePPC64_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux32 x (Const64 [c])) // cond: uint32(c) < 16 // result: (SRWconst (ZeroExt16to32 x) [c]) @@ -26950,9 +26700,7 @@ func rewriteValuePPC64_OpRsh16Ux32_0(v *Value) bool { } func rewriteValuePPC64_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux64 x (Const64 [c])) // cond: uint64(c) < 16 // result: (SRWconst (ZeroExt16to32 x) [c]) @@ -27054,9 +26802,7 @@ func rewriteValuePPC64_OpRsh16Ux64_0(v *Value) bool { } func rewriteValuePPC64_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux8 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVHZreg x) y) @@ -27101,9 +26847,7 @@ func rewriteValuePPC64_OpRsh16Ux8_0(v *Value) bool { } func rewriteValuePPC64_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x16 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVHreg x) y) @@ -27148,9 +26892,7 @@ func rewriteValuePPC64_OpRsh16x16_0(v *Value) bool { } func rewriteValuePPC64_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x32 x (Const64 [c])) // cond: uint32(c) < 16 // result: (SRAWconst (SignExt16to32 x) [c]) @@ -27237,9 +26979,7 @@ func rewriteValuePPC64_OpRsh16x32_0(v *Value) bool { } func rewriteValuePPC64_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x64 x (Const64 [c])) // cond: uint64(c) < 16 // result: (SRAWconst (SignExt16to32 x) [c]) @@ -27345,9 +27085,7 @@ func rewriteValuePPC64_OpRsh16x64_0(v *Value) bool { } func rewriteValuePPC64_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x8 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVHreg x) y) @@ -27392,9 +27130,7 @@ func rewriteValuePPC64_OpRsh16x8_0(v *Value) bool { } func rewriteValuePPC64_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux16 x y) // cond: shiftIsBounded(v) // result: (SRW x y) @@ -27435,9 +27171,7 @@ func rewriteValuePPC64_OpRsh32Ux16_0(v *Value) bool { } func rewriteValuePPC64_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux32 x (Const64 [c])) // cond: uint32(c) < 32 // result: (SRWconst x [c]) @@ -27516,9 +27250,7 @@ func rewriteValuePPC64_OpRsh32Ux32_0(v *Value) bool { } func rewriteValuePPC64_OpRsh32Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux64 x (Const64 [c])) // cond: uint64(c) < 32 // result: (SRWconst x [c]) @@ -27817,9 +27549,7 @@ func rewriteValuePPC64_OpRsh32Ux64_0(v *Value) bool { } func rewriteValuePPC64_OpRsh32Ux64_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux64 x y) // cond: // result: (SRW x (ORN y (MaskIfNotCarry (ADDconstForCarry [-32] y)))) @@ -27843,9 +27573,7 @@ func rewriteValuePPC64_OpRsh32Ux64_10(v *Value) bool { } func rewriteValuePPC64_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux8 x y) // cond: shiftIsBounded(v) // result: (SRW x y) @@ -27886,9 +27614,7 @@ func rewriteValuePPC64_OpRsh32Ux8_0(v *Value) bool { } func rewriteValuePPC64_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x16 x y) // cond: shiftIsBounded(v) // result: (SRAW x y) @@ -27929,9 +27655,7 @@ func rewriteValuePPC64_OpRsh32x16_0(v *Value) bool { } func rewriteValuePPC64_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x32 x (Const64 [c])) // cond: uint32(c) < 32 // result: (SRAWconst x [c]) @@ -28010,9 +27734,7 @@ func rewriteValuePPC64_OpRsh32x32_0(v *Value) bool { } func rewriteValuePPC64_OpRsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x64 x (Const64 [c])) // cond: uint64(c) < 32 // result: (SRAWconst x [c]) @@ -28313,9 +28035,7 @@ func rewriteValuePPC64_OpRsh32x64_0(v *Value) bool { } func rewriteValuePPC64_OpRsh32x64_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x64 x y) // cond: // result: (SRAW x (ORN y (MaskIfNotCarry (ADDconstForCarry [-32] y)))) @@ -28339,9 +28059,7 @@ func rewriteValuePPC64_OpRsh32x64_10(v *Value) bool { } func rewriteValuePPC64_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x8 x y) // cond: shiftIsBounded(v) // result: (SRAW x y) @@ -28382,9 +28100,7 @@ func rewriteValuePPC64_OpRsh32x8_0(v *Value) bool { } func rewriteValuePPC64_OpRsh64Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux16 x y) // cond: shiftIsBounded(v) // result: (SRD x y) @@ -28425,9 +28141,7 @@ func rewriteValuePPC64_OpRsh64Ux16_0(v *Value) bool { } func rewriteValuePPC64_OpRsh64Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux32 x (Const64 [c])) // cond: uint32(c) < 64 // result: (SRDconst x [c]) @@ -28506,9 +28220,7 @@ func rewriteValuePPC64_OpRsh64Ux32_0(v *Value) bool { } func rewriteValuePPC64_OpRsh64Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux64 x (Const64 [c])) // cond: uint64(c) < 64 // result: (SRDconst x [c]) @@ -28807,9 +28519,7 @@ func rewriteValuePPC64_OpRsh64Ux64_0(v *Value) bool { } func rewriteValuePPC64_OpRsh64Ux64_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux64 x y) // cond: // result: (SRD x (ORN y (MaskIfNotCarry (ADDconstForCarry [-64] y)))) @@ -28833,9 +28543,7 @@ func rewriteValuePPC64_OpRsh64Ux64_10(v *Value) bool { } func rewriteValuePPC64_OpRsh64Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux8 x y) // cond: shiftIsBounded(v) // result: (SRD x y) @@ -28876,9 +28584,7 @@ func rewriteValuePPC64_OpRsh64Ux8_0(v *Value) bool { } func rewriteValuePPC64_OpRsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x16 x y) // cond: shiftIsBounded(v) // result: (SRAD x y) @@ -28919,9 +28625,7 @@ func rewriteValuePPC64_OpRsh64x16_0(v *Value) bool { } func rewriteValuePPC64_OpRsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x32 x (Const64 [c])) // cond: uint32(c) < 64 // result: (SRADconst x [c]) @@ -29000,9 +28704,7 @@ func rewriteValuePPC64_OpRsh64x32_0(v *Value) bool { } func rewriteValuePPC64_OpRsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x64 x (Const64 [c])) // cond: uint64(c) < 64 // result: (SRADconst x [c]) @@ -29303,9 +29005,7 @@ func rewriteValuePPC64_OpRsh64x64_0(v *Value) bool { } func rewriteValuePPC64_OpRsh64x64_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x64 x y) // cond: // result: (SRAD x (ORN y (MaskIfNotCarry (ADDconstForCarry [-64] y)))) @@ -29329,9 +29029,7 @@ func rewriteValuePPC64_OpRsh64x64_10(v *Value) bool { } func rewriteValuePPC64_OpRsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x8 x y) // cond: shiftIsBounded(v) // result: (SRAD x y) @@ -29372,9 +29070,7 @@ func rewriteValuePPC64_OpRsh64x8_0(v *Value) bool { } func rewriteValuePPC64_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux16 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVBZreg x) y) @@ -29419,9 +29115,7 @@ func rewriteValuePPC64_OpRsh8Ux16_0(v *Value) bool { } func rewriteValuePPC64_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux32 x (Const64 [c])) // cond: uint32(c) < 8 // result: (SRWconst (ZeroExt8to32 x) [c]) @@ -29508,9 +29202,7 @@ func rewriteValuePPC64_OpRsh8Ux32_0(v *Value) bool { } func rewriteValuePPC64_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux64 x (Const64 [c])) // cond: uint64(c) < 8 // result: (SRWconst (ZeroExt8to32 x) [c]) @@ -29612,9 +29304,7 @@ func rewriteValuePPC64_OpRsh8Ux64_0(v *Value) bool { } func rewriteValuePPC64_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux8 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVBZreg x) y) @@ -29659,9 +29349,7 @@ func rewriteValuePPC64_OpRsh8Ux8_0(v *Value) bool { } func rewriteValuePPC64_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x16 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVBreg x) y) @@ -29706,9 +29394,7 @@ func rewriteValuePPC64_OpRsh8x16_0(v *Value) bool { } func rewriteValuePPC64_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x32 x (Const64 [c])) // cond: uint32(c) < 8 // result: (SRAWconst (SignExt8to32 x) [c]) @@ -29795,9 +29481,7 @@ func rewriteValuePPC64_OpRsh8x32_0(v *Value) bool { } func rewriteValuePPC64_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x64 x (Const64 [c])) // cond: uint64(c) < 8 // result: (SRAWconst (SignExt8to32 x) [c]) @@ -29903,9 +29587,7 @@ func rewriteValuePPC64_OpRsh8x64_0(v *Value) bool { } func rewriteValuePPC64_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x8 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVBreg x) y) @@ -30016,7 +29698,6 @@ func rewriteValuePPC64_OpSignExt8to64_0(v *Value) bool { } func rewriteValuePPC64_OpSlicemask_0(v *Value) bool { b := v.Block - _ = b // match: (Slicemask x) // cond: // result: (SRADconst (NEG x) [63]) @@ -30515,7 +30196,6 @@ func rewriteValuePPC64_OpXor8_0(v *Value) bool { } func rewriteValuePPC64_OpZero_0(v *Value) bool { b := v.Block - _ = b // match: (Zero [0] _ mem) // cond: // result: mem @@ -30698,7 +30378,6 @@ func rewriteValuePPC64_OpZero_0(v *Value) bool { } func rewriteValuePPC64_OpZero_10(v *Value) bool { b := v.Block - _ = b // match: (Zero [12] {t} destptr mem) // cond: t.(*types.Type).Alignment()%4 == 0 // result: (MOVWstorezero [8] destptr (MOVDstorezero [0] destptr mem)) diff --git a/src/cmd/compile/internal/ssa/rewriteS390X.go b/src/cmd/compile/internal/ssa/rewriteS390X.go index ce501a74ef..09b7fa4474 100644 --- a/src/cmd/compile/internal/ssa/rewriteS390X.go +++ b/src/cmd/compile/internal/ssa/rewriteS390X.go @@ -989,9 +989,7 @@ func rewriteValueS390X_OpAndB_0(v *Value) bool { } func rewriteValueS390X_OpAtomicAdd32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (AtomicAdd32 ptr val mem) // cond: // result: (AddTupleFirst32 val (LAA ptr val mem)) @@ -1012,9 +1010,7 @@ func rewriteValueS390X_OpAtomicAdd32_0(v *Value) bool { } func rewriteValueS390X_OpAtomicAdd64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (AtomicAdd64 ptr val mem) // cond: // result: (AddTupleFirst64 val (LAAG ptr val mem)) @@ -1193,7 +1189,6 @@ func rewriteValueS390X_OpAtomicStorePtrNoWB_0(v *Value) bool { } func rewriteValueS390X_OpAvg64u_0(v *Value) bool { b := v.Block - _ = b // match: (Avg64u x y) // cond: // result: (ADD (SRDconst (SUB x y) [1]) y) @@ -1216,9 +1211,7 @@ func rewriteValueS390X_OpAvg64u_0(v *Value) bool { } func rewriteValueS390X_OpBitLen64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen64 x) // cond: // result: (SUB (MOVDconst [64]) (FLOGR x)) @@ -1419,9 +1412,7 @@ func rewriteValueS390X_OpConstNil_0(v *Value) bool { } func rewriteValueS390X_OpCtz32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz32 x) // cond: // result: (SUB (MOVDconst [64]) (FLOGR (MOVWZreg (ANDW (SUBWconst [1] x) (NOTW x))))) @@ -1461,9 +1452,7 @@ func rewriteValueS390X_OpCtz32NonZero_0(v *Value) bool { } func rewriteValueS390X_OpCtz64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz64 x) // cond: // result: (SUB (MOVDconst [64]) (FLOGR (AND (SUBconst [1] x) (NOT x)))) @@ -1611,9 +1600,7 @@ func rewriteValueS390X_OpCvt64to64F_0(v *Value) bool { } func rewriteValueS390X_OpDiv16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16 x y) // cond: // result: (DIVW (MOVHreg x) (MOVHreg y)) @@ -1633,9 +1620,7 @@ func rewriteValueS390X_OpDiv16_0(v *Value) bool { } func rewriteValueS390X_OpDiv16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16u x y) // cond: // result: (DIVWU (MOVHZreg x) (MOVHZreg y)) @@ -1655,9 +1640,7 @@ func rewriteValueS390X_OpDiv16u_0(v *Value) bool { } func rewriteValueS390X_OpDiv32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32 x y) // cond: // result: (DIVW (MOVWreg x) y) @@ -1689,9 +1672,7 @@ func rewriteValueS390X_OpDiv32F_0(v *Value) bool { } func rewriteValueS390X_OpDiv32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32u x y) // cond: // result: (DIVWU (MOVWZreg x) y) @@ -1751,9 +1732,7 @@ func rewriteValueS390X_OpDiv64u_0(v *Value) bool { } func rewriteValueS390X_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 x y) // cond: // result: (DIVW (MOVBreg x) (MOVBreg y)) @@ -1773,9 +1752,7 @@ func rewriteValueS390X_OpDiv8_0(v *Value) bool { } func rewriteValueS390X_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u x y) // cond: // result: (DIVWU (MOVBZreg x) (MOVBZreg y)) @@ -1795,9 +1772,7 @@ func rewriteValueS390X_OpDiv8u_0(v *Value) bool { } func rewriteValueS390X_OpEq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq16 x y) // cond: // result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVHreg x) (MOVHreg y))) @@ -1825,9 +1800,7 @@ func rewriteValueS390X_OpEq16_0(v *Value) bool { } func rewriteValueS390X_OpEq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq32 x y) // cond: // result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMPW x y)) @@ -1851,9 +1824,7 @@ func rewriteValueS390X_OpEq32_0(v *Value) bool { } func rewriteValueS390X_OpEq32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq32F x y) // cond: // result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (FCMPS x y)) @@ -1877,9 +1848,7 @@ func rewriteValueS390X_OpEq32F_0(v *Value) bool { } func rewriteValueS390X_OpEq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq64 x y) // cond: // result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMP x y)) @@ -1903,9 +1872,7 @@ func rewriteValueS390X_OpEq64_0(v *Value) bool { } func rewriteValueS390X_OpEq64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq64F x y) // cond: // result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (FCMP x y)) @@ -1929,9 +1896,7 @@ func rewriteValueS390X_OpEq64F_0(v *Value) bool { } func rewriteValueS390X_OpEq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq8 x y) // cond: // result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVBreg x) (MOVBreg y))) @@ -1959,9 +1924,7 @@ func rewriteValueS390X_OpEq8_0(v *Value) bool { } func rewriteValueS390X_OpEqB_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqB x y) // cond: // result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVBreg x) (MOVBreg y))) @@ -1989,9 +1952,7 @@ func rewriteValueS390X_OpEqB_0(v *Value) bool { } func rewriteValueS390X_OpEqPtr_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqPtr x y) // cond: // result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMP x y)) @@ -2027,9 +1988,7 @@ func rewriteValueS390X_OpFloor_0(v *Value) bool { } func rewriteValueS390X_OpGeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16 x y) // cond: // result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVHreg x) (MOVHreg y))) @@ -2057,9 +2016,7 @@ func rewriteValueS390X_OpGeq16_0(v *Value) bool { } func rewriteValueS390X_OpGeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16U x y) // cond: // result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPWU (MOVHZreg x) (MOVHZreg y))) @@ -2087,9 +2044,7 @@ func rewriteValueS390X_OpGeq16U_0(v *Value) bool { } func rewriteValueS390X_OpGeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32 x y) // cond: // result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPW x y)) @@ -2113,9 +2068,7 @@ func rewriteValueS390X_OpGeq32_0(v *Value) bool { } func rewriteValueS390X_OpGeq32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32F x y) // cond: // result: (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMPS x y)) @@ -2139,9 +2092,7 @@ func rewriteValueS390X_OpGeq32F_0(v *Value) bool { } func rewriteValueS390X_OpGeq32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32U x y) // cond: // result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPWU x y)) @@ -2165,9 +2116,7 @@ func rewriteValueS390X_OpGeq32U_0(v *Value) bool { } func rewriteValueS390X_OpGeq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq64 x y) // cond: // result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMP x y)) @@ -2191,9 +2140,7 @@ func rewriteValueS390X_OpGeq64_0(v *Value) bool { } func rewriteValueS390X_OpGeq64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq64F x y) // cond: // result: (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMP x y)) @@ -2217,9 +2164,7 @@ func rewriteValueS390X_OpGeq64F_0(v *Value) bool { } func rewriteValueS390X_OpGeq64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq64U x y) // cond: // result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPU x y)) @@ -2243,9 +2188,7 @@ func rewriteValueS390X_OpGeq64U_0(v *Value) bool { } func rewriteValueS390X_OpGeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8 x y) // cond: // result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVBreg x) (MOVBreg y))) @@ -2273,9 +2216,7 @@ func rewriteValueS390X_OpGeq8_0(v *Value) bool { } func rewriteValueS390X_OpGeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8U x y) // cond: // result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPWU (MOVBZreg x) (MOVBZreg y))) @@ -2341,9 +2282,7 @@ func rewriteValueS390X_OpGetG_0(v *Value) bool { } func rewriteValueS390X_OpGreater16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16 x y) // cond: // result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVHreg x) (MOVHreg y))) @@ -2371,9 +2310,7 @@ func rewriteValueS390X_OpGreater16_0(v *Value) bool { } func rewriteValueS390X_OpGreater16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16U x y) // cond: // result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPWU (MOVHZreg x) (MOVHZreg y))) @@ -2401,9 +2338,7 @@ func rewriteValueS390X_OpGreater16U_0(v *Value) bool { } func rewriteValueS390X_OpGreater32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater32 x y) // cond: // result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPW x y)) @@ -2427,9 +2362,7 @@ func rewriteValueS390X_OpGreater32_0(v *Value) bool { } func rewriteValueS390X_OpGreater32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater32F x y) // cond: // result: (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMPS x y)) @@ -2453,9 +2386,7 @@ func rewriteValueS390X_OpGreater32F_0(v *Value) bool { } func rewriteValueS390X_OpGreater32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater32U x y) // cond: // result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPWU x y)) @@ -2479,9 +2410,7 @@ func rewriteValueS390X_OpGreater32U_0(v *Value) bool { } func rewriteValueS390X_OpGreater64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater64 x y) // cond: // result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMP x y)) @@ -2505,9 +2434,7 @@ func rewriteValueS390X_OpGreater64_0(v *Value) bool { } func rewriteValueS390X_OpGreater64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater64F x y) // cond: // result: (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMP x y)) @@ -2531,9 +2458,7 @@ func rewriteValueS390X_OpGreater64F_0(v *Value) bool { } func rewriteValueS390X_OpGreater64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater64U x y) // cond: // result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPU x y)) @@ -2557,9 +2482,7 @@ func rewriteValueS390X_OpGreater64U_0(v *Value) bool { } func rewriteValueS390X_OpGreater8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8 x y) // cond: // result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVBreg x) (MOVBreg y))) @@ -2587,9 +2510,7 @@ func rewriteValueS390X_OpGreater8_0(v *Value) bool { } func rewriteValueS390X_OpGreater8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8U x y) // cond: // result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPWU (MOVBZreg x) (MOVBZreg y))) @@ -2617,9 +2538,7 @@ func rewriteValueS390X_OpGreater8U_0(v *Value) bool { } func rewriteValueS390X_OpHmul32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul32 x y) // cond: // result: (SRDconst [32] (MULLD (MOVWreg x) (MOVWreg y))) @@ -2642,9 +2561,7 @@ func rewriteValueS390X_OpHmul32_0(v *Value) bool { } func rewriteValueS390X_OpHmul32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Hmul32u x y) // cond: // result: (SRDconst [32] (MULLD (MOVWZreg x) (MOVWZreg y))) @@ -2730,9 +2647,7 @@ func rewriteValueS390X_OpInterCall_0(v *Value) bool { } func rewriteValueS390X_OpIsInBounds_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (IsInBounds idx len) // cond: // result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPU idx len)) @@ -2756,9 +2671,7 @@ func rewriteValueS390X_OpIsInBounds_0(v *Value) bool { } func rewriteValueS390X_OpIsNonNil_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (IsNonNil p) // cond: // result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMPconst p [0])) @@ -2780,9 +2693,7 @@ func rewriteValueS390X_OpIsNonNil_0(v *Value) bool { } func rewriteValueS390X_OpIsSliceInBounds_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (IsSliceInBounds idx len) // cond: // result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPU idx len)) @@ -2806,9 +2717,7 @@ func rewriteValueS390X_OpIsSliceInBounds_0(v *Value) bool { } func rewriteValueS390X_OpLeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16 x y) // cond: // result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVHreg x) (MOVHreg y))) @@ -2836,9 +2745,7 @@ func rewriteValueS390X_OpLeq16_0(v *Value) bool { } func rewriteValueS390X_OpLeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16U x y) // cond: // result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPWU (MOVHZreg x) (MOVHZreg y))) @@ -2866,9 +2773,7 @@ func rewriteValueS390X_OpLeq16U_0(v *Value) bool { } func rewriteValueS390X_OpLeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32 x y) // cond: // result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPW x y)) @@ -2892,9 +2797,7 @@ func rewriteValueS390X_OpLeq32_0(v *Value) bool { } func rewriteValueS390X_OpLeq32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32F x y) // cond: // result: (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMPS y x)) @@ -2918,9 +2821,7 @@ func rewriteValueS390X_OpLeq32F_0(v *Value) bool { } func rewriteValueS390X_OpLeq32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32U x y) // cond: // result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPWU x y)) @@ -2944,9 +2845,7 @@ func rewriteValueS390X_OpLeq32U_0(v *Value) bool { } func rewriteValueS390X_OpLeq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq64 x y) // cond: // result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMP x y)) @@ -2970,9 +2869,7 @@ func rewriteValueS390X_OpLeq64_0(v *Value) bool { } func rewriteValueS390X_OpLeq64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq64F x y) // cond: // result: (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMP y x)) @@ -2996,9 +2893,7 @@ func rewriteValueS390X_OpLeq64F_0(v *Value) bool { } func rewriteValueS390X_OpLeq64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq64U x y) // cond: // result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPU x y)) @@ -3022,9 +2917,7 @@ func rewriteValueS390X_OpLeq64U_0(v *Value) bool { } func rewriteValueS390X_OpLeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8 x y) // cond: // result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVBreg x) (MOVBreg y))) @@ -3052,9 +2945,7 @@ func rewriteValueS390X_OpLeq8_0(v *Value) bool { } func rewriteValueS390X_OpLeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8U x y) // cond: // result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPWU (MOVBZreg x) (MOVBZreg y))) @@ -3082,9 +2973,7 @@ func rewriteValueS390X_OpLeq8U_0(v *Value) bool { } func rewriteValueS390X_OpLess16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16 x y) // cond: // result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVHreg x) (MOVHreg y))) @@ -3112,9 +3001,7 @@ func rewriteValueS390X_OpLess16_0(v *Value) bool { } func rewriteValueS390X_OpLess16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16U x y) // cond: // result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPWU (MOVHZreg x) (MOVHZreg y))) @@ -3142,9 +3029,7 @@ func rewriteValueS390X_OpLess16U_0(v *Value) bool { } func rewriteValueS390X_OpLess32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less32 x y) // cond: // result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPW x y)) @@ -3168,9 +3053,7 @@ func rewriteValueS390X_OpLess32_0(v *Value) bool { } func rewriteValueS390X_OpLess32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less32F x y) // cond: // result: (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMPS y x)) @@ -3194,9 +3077,7 @@ func rewriteValueS390X_OpLess32F_0(v *Value) bool { } func rewriteValueS390X_OpLess32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less32U x y) // cond: // result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPWU x y)) @@ -3220,9 +3101,7 @@ func rewriteValueS390X_OpLess32U_0(v *Value) bool { } func rewriteValueS390X_OpLess64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less64 x y) // cond: // result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMP x y)) @@ -3246,9 +3125,7 @@ func rewriteValueS390X_OpLess64_0(v *Value) bool { } func rewriteValueS390X_OpLess64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less64F x y) // cond: // result: (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMP y x)) @@ -3272,9 +3149,7 @@ func rewriteValueS390X_OpLess64F_0(v *Value) bool { } func rewriteValueS390X_OpLess64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less64U x y) // cond: // result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPU x y)) @@ -3298,9 +3173,7 @@ func rewriteValueS390X_OpLess64U_0(v *Value) bool { } func rewriteValueS390X_OpLess8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8 x y) // cond: // result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVBreg x) (MOVBreg y))) @@ -3328,9 +3201,7 @@ func rewriteValueS390X_OpLess8_0(v *Value) bool { } func rewriteValueS390X_OpLess8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8U x y) // cond: // result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPWU (MOVBZreg x) (MOVBZreg y))) @@ -3519,9 +3390,7 @@ func rewriteValueS390X_OpLocalAddr_0(v *Value) bool { } func rewriteValueS390X_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x16 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3565,9 +3434,7 @@ func rewriteValueS390X_OpLsh16x16_0(v *Value) bool { } func rewriteValueS390X_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x32 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3609,9 +3476,7 @@ func rewriteValueS390X_OpLsh16x32_0(v *Value) bool { } func rewriteValueS390X_OpLsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x64 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3653,9 +3518,7 @@ func rewriteValueS390X_OpLsh16x64_0(v *Value) bool { } func rewriteValueS390X_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x8 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3699,9 +3562,7 @@ func rewriteValueS390X_OpLsh16x8_0(v *Value) bool { } func rewriteValueS390X_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x16 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3745,9 +3606,7 @@ func rewriteValueS390X_OpLsh32x16_0(v *Value) bool { } func rewriteValueS390X_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x32 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3789,9 +3648,7 @@ func rewriteValueS390X_OpLsh32x32_0(v *Value) bool { } func rewriteValueS390X_OpLsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x64 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3833,9 +3690,7 @@ func rewriteValueS390X_OpLsh32x64_0(v *Value) bool { } func rewriteValueS390X_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x8 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -3879,9 +3734,7 @@ func rewriteValueS390X_OpLsh32x8_0(v *Value) bool { } func rewriteValueS390X_OpLsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x16 x y) // cond: shiftIsBounded(v) // result: (SLD x y) @@ -3925,9 +3778,7 @@ func rewriteValueS390X_OpLsh64x16_0(v *Value) bool { } func rewriteValueS390X_OpLsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x32 x y) // cond: shiftIsBounded(v) // result: (SLD x y) @@ -3969,9 +3820,7 @@ func rewriteValueS390X_OpLsh64x32_0(v *Value) bool { } func rewriteValueS390X_OpLsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x64 x y) // cond: shiftIsBounded(v) // result: (SLD x y) @@ -4013,9 +3862,7 @@ func rewriteValueS390X_OpLsh64x64_0(v *Value) bool { } func rewriteValueS390X_OpLsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x8 x y) // cond: shiftIsBounded(v) // result: (SLD x y) @@ -4059,9 +3906,7 @@ func rewriteValueS390X_OpLsh64x8_0(v *Value) bool { } func rewriteValueS390X_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x16 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -4105,9 +3950,7 @@ func rewriteValueS390X_OpLsh8x16_0(v *Value) bool { } func rewriteValueS390X_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x32 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -4149,9 +3992,7 @@ func rewriteValueS390X_OpLsh8x32_0(v *Value) bool { } func rewriteValueS390X_OpLsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x64 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -4193,9 +4034,7 @@ func rewriteValueS390X_OpLsh8x64_0(v *Value) bool { } func rewriteValueS390X_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x8 x y) // cond: shiftIsBounded(v) // result: (SLW x y) @@ -4239,9 +4078,7 @@ func rewriteValueS390X_OpLsh8x8_0(v *Value) bool { } func rewriteValueS390X_OpMod16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16 x y) // cond: // result: (MODW (MOVHreg x) (MOVHreg y)) @@ -4261,9 +4098,7 @@ func rewriteValueS390X_OpMod16_0(v *Value) bool { } func rewriteValueS390X_OpMod16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16u x y) // cond: // result: (MODWU (MOVHZreg x) (MOVHZreg y)) @@ -4283,9 +4118,7 @@ func rewriteValueS390X_OpMod16u_0(v *Value) bool { } func rewriteValueS390X_OpMod32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32 x y) // cond: // result: (MODW (MOVWreg x) y) @@ -4303,9 +4136,7 @@ func rewriteValueS390X_OpMod32_0(v *Value) bool { } func rewriteValueS390X_OpMod32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32u x y) // cond: // result: (MODWU (MOVWZreg x) y) @@ -4351,9 +4182,7 @@ func rewriteValueS390X_OpMod64u_0(v *Value) bool { } func rewriteValueS390X_OpMod8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8 x y) // cond: // result: (MODW (MOVBreg x) (MOVBreg y)) @@ -4373,9 +4202,7 @@ func rewriteValueS390X_OpMod8_0(v *Value) bool { } func rewriteValueS390X_OpMod8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8u x y) // cond: // result: (MODWU (MOVBZreg x) (MOVBZreg y)) @@ -4395,9 +4222,7 @@ func rewriteValueS390X_OpMod8u_0(v *Value) bool { } func rewriteValueS390X_OpMove_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Move [0] _ _ mem) // cond: // result: mem @@ -4650,9 +4475,7 @@ func rewriteValueS390X_OpMove_0(v *Value) bool { } func rewriteValueS390X_OpMove_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Move [7] dst src mem) // cond: // result: (MOVBstore [6] dst (MOVBZload [6] src mem) (MOVHstore [4] dst (MOVHZload [4] src mem) (MOVWstore dst (MOVWZload src mem) mem))) @@ -4976,9 +4799,7 @@ func rewriteValueS390X_OpNeg8_0(v *Value) bool { } func rewriteValueS390X_OpNeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq16 x y) // cond: // result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVHreg x) (MOVHreg y))) @@ -5006,9 +4827,7 @@ func rewriteValueS390X_OpNeq16_0(v *Value) bool { } func rewriteValueS390X_OpNeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq32 x y) // cond: // result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMPW x y)) @@ -5032,9 +4851,7 @@ func rewriteValueS390X_OpNeq32_0(v *Value) bool { } func rewriteValueS390X_OpNeq32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq32F x y) // cond: // result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (FCMPS x y)) @@ -5058,9 +4875,7 @@ func rewriteValueS390X_OpNeq32F_0(v *Value) bool { } func rewriteValueS390X_OpNeq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq64 x y) // cond: // result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMP x y)) @@ -5084,9 +4899,7 @@ func rewriteValueS390X_OpNeq64_0(v *Value) bool { } func rewriteValueS390X_OpNeq64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq64F x y) // cond: // result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (FCMP x y)) @@ -5110,9 +4923,7 @@ func rewriteValueS390X_OpNeq64F_0(v *Value) bool { } func rewriteValueS390X_OpNeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq8 x y) // cond: // result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVBreg x) (MOVBreg y))) @@ -5140,9 +4951,7 @@ func rewriteValueS390X_OpNeq8_0(v *Value) bool { } func rewriteValueS390X_OpNeqB_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (NeqB x y) // cond: // result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMPW (MOVBreg x) (MOVBreg y))) @@ -5170,9 +4979,7 @@ func rewriteValueS390X_OpNeqB_0(v *Value) bool { } func rewriteValueS390X_OpNeqPtr_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (NeqPtr x y) // cond: // result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMP x y)) @@ -5222,9 +5029,7 @@ func rewriteValueS390X_OpNot_0(v *Value) bool { } func rewriteValueS390X_OpOffPtr_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OffPtr [off] ptr:(SP)) // cond: // result: (MOVDaddr [off] ptr) @@ -5339,9 +5144,7 @@ func rewriteValueS390X_OpOrB_0(v *Value) bool { } func rewriteValueS390X_OpPopCount16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount16 x) // cond: // result: (MOVBZreg (SumBytes2 (POPCNT x))) @@ -5358,9 +5161,7 @@ func rewriteValueS390X_OpPopCount16_0(v *Value) bool { } func rewriteValueS390X_OpPopCount32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount32 x) // cond: // result: (MOVBZreg (SumBytes4 (POPCNT x))) @@ -5377,9 +5178,7 @@ func rewriteValueS390X_OpPopCount32_0(v *Value) bool { } func rewriteValueS390X_OpPopCount64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount64 x) // cond: // result: (MOVBZreg (SumBytes8 (POPCNT x))) @@ -5396,9 +5195,7 @@ func rewriteValueS390X_OpPopCount64_0(v *Value) bool { } func rewriteValueS390X_OpPopCount8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (PopCount8 x) // cond: // result: (POPCNT (MOVBZreg x)) @@ -5487,9 +5284,7 @@ func rewriteValueS390X_OpRoundToEven_0(v *Value) bool { } func rewriteValueS390X_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux16 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVHZreg x) y) @@ -5537,9 +5332,7 @@ func rewriteValueS390X_OpRsh16Ux16_0(v *Value) bool { } func rewriteValueS390X_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux32 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVHZreg x) y) @@ -5585,9 +5378,7 @@ func rewriteValueS390X_OpRsh16Ux32_0(v *Value) bool { } func rewriteValueS390X_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux64 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVHZreg x) y) @@ -5633,9 +5424,7 @@ func rewriteValueS390X_OpRsh16Ux64_0(v *Value) bool { } func rewriteValueS390X_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux8 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVHZreg x) y) @@ -5683,9 +5472,7 @@ func rewriteValueS390X_OpRsh16Ux8_0(v *Value) bool { } func rewriteValueS390X_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x16 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVHreg x) y) @@ -5731,9 +5518,7 @@ func rewriteValueS390X_OpRsh16x16_0(v *Value) bool { } func rewriteValueS390X_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x32 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVHreg x) y) @@ -5777,9 +5562,7 @@ func rewriteValueS390X_OpRsh16x32_0(v *Value) bool { } func rewriteValueS390X_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x64 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVHreg x) y) @@ -5823,9 +5606,7 @@ func rewriteValueS390X_OpRsh16x64_0(v *Value) bool { } func rewriteValueS390X_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x8 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVHreg x) y) @@ -5871,9 +5652,7 @@ func rewriteValueS390X_OpRsh16x8_0(v *Value) bool { } func rewriteValueS390X_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux16 x y) // cond: shiftIsBounded(v) // result: (SRW x y) @@ -5917,9 +5696,7 @@ func rewriteValueS390X_OpRsh32Ux16_0(v *Value) bool { } func rewriteValueS390X_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux32 x y) // cond: shiftIsBounded(v) // result: (SRW x y) @@ -5961,9 +5738,7 @@ func rewriteValueS390X_OpRsh32Ux32_0(v *Value) bool { } func rewriteValueS390X_OpRsh32Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux64 x y) // cond: shiftIsBounded(v) // result: (SRW x y) @@ -6005,9 +5780,7 @@ func rewriteValueS390X_OpRsh32Ux64_0(v *Value) bool { } func rewriteValueS390X_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux8 x y) // cond: shiftIsBounded(v) // result: (SRW x y) @@ -6051,9 +5824,7 @@ func rewriteValueS390X_OpRsh32Ux8_0(v *Value) bool { } func rewriteValueS390X_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x16 x y) // cond: shiftIsBounded(v) // result: (SRAW x y) @@ -6095,7 +5866,6 @@ func rewriteValueS390X_OpRsh32x16_0(v *Value) bool { } func rewriteValueS390X_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x32 x y) // cond: shiftIsBounded(v) // result: (SRAW x y) @@ -6135,7 +5905,6 @@ func rewriteValueS390X_OpRsh32x32_0(v *Value) bool { } func rewriteValueS390X_OpRsh32x64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x64 x y) // cond: shiftIsBounded(v) // result: (SRAW x y) @@ -6175,9 +5944,7 @@ func rewriteValueS390X_OpRsh32x64_0(v *Value) bool { } func rewriteValueS390X_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x8 x y) // cond: shiftIsBounded(v) // result: (SRAW x y) @@ -6219,9 +5986,7 @@ func rewriteValueS390X_OpRsh32x8_0(v *Value) bool { } func rewriteValueS390X_OpRsh64Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux16 x y) // cond: shiftIsBounded(v) // result: (SRD x y) @@ -6265,9 +6030,7 @@ func rewriteValueS390X_OpRsh64Ux16_0(v *Value) bool { } func rewriteValueS390X_OpRsh64Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux32 x y) // cond: shiftIsBounded(v) // result: (SRD x y) @@ -6309,9 +6072,7 @@ func rewriteValueS390X_OpRsh64Ux32_0(v *Value) bool { } func rewriteValueS390X_OpRsh64Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux64 x y) // cond: shiftIsBounded(v) // result: (SRD x y) @@ -6353,9 +6114,7 @@ func rewriteValueS390X_OpRsh64Ux64_0(v *Value) bool { } func rewriteValueS390X_OpRsh64Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux8 x y) // cond: shiftIsBounded(v) // result: (SRD x y) @@ -6399,9 +6158,7 @@ func rewriteValueS390X_OpRsh64Ux8_0(v *Value) bool { } func rewriteValueS390X_OpRsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x16 x y) // cond: shiftIsBounded(v) // result: (SRAD x y) @@ -6443,7 +6200,6 @@ func rewriteValueS390X_OpRsh64x16_0(v *Value) bool { } func rewriteValueS390X_OpRsh64x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x32 x y) // cond: shiftIsBounded(v) // result: (SRAD x y) @@ -6483,7 +6239,6 @@ func rewriteValueS390X_OpRsh64x32_0(v *Value) bool { } func rewriteValueS390X_OpRsh64x64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x64 x y) // cond: shiftIsBounded(v) // result: (SRAD x y) @@ -6523,9 +6278,7 @@ func rewriteValueS390X_OpRsh64x64_0(v *Value) bool { } func rewriteValueS390X_OpRsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x8 x y) // cond: shiftIsBounded(v) // result: (SRAD x y) @@ -6567,9 +6320,7 @@ func rewriteValueS390X_OpRsh64x8_0(v *Value) bool { } func rewriteValueS390X_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux16 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVBZreg x) y) @@ -6617,9 +6368,7 @@ func rewriteValueS390X_OpRsh8Ux16_0(v *Value) bool { } func rewriteValueS390X_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux32 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVBZreg x) y) @@ -6665,9 +6414,7 @@ func rewriteValueS390X_OpRsh8Ux32_0(v *Value) bool { } func rewriteValueS390X_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux64 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVBZreg x) y) @@ -6713,9 +6460,7 @@ func rewriteValueS390X_OpRsh8Ux64_0(v *Value) bool { } func rewriteValueS390X_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux8 x y) // cond: shiftIsBounded(v) // result: (SRW (MOVBZreg x) y) @@ -6763,9 +6508,7 @@ func rewriteValueS390X_OpRsh8Ux8_0(v *Value) bool { } func rewriteValueS390X_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x16 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVBreg x) y) @@ -6811,9 +6554,7 @@ func rewriteValueS390X_OpRsh8x16_0(v *Value) bool { } func rewriteValueS390X_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x32 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVBreg x) y) @@ -6857,9 +6598,7 @@ func rewriteValueS390X_OpRsh8x32_0(v *Value) bool { } func rewriteValueS390X_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x64 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVBreg x) y) @@ -6903,9 +6642,7 @@ func rewriteValueS390X_OpRsh8x64_0(v *Value) bool { } func rewriteValueS390X_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x8 x y) // cond: shiftIsBounded(v) // result: (SRAW (MOVBreg x) y) @@ -7808,7 +7545,6 @@ func rewriteValueS390X_OpS390XADDconst_0(v *Value) bool { } func rewriteValueS390X_OpS390XADDload_0(v *Value) bool { b := v.Block - _ = b // match: (ADDload [off] {sym} x ptr1 (FMOVDstore [off] {sym} ptr2 y _)) // cond: isSamePtr(ptr1, ptr2) // result: (ADD x (LGDR y)) @@ -7899,9 +7635,7 @@ func rewriteValueS390X_OpS390XADDload_0(v *Value) bool { } func rewriteValueS390X_OpS390XAND_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (AND x (MOVDconst [c])) // cond: is32Bit(c) && c < 0 // result: (ANDconst [c] x) @@ -8727,7 +8461,6 @@ func rewriteValueS390X_OpS390XANDconst_0(v *Value) bool { } func rewriteValueS390X_OpS390XANDload_0(v *Value) bool { b := v.Block - _ = b // match: (ANDload [off] {sym} x ptr1 (FMOVDstore [off] {sym} ptr2 y _)) // cond: isSamePtr(ptr1, ptr2) // result: (AND x (LGDR y)) @@ -8818,7 +8551,6 @@ func rewriteValueS390X_OpS390XANDload_0(v *Value) bool { } func rewriteValueS390X_OpS390XCMP_0(v *Value) bool { b := v.Block - _ = b // match: (CMP x (MOVDconst [c])) // cond: is32Bit(c) // result: (CMPconst x [c]) @@ -8863,7 +8595,6 @@ func rewriteValueS390X_OpS390XCMP_0(v *Value) bool { } func rewriteValueS390X_OpS390XCMPU_0(v *Value) bool { b := v.Block - _ = b // match: (CMPU x (MOVDconst [c])) // cond: isU32Bit(c) // result: (CMPUconst x [int64(int32(c))]) @@ -9093,7 +8824,6 @@ func rewriteValueS390X_OpS390XCMPUconst_10(v *Value) bool { } func rewriteValueS390X_OpS390XCMPW_0(v *Value) bool { b := v.Block - _ = b // match: (CMPW x (MOVDconst [c])) // cond: // result: (CMPWconst x [int64(int32(c))]) @@ -9196,7 +8926,6 @@ func rewriteValueS390X_OpS390XCMPW_0(v *Value) bool { } func rewriteValueS390X_OpS390XCMPWU_0(v *Value) bool { b := v.Block - _ = b // match: (CMPWU x (MOVDconst [c])) // cond: // result: (CMPWUconst x [int64(int32(c))]) @@ -10783,7 +10512,6 @@ func rewriteValueS390X_OpS390XFSUBS_0(v *Value) bool { } func rewriteValueS390X_OpS390XLDGR_0(v *Value) bool { b := v.Block - _ = b // match: (LDGR (SRDconst [1] (SLDconst [1] x))) // cond: // result: (LPDFR (LDGR x)) @@ -11481,9 +11209,7 @@ func rewriteValueS390X_OpS390XMOVBZreg_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVBZreg_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVBZreg x:(MOVBZreg _)) // cond: // result: (MOVDreg x) @@ -11892,9 +11618,7 @@ func rewriteValueS390X_OpS390XMOVBloadidx_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVBreg_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVBreg x:(MOVBload _ _)) // cond: // result: (MOVDreg x) @@ -15313,7 +15037,6 @@ func rewriteValueS390X_OpS390XMOVDloadidx_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVDnop_0(v *Value) bool { b := v.Block - _ = b // match: (MOVDnop x) // cond: t.Compare(x.Type) == types.CMPeq // result: x @@ -15563,7 +15286,6 @@ func rewriteValueS390X_OpS390XMOVDnop_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVDnop_10(v *Value) bool { b := v.Block - _ = b // match: (MOVDnop x:(MOVBloadidx [off] {sym} ptr idx mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVBloadidx [off] {sym} ptr idx mem) @@ -15742,7 +15464,6 @@ func rewriteValueS390X_OpS390XMOVDnop_10(v *Value) bool { } func rewriteValueS390X_OpS390XMOVDreg_0(v *Value) bool { b := v.Block - _ = b // match: (MOVDreg x) // cond: t.Compare(x.Type) == types.CMPeq // result: x @@ -15975,7 +15696,6 @@ func rewriteValueS390X_OpS390XMOVDreg_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVDreg_10(v *Value) bool { b := v.Block - _ = b // match: (MOVDreg x:(MOVBZloadidx [off] {sym} ptr idx mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVBZloadidx [off] {sym} ptr idx mem) @@ -17887,7 +17607,6 @@ func rewriteValueS390X_OpS390XMOVHZloadidx_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVHZreg_0(v *Value) bool { b := v.Block - _ = b // match: (MOVHZreg x:(MOVBZload _ _)) // cond: // result: (MOVDreg x) @@ -18064,9 +17783,7 @@ func rewriteValueS390X_OpS390XMOVHZreg_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVHZreg_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVHZreg x:(MOVHloadidx [off] {sym} ptr idx mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVHZloadidx [off] {sym} ptr idx mem) @@ -18358,7 +18075,6 @@ func rewriteValueS390X_OpS390XMOVHloadidx_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVHreg_0(v *Value) bool { b := v.Block - _ = b // match: (MOVHreg x:(MOVBload _ _)) // cond: // result: (MOVDreg x) @@ -18506,9 +18222,7 @@ func rewriteValueS390X_OpS390XMOVHreg_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVHreg_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVHreg x:(MOVHload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVHload [off] {sym} ptr mem) @@ -18991,9 +18705,7 @@ func rewriteValueS390X_OpS390XMOVHstore_10(v *Value) bool { } func rewriteValueS390X_OpS390XMOVHstoreconst_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVHstoreconst [sc] {s} (ADDconst [off] ptr) mem) // cond: isU12Bit(ValAndOff(sc).Off()+off) // result: (MOVHstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) @@ -20802,7 +20514,6 @@ func rewriteValueS390X_OpS390XMOVWZloadidx_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVWZreg_0(v *Value) bool { b := v.Block - _ = b // match: (MOVWZreg x:(MOVBZload _ _)) // cond: // result: (MOVDreg x) @@ -20950,7 +20661,6 @@ func rewriteValueS390X_OpS390XMOVWZreg_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVWZreg_10(v *Value) bool { b := v.Block - _ = b // match: (MOVWZreg x:(MOVWload [off] {sym} ptr mem)) // cond: x.Uses == 1 && clobber(x) // result: @x.Block (MOVWZload [off] {sym} ptr mem) @@ -21411,7 +21121,6 @@ func rewriteValueS390X_OpS390XMOVWreg_0(v *Value) bool { } func rewriteValueS390X_OpS390XMOVWreg_10(v *Value) bool { b := v.Block - _ = b // match: (MOVWreg x:(MOVWreg _)) // cond: // result: (MOVDreg x) @@ -21960,9 +21669,7 @@ func rewriteValueS390X_OpS390XMOVWstore_10(v *Value) bool { } func rewriteValueS390X_OpS390XMOVWstoreconst_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (MOVWstoreconst [sc] {s} (ADDconst [off] ptr) mem) // cond: isU12Bit(ValAndOff(sc).Off()+off) // result: (MOVWstoreconst [ValAndOff(sc).add(off)] {s} ptr mem) @@ -22741,7 +22448,6 @@ func rewriteValueS390X_OpS390XMULLD_0(v *Value) bool { } func rewriteValueS390X_OpS390XMULLDconst_0(v *Value) bool { b := v.Block - _ = b // match: (MULLDconst [-1] x) // cond: // result: (NEG x) @@ -22844,7 +22550,6 @@ func rewriteValueS390X_OpS390XMULLDconst_0(v *Value) bool { } func rewriteValueS390X_OpS390XMULLDload_0(v *Value) bool { b := v.Block - _ = b // match: (MULLDload [off] {sym} x ptr1 (FMOVDstore [off] {sym} ptr2 y _)) // cond: isSamePtr(ptr1, ptr2) // result: (MULLD x (LGDR y)) @@ -23194,7 +22899,6 @@ func rewriteValueS390X_OpS390XMULLW_0(v *Value) bool { } func rewriteValueS390X_OpS390XMULLWconst_0(v *Value) bool { b := v.Block - _ = b // match: (MULLWconst [-1] x) // cond: // result: (NEGW x) @@ -23407,9 +23111,7 @@ func rewriteValueS390X_OpS390XNEGW_0(v *Value) bool { } func rewriteValueS390X_OpS390XNOT_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (NOT x) // cond: true // result: (XOR (MOVDconst [-1]) x) @@ -23445,7 +23147,6 @@ func rewriteValueS390X_OpS390XNOTW_0(v *Value) bool { } func rewriteValueS390X_OpS390XOR_0(v *Value) bool { b := v.Block - _ = b // match: (OR x (MOVDconst [c])) // cond: isU32Bit(c) // result: (ORconst [c] x) @@ -23756,9 +23457,7 @@ func rewriteValueS390X_OpS390XOR_0(v *Value) bool { } func rewriteValueS390X_OpS390XOR_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR (MOVDconst [c]) (MOVDconst [d])) // cond: // result: (MOVDconst [c|d]) @@ -24074,9 +23773,7 @@ func rewriteValueS390X_OpS390XOR_10(v *Value) bool { } func rewriteValueS390X_OpS390XOR_20(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR sh:(SLDconst [16] x0:(MOVHZload [i0] {s} p mem)) x1:(MOVHZload [i1] {s} p mem)) // cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVWZload [i0] {s} p mem) @@ -24676,9 +24373,7 @@ func rewriteValueS390X_OpS390XOR_20(v *Value) bool { } func rewriteValueS390X_OpS390XOR_30(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR or:(OR y s1:(SLDconst [j1] x1:(MOVHZload [i1] {s} p mem))) s0:(SLDconst [j0] x0:(MOVHZload [i0] {s} p mem))) // cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (OR (SLDconst [j1] (MOVWZload [i0] {s} p mem)) y) @@ -25233,9 +24928,7 @@ func rewriteValueS390X_OpS390XOR_30(v *Value) bool { } func rewriteValueS390X_OpS390XOR_40(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR x1:(MOVHZloadidx [i1] {s} idx p mem) sh:(SLDconst [16] x0:(MOVHZloadidx [i0] {s} p idx mem))) // cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem) @@ -25780,9 +25473,7 @@ func rewriteValueS390X_OpS390XOR_40(v *Value) bool { } func rewriteValueS390X_OpS390XOR_50(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR x1:(MOVWZloadidx [i1] {s} idx p mem) sh:(SLDconst [32] x0:(MOVWZloadidx [i0] {s} idx p mem))) // cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVDloadidx [i0] {s} p idx mem) @@ -26402,9 +26093,7 @@ func rewriteValueS390X_OpS390XOR_50(v *Value) bool { } func rewriteValueS390X_OpS390XOR_60(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR s0:(SLDconst [j0] x0:(MOVBZloadidx [i0] {s} idx p mem)) or:(OR y s1:(SLDconst [j1] x1:(MOVBZloadidx [i1] {s} p idx mem)))) // cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (OR (SLDconst [j1] (MOVHZloadidx [i0] {s} p idx mem)) y) @@ -27099,9 +26788,7 @@ func rewriteValueS390X_OpS390XOR_60(v *Value) bool { } func rewriteValueS390X_OpS390XOR_70(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR or:(OR y s1:(SLDconst [j1] x1:(MOVBZloadidx [i1] {s} idx p mem))) s0:(SLDconst [j0] x0:(MOVBZloadidx [i0] {s} idx p mem))) // cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (OR (SLDconst [j1] (MOVHZloadidx [i0] {s} p idx mem)) y) @@ -27796,9 +27483,7 @@ func rewriteValueS390X_OpS390XOR_70(v *Value) bool { } func rewriteValueS390X_OpS390XOR_80(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR or:(OR s1:(SLDconst [j1] x1:(MOVHZloadidx [i1] {s} idx p mem)) y) s0:(SLDconst [j0] x0:(MOVHZloadidx [i0] {s} p idx mem))) // cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (OR (SLDconst [j1] (MOVWZloadidx [i0] {s} p idx mem)) y) @@ -28447,9 +28132,7 @@ func rewriteValueS390X_OpS390XOR_80(v *Value) bool { } func rewriteValueS390X_OpS390XOR_90(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR sh:(SLDconst [16] r1:(MOVHZreg x1:(MOVHBRload [i1] {s} p mem))) r0:(MOVHZreg x0:(MOVHBRload [i0] {s} p mem))) // cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRload [i0] {s} p mem)) @@ -29113,9 +28796,7 @@ func rewriteValueS390X_OpS390XOR_90(v *Value) bool { } func rewriteValueS390X_OpS390XOR_100(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR or:(OR y s0:(SLDconst [j0] r0:(MOVHZreg x0:(MOVHBRload [i0] {s} p mem)))) s1:(SLDconst [j1] r1:(MOVHZreg x1:(MOVHBRload [i1] {s} p mem)))) // cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (OR (SLDconst [j0] (MOVWZreg (MOVWBRload [i0] {s} p mem))) y) @@ -29706,9 +29387,7 @@ func rewriteValueS390X_OpS390XOR_100(v *Value) bool { } func rewriteValueS390X_OpS390XOR_110(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR r0:(MOVHZreg x0:(MOVHBRloadidx [i0] {s} idx p mem)) sh:(SLDconst [16] r1:(MOVHZreg x1:(MOVHBRloadidx [i1] {s} p idx mem)))) // cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem)) @@ -30347,9 +30026,7 @@ func rewriteValueS390X_OpS390XOR_110(v *Value) bool { } func rewriteValueS390X_OpS390XOR_120(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR r0:(MOVWZreg x0:(MOVWBRloadidx [i0] {s} idx p mem)) sh:(SLDconst [32] r1:(MOVWZreg x1:(MOVWBRloadidx [i1] {s} idx p mem)))) // cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVDBRloadidx [i0] {s} p idx mem) @@ -31019,9 +30696,7 @@ func rewriteValueS390X_OpS390XOR_120(v *Value) bool { } func rewriteValueS390X_OpS390XOR_130(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR s1:(SLDconst [j1] x1:(MOVBZloadidx [i1] {s} idx p mem)) or:(OR y s0:(SLDconst [j0] x0:(MOVBZloadidx [i0] {s} p idx mem)))) // cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (OR (SLDconst [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y) @@ -31736,9 +31411,7 @@ func rewriteValueS390X_OpS390XOR_130(v *Value) bool { } func rewriteValueS390X_OpS390XOR_140(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR or:(OR y s0:(SLDconst [j0] x0:(MOVBZloadidx [i0] {s} idx p mem))) s1:(SLDconst [j1] x1:(MOVBZloadidx [i1] {s} idx p mem))) // cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (OR (SLDconst [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y) @@ -32525,9 +32198,7 @@ func rewriteValueS390X_OpS390XOR_140(v *Value) bool { } func rewriteValueS390X_OpS390XOR_150(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (OR or:(OR s0:(SLDconst [j0] r0:(MOVHZreg x0:(MOVHBRloadidx [i0] {s} idx p mem))) y) s1:(SLDconst [j1] r1:(MOVHZreg x1:(MOVHBRloadidx [i1] {s} p idx mem)))) // cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (OR (SLDconst [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y) @@ -33328,9 +32999,7 @@ func rewriteValueS390X_OpS390XORW_0(v *Value) bool { } func rewriteValueS390X_OpS390XORW_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORW g:(MOVWZload [off] {sym} ptr mem) x) // cond: ptr.Op != OpSB && is20Bit(off) && canMergeLoadClobber(v, g, x) && clobber(g) // result: (ORWload [off] {sym} x ptr mem) @@ -33807,9 +33476,7 @@ func rewriteValueS390X_OpS390XORW_10(v *Value) bool { } func rewriteValueS390X_OpS390XORW_20(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORW or:(ORW y s1:(SLWconst [j1] x1:(MOVBZload [i1] {s} p mem))) s0:(SLWconst [j0] x0:(MOVBZload [i0] {s} p mem))) // cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORW (SLWconst [j1] (MOVHZload [i0] {s} p mem)) y) @@ -34364,9 +34031,7 @@ func rewriteValueS390X_OpS390XORW_20(v *Value) bool { } func rewriteValueS390X_OpS390XORW_30(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORW x1:(MOVHZloadidx [i1] {s} idx p mem) sh:(SLWconst [16] x0:(MOVHZloadidx [i0] {s} p idx mem))) // cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem) @@ -34956,9 +34621,7 @@ func rewriteValueS390X_OpS390XORW_30(v *Value) bool { } func rewriteValueS390X_OpS390XORW_40(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORW s0:(SLWconst [j0] x0:(MOVBZloadidx [i0] {s} idx p mem)) or:(ORW s1:(SLWconst [j1] x1:(MOVBZloadidx [i1] {s} idx p mem)) y)) // cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORW (SLWconst [j1] (MOVHZloadidx [i0] {s} p idx mem)) y) @@ -35653,9 +35316,7 @@ func rewriteValueS390X_OpS390XORW_40(v *Value) bool { } func rewriteValueS390X_OpS390XORW_50(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORW or:(ORW s1:(SLWconst [j1] x1:(MOVBZloadidx [i1] {s} idx p mem)) y) s0:(SLWconst [j0] x0:(MOVBZloadidx [i0] {s} idx p mem))) // cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORW (SLWconst [j1] (MOVHZloadidx [i0] {s} p idx mem)) y) @@ -36281,9 +35942,7 @@ func rewriteValueS390X_OpS390XORW_50(v *Value) bool { } func rewriteValueS390X_OpS390XORW_60(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORW or:(ORW y s0:(SLWconst [j0] x0:(MOVBZload [i0] {s} p mem))) s1:(SLWconst [j1] x1:(MOVBZload [i1] {s} p mem))) // cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORW (SLWconst [j0] (MOVHZreg (MOVHBRload [i0] {s} p mem))) y) @@ -36864,9 +36523,7 @@ func rewriteValueS390X_OpS390XORW_60(v *Value) bool { } func rewriteValueS390X_OpS390XORW_70(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORW r0:(MOVHZreg x0:(MOVHBRloadidx [i0] {s} idx p mem)) sh:(SLWconst [16] r1:(MOVHZreg x1:(MOVHBRloadidx [i1] {s} p idx mem)))) // cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh) // result: @mergePoint(b,x0,x1) (MOVWBRloadidx [i0] {s} p idx mem) @@ -37518,9 +37175,7 @@ func rewriteValueS390X_OpS390XORW_70(v *Value) bool { } func rewriteValueS390X_OpS390XORW_80(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORW s1:(SLWconst [j1] x1:(MOVBZloadidx [i1] {s} idx p mem)) or:(ORW s0:(SLWconst [j0] x0:(MOVBZloadidx [i0] {s} idx p mem)) y)) // cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORW (SLWconst [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y) @@ -38235,9 +37890,7 @@ func rewriteValueS390X_OpS390XORW_80(v *Value) bool { } func rewriteValueS390X_OpS390XORW_90(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ORW or:(ORW s0:(SLWconst [j0] x0:(MOVBZloadidx [i0] {s} idx p mem)) y) s1:(SLWconst [j1] x1:(MOVBZloadidx [i1] {s} idx p mem))) // cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or) // result: @mergePoint(b,x0,x1) (ORW (SLWconst [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y) @@ -38595,7 +38248,6 @@ func rewriteValueS390X_OpS390XORconst_0(v *Value) bool { } func rewriteValueS390X_OpS390XORload_0(v *Value) bool { b := v.Block - _ = b // match: (ORload [off] {sym} x ptr1 (FMOVDstore [off] {sym} ptr2 y _)) // cond: isSamePtr(ptr1, ptr2) // result: (OR x (LGDR y)) @@ -38724,9 +38376,7 @@ func rewriteValueS390X_OpS390XRLLG_0(v *Value) bool { } func rewriteValueS390X_OpS390XSLD_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SLD x (MOVDconst [c])) // cond: // result: (SLDconst x [c&63]) @@ -38932,9 +38582,7 @@ func rewriteValueS390X_OpS390XSLD_10(v *Value) bool { } func rewriteValueS390X_OpS390XSLW_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SLW x (MOVDconst [c])) // cond: // result: (SLWconst x [c&63]) @@ -39140,9 +38788,7 @@ func rewriteValueS390X_OpS390XSLW_10(v *Value) bool { } func rewriteValueS390X_OpS390XSRAD_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SRAD x (MOVDconst [c])) // cond: // result: (SRADconst x [c&63]) @@ -39365,9 +39011,7 @@ func rewriteValueS390X_OpS390XSRADconst_0(v *Value) bool { } func rewriteValueS390X_OpS390XSRAW_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SRAW x (MOVDconst [c])) // cond: // result: (SRAWconst x [c&63]) @@ -39590,9 +39234,7 @@ func rewriteValueS390X_OpS390XSRAWconst_0(v *Value) bool { } func rewriteValueS390X_OpS390XSRD_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SRD x (MOVDconst [c])) // cond: // result: (SRDconst x [c&63]) @@ -39798,7 +39440,6 @@ func rewriteValueS390X_OpS390XSRD_10(v *Value) bool { } func rewriteValueS390X_OpS390XSRDconst_0(v *Value) bool { b := v.Block - _ = b // match: (SRDconst [1] (SLDconst [1] (LGDR x))) // cond: // result: (LGDR (LPDFR x)) @@ -39830,9 +39471,7 @@ func rewriteValueS390X_OpS390XSRDconst_0(v *Value) bool { } func rewriteValueS390X_OpS390XSRW_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SRW x (MOVDconst [c])) // cond: // result: (SRWconst x [c&63]) @@ -40154,7 +39793,6 @@ func rewriteValueS390X_OpS390XSTMG2_0(v *Value) bool { } func rewriteValueS390X_OpS390XSUB_0(v *Value) bool { b := v.Block - _ = b // match: (SUB x (MOVDconst [c])) // cond: is32Bit(c) // result: (SUBconst x [c]) @@ -40240,7 +39878,6 @@ func rewriteValueS390X_OpS390XSUB_0(v *Value) bool { } func rewriteValueS390X_OpS390XSUBW_0(v *Value) bool { b := v.Block - _ = b // match: (SUBW x (MOVDconst [c])) // cond: // result: (SUBWconst x [int64(int32(c))]) @@ -40494,7 +40131,6 @@ func rewriteValueS390X_OpS390XSUBconst_0(v *Value) bool { } func rewriteValueS390X_OpS390XSUBload_0(v *Value) bool { b := v.Block - _ = b // match: (SUBload [off] {sym} x ptr1 (FMOVDstore [off] {sym} ptr2 y _)) // cond: isSamePtr(ptr1, ptr2) // result: (SUB x (LGDR y)) @@ -40585,9 +40221,7 @@ func rewriteValueS390X_OpS390XSUBload_0(v *Value) bool { } func rewriteValueS390X_OpS390XSumBytes2_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SumBytes2 x) // cond: // result: (ADDW (SRWconst x [8]) x) @@ -40604,9 +40238,7 @@ func rewriteValueS390X_OpS390XSumBytes2_0(v *Value) bool { } func rewriteValueS390X_OpS390XSumBytes4_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SumBytes4 x) // cond: // result: (SumBytes2 (ADDW (SRWconst x [16]) x)) @@ -40625,9 +40257,7 @@ func rewriteValueS390X_OpS390XSumBytes4_0(v *Value) bool { } func rewriteValueS390X_OpS390XSumBytes8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SumBytes8 x) // cond: // result: (SumBytes4 (ADDW (SRDconst x [32]) x)) @@ -41353,7 +40983,6 @@ func rewriteValueS390X_OpS390XXORconst_0(v *Value) bool { } func rewriteValueS390X_OpS390XXORload_0(v *Value) bool { b := v.Block - _ = b // match: (XORload [off] {sym} x ptr1 (FMOVDstore [off] {sym} ptr2 y _)) // cond: isSamePtr(ptr1, ptr2) // result: (XOR x (LGDR y)) @@ -41444,7 +41073,6 @@ func rewriteValueS390X_OpS390XXORload_0(v *Value) bool { } func rewriteValueS390X_OpSelect0_0(v *Value) bool { b := v.Block - _ = b // match: (Select0 (AddTupleFirst32 val tuple)) // cond: // result: (ADDW val (Select0 tuple)) @@ -41584,7 +41212,6 @@ func rewriteValueS390X_OpSignExt8to64_0(v *Value) bool { } func rewriteValueS390X_OpSlicemask_0(v *Value) bool { b := v.Block - _ = b // match: (Slicemask x) // cond: // result: (SRADconst (NEG x) [63]) @@ -41994,7 +41621,6 @@ func rewriteValueS390X_OpXor8_0(v *Value) bool { } func rewriteValueS390X_OpZero_0(v *Value) bool { b := v.Block - _ = b // match: (Zero [0] _ mem) // cond: // result: mem @@ -42174,7 +41800,6 @@ func rewriteValueS390X_OpZero_0(v *Value) bool { } func rewriteValueS390X_OpZero_10(v *Value) bool { b := v.Block - _ = b // match: (Zero [s] destptr mem) // cond: s > 1024 // result: (LoweredZero [s%256] destptr (ADDconst destptr [(s/256)*256]) mem) diff --git a/src/cmd/compile/internal/ssa/rewriteWasm.go b/src/cmd/compile/internal/ssa/rewriteWasm.go index 1b7b5022da..9e0eee8fa0 100644 --- a/src/cmd/compile/internal/ssa/rewriteWasm.go +++ b/src/cmd/compile/internal/ssa/rewriteWasm.go @@ -737,9 +737,7 @@ func rewriteValueWasm_OpClosureCall_0(v *Value) bool { } func rewriteValueWasm_OpCom16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Com16 x) // cond: // result: (I64Xor x (I64Const [-1])) @@ -755,9 +753,7 @@ func rewriteValueWasm_OpCom16_0(v *Value) bool { } func rewriteValueWasm_OpCom32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Com32 x) // cond: // result: (I64Xor x (I64Const [-1])) @@ -773,9 +769,7 @@ func rewriteValueWasm_OpCom32_0(v *Value) bool { } func rewriteValueWasm_OpCom64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Com64 x) // cond: // result: (I64Xor x (I64Const [-1])) @@ -791,9 +785,7 @@ func rewriteValueWasm_OpCom64_0(v *Value) bool { } func rewriteValueWasm_OpCom8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Com8 x) // cond: // result: (I64Xor x (I64Const [-1])) @@ -968,9 +960,7 @@ func rewriteValueWasm_OpCvt32Fto64U_0(v *Value) bool { } func rewriteValueWasm_OpCvt32Uto32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt32Uto32F x) // cond: // result: (LoweredRound32F (F64ConvertI64U (ZeroExt32to64 x))) @@ -987,9 +977,7 @@ func rewriteValueWasm_OpCvt32Uto32F_0(v *Value) bool { } func rewriteValueWasm_OpCvt32Uto64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt32Uto64F x) // cond: // result: (F64ConvertI64U (ZeroExt32to64 x)) @@ -1004,9 +992,7 @@ func rewriteValueWasm_OpCvt32Uto64F_0(v *Value) bool { } func rewriteValueWasm_OpCvt32to32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt32to32F x) // cond: // result: (LoweredRound32F (F64ConvertI64S (SignExt32to64 x))) @@ -1023,9 +1009,7 @@ func rewriteValueWasm_OpCvt32to32F_0(v *Value) bool { } func rewriteValueWasm_OpCvt32to64F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt32to64F x) // cond: // result: (F64ConvertI64S (SignExt32to64 x)) @@ -1095,9 +1079,7 @@ func rewriteValueWasm_OpCvt64Fto64U_0(v *Value) bool { } func rewriteValueWasm_OpCvt64Uto32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt64Uto32F x) // cond: // result: (LoweredRound32F (F64ConvertI64U x)) @@ -1123,9 +1105,7 @@ func rewriteValueWasm_OpCvt64Uto64F_0(v *Value) bool { } func rewriteValueWasm_OpCvt64to32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Cvt64to32F x) // cond: // result: (LoweredRound32F (F64ConvertI64S x)) @@ -1151,9 +1131,7 @@ func rewriteValueWasm_OpCvt64to64F_0(v *Value) bool { } func rewriteValueWasm_OpDiv16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16 x y) // cond: // result: (I64DivS (SignExt16to64 x) (SignExt16to64 y)) @@ -1173,9 +1151,7 @@ func rewriteValueWasm_OpDiv16_0(v *Value) bool { } func rewriteValueWasm_OpDiv16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16u x y) // cond: // result: (I64DivU (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -1195,9 +1171,7 @@ func rewriteValueWasm_OpDiv16u_0(v *Value) bool { } func rewriteValueWasm_OpDiv32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32 x y) // cond: // result: (I64DivS (SignExt32to64 x) (SignExt32to64 y)) @@ -1231,9 +1205,7 @@ func rewriteValueWasm_OpDiv32F_0(v *Value) bool { } func rewriteValueWasm_OpDiv32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div32u x y) // cond: // result: (I64DivU (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -1295,9 +1267,7 @@ func rewriteValueWasm_OpDiv64u_0(v *Value) bool { } func rewriteValueWasm_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 x y) // cond: // result: (I64DivS (SignExt8to64 x) (SignExt8to64 y)) @@ -1317,9 +1287,7 @@ func rewriteValueWasm_OpDiv8_0(v *Value) bool { } func rewriteValueWasm_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u x y) // cond: // result: (I64DivU (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -1339,9 +1307,7 @@ func rewriteValueWasm_OpDiv8u_0(v *Value) bool { } func rewriteValueWasm_OpEq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq16 x y) // cond: // result: (I64Eq (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -1361,9 +1327,7 @@ func rewriteValueWasm_OpEq16_0(v *Value) bool { } func rewriteValueWasm_OpEq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq32 x y) // cond: // result: (I64Eq (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -1383,9 +1347,7 @@ func rewriteValueWasm_OpEq32_0(v *Value) bool { } func rewriteValueWasm_OpEq32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq32F x y) // cond: // result: (F64Eq (LoweredRound32F x) (LoweredRound32F y)) @@ -1433,9 +1395,7 @@ func rewriteValueWasm_OpEq64F_0(v *Value) bool { } func rewriteValueWasm_OpEq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq8 x y) // cond: // result: (I64Eq (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -1483,9 +1443,7 @@ func rewriteValueWasm_OpEqPtr_0(v *Value) bool { } func rewriteValueWasm_OpGeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16 x y) // cond: // result: (I64GeS (SignExt16to64 x) (SignExt16to64 y)) @@ -1505,9 +1463,7 @@ func rewriteValueWasm_OpGeq16_0(v *Value) bool { } func rewriteValueWasm_OpGeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq16U x y) // cond: // result: (I64GeU (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -1527,9 +1483,7 @@ func rewriteValueWasm_OpGeq16U_0(v *Value) bool { } func rewriteValueWasm_OpGeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32 x y) // cond: // result: (I64GeS (SignExt32to64 x) (SignExt32to64 y)) @@ -1549,9 +1503,7 @@ func rewriteValueWasm_OpGeq32_0(v *Value) bool { } func rewriteValueWasm_OpGeq32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32F x y) // cond: // result: (F64Ge (LoweredRound32F x) (LoweredRound32F y)) @@ -1571,9 +1523,7 @@ func rewriteValueWasm_OpGeq32F_0(v *Value) bool { } func rewriteValueWasm_OpGeq32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq32U x y) // cond: // result: (I64GeU (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -1635,9 +1585,7 @@ func rewriteValueWasm_OpGeq64U_0(v *Value) bool { } func rewriteValueWasm_OpGeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8 x y) // cond: // result: (I64GeS (SignExt8to64 x) (SignExt8to64 y)) @@ -1657,9 +1605,7 @@ func rewriteValueWasm_OpGeq8_0(v *Value) bool { } func rewriteValueWasm_OpGeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq8U x y) // cond: // result: (I64GeU (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -1706,9 +1652,7 @@ func rewriteValueWasm_OpGetClosurePtr_0(v *Value) bool { } func rewriteValueWasm_OpGreater16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16 x y) // cond: // result: (I64GtS (SignExt16to64 x) (SignExt16to64 y)) @@ -1728,9 +1672,7 @@ func rewriteValueWasm_OpGreater16_0(v *Value) bool { } func rewriteValueWasm_OpGreater16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater16U x y) // cond: // result: (I64GtU (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -1750,9 +1692,7 @@ func rewriteValueWasm_OpGreater16U_0(v *Value) bool { } func rewriteValueWasm_OpGreater32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater32 x y) // cond: // result: (I64GtS (SignExt32to64 x) (SignExt32to64 y)) @@ -1772,9 +1712,7 @@ func rewriteValueWasm_OpGreater32_0(v *Value) bool { } func rewriteValueWasm_OpGreater32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater32F x y) // cond: // result: (F64Gt (LoweredRound32F x) (LoweredRound32F y)) @@ -1794,9 +1732,7 @@ func rewriteValueWasm_OpGreater32F_0(v *Value) bool { } func rewriteValueWasm_OpGreater32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater32U x y) // cond: // result: (I64GtU (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -1858,9 +1794,7 @@ func rewriteValueWasm_OpGreater64U_0(v *Value) bool { } func rewriteValueWasm_OpGreater8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8 x y) // cond: // result: (I64GtS (SignExt8to64 x) (SignExt8to64 y)) @@ -1880,9 +1814,7 @@ func rewriteValueWasm_OpGreater8_0(v *Value) bool { } func rewriteValueWasm_OpGreater8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater8U x y) // cond: // result: (I64GtU (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -1932,9 +1864,7 @@ func rewriteValueWasm_OpIsInBounds_0(v *Value) bool { } func rewriteValueWasm_OpIsNonNil_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (IsNonNil p) // cond: // result: (I64Eqz (I64Eqz p)) @@ -1963,9 +1893,7 @@ func rewriteValueWasm_OpIsSliceInBounds_0(v *Value) bool { } func rewriteValueWasm_OpLeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16 x y) // cond: // result: (I64LeS (SignExt16to64 x) (SignExt16to64 y)) @@ -1985,9 +1913,7 @@ func rewriteValueWasm_OpLeq16_0(v *Value) bool { } func rewriteValueWasm_OpLeq16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq16U x y) // cond: // result: (I64LeU (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -2007,9 +1933,7 @@ func rewriteValueWasm_OpLeq16U_0(v *Value) bool { } func rewriteValueWasm_OpLeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32 x y) // cond: // result: (I64LeS (SignExt32to64 x) (SignExt32to64 y)) @@ -2029,9 +1953,7 @@ func rewriteValueWasm_OpLeq32_0(v *Value) bool { } func rewriteValueWasm_OpLeq32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32F x y) // cond: // result: (F64Le (LoweredRound32F x) (LoweredRound32F y)) @@ -2051,9 +1973,7 @@ func rewriteValueWasm_OpLeq32F_0(v *Value) bool { } func rewriteValueWasm_OpLeq32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq32U x y) // cond: // result: (I64LeU (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -2115,9 +2035,7 @@ func rewriteValueWasm_OpLeq64U_0(v *Value) bool { } func rewriteValueWasm_OpLeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8 x y) // cond: // result: (I64LeS (SignExt8to64 x) (SignExt8to64 y)) @@ -2137,9 +2055,7 @@ func rewriteValueWasm_OpLeq8_0(v *Value) bool { } func rewriteValueWasm_OpLeq8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq8U x y) // cond: // result: (I64LeU (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -2159,9 +2075,7 @@ func rewriteValueWasm_OpLeq8U_0(v *Value) bool { } func rewriteValueWasm_OpLess16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16 x y) // cond: // result: (I64LtS (SignExt16to64 x) (SignExt16to64 y)) @@ -2181,9 +2095,7 @@ func rewriteValueWasm_OpLess16_0(v *Value) bool { } func rewriteValueWasm_OpLess16U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less16U x y) // cond: // result: (I64LtU (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -2203,9 +2115,7 @@ func rewriteValueWasm_OpLess16U_0(v *Value) bool { } func rewriteValueWasm_OpLess32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less32 x y) // cond: // result: (I64LtS (SignExt32to64 x) (SignExt32to64 y)) @@ -2225,9 +2135,7 @@ func rewriteValueWasm_OpLess32_0(v *Value) bool { } func rewriteValueWasm_OpLess32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less32F x y) // cond: // result: (F64Lt (LoweredRound32F x) (LoweredRound32F y)) @@ -2247,9 +2155,7 @@ func rewriteValueWasm_OpLess32F_0(v *Value) bool { } func rewriteValueWasm_OpLess32U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less32U x y) // cond: // result: (I64LtU (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -2311,9 +2217,7 @@ func rewriteValueWasm_OpLess64U_0(v *Value) bool { } func rewriteValueWasm_OpLess8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8 x y) // cond: // result: (I64LtS (SignExt8to64 x) (SignExt8to64 y)) @@ -2333,9 +2237,7 @@ func rewriteValueWasm_OpLess8_0(v *Value) bool { } func rewriteValueWasm_OpLess8U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less8U x y) // cond: // result: (I64LtU (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -2516,9 +2418,7 @@ func rewriteValueWasm_OpLocalAddr_0(v *Value) bool { } func rewriteValueWasm_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x16 x y) // cond: // result: (Lsh64x64 x (ZeroExt16to64 y)) @@ -2536,9 +2436,7 @@ func rewriteValueWasm_OpLsh16x16_0(v *Value) bool { } func rewriteValueWasm_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x32 x y) // cond: // result: (Lsh64x64 x (ZeroExt32to64 y)) @@ -2570,9 +2468,7 @@ func rewriteValueWasm_OpLsh16x64_0(v *Value) bool { } func rewriteValueWasm_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x8 x y) // cond: // result: (Lsh64x64 x (ZeroExt8to64 y)) @@ -2590,9 +2486,7 @@ func rewriteValueWasm_OpLsh16x8_0(v *Value) bool { } func rewriteValueWasm_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x16 x y) // cond: // result: (Lsh64x64 x (ZeroExt16to64 y)) @@ -2610,9 +2504,7 @@ func rewriteValueWasm_OpLsh32x16_0(v *Value) bool { } func rewriteValueWasm_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x32 x y) // cond: // result: (Lsh64x64 x (ZeroExt32to64 y)) @@ -2644,9 +2536,7 @@ func rewriteValueWasm_OpLsh32x64_0(v *Value) bool { } func rewriteValueWasm_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x8 x y) // cond: // result: (Lsh64x64 x (ZeroExt8to64 y)) @@ -2664,9 +2554,7 @@ func rewriteValueWasm_OpLsh32x8_0(v *Value) bool { } func rewriteValueWasm_OpLsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x16 x y) // cond: // result: (Lsh64x64 x (ZeroExt16to64 y)) @@ -2684,9 +2572,7 @@ func rewriteValueWasm_OpLsh64x16_0(v *Value) bool { } func rewriteValueWasm_OpLsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x32 x y) // cond: // result: (Lsh64x64 x (ZeroExt32to64 y)) @@ -2704,9 +2590,7 @@ func rewriteValueWasm_OpLsh64x32_0(v *Value) bool { } func rewriteValueWasm_OpLsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x64 x y) // cond: // result: (Select (I64Shl x y) (I64Const [0]) (I64LtU y (I64Const [64]))) @@ -2733,9 +2617,7 @@ func rewriteValueWasm_OpLsh64x64_0(v *Value) bool { } func rewriteValueWasm_OpLsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x8 x y) // cond: // result: (Lsh64x64 x (ZeroExt8to64 y)) @@ -2753,9 +2635,7 @@ func rewriteValueWasm_OpLsh64x8_0(v *Value) bool { } func rewriteValueWasm_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x16 x y) // cond: // result: (Lsh64x64 x (ZeroExt16to64 y)) @@ -2773,9 +2653,7 @@ func rewriteValueWasm_OpLsh8x16_0(v *Value) bool { } func rewriteValueWasm_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x32 x y) // cond: // result: (Lsh64x64 x (ZeroExt32to64 y)) @@ -2807,9 +2685,7 @@ func rewriteValueWasm_OpLsh8x64_0(v *Value) bool { } func rewriteValueWasm_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x8 x y) // cond: // result: (Lsh64x64 x (ZeroExt8to64 y)) @@ -2827,9 +2703,7 @@ func rewriteValueWasm_OpLsh8x8_0(v *Value) bool { } func rewriteValueWasm_OpMod16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16 x y) // cond: // result: (I64RemS (SignExt16to64 x) (SignExt16to64 y)) @@ -2849,9 +2723,7 @@ func rewriteValueWasm_OpMod16_0(v *Value) bool { } func rewriteValueWasm_OpMod16u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod16u x y) // cond: // result: (I64RemU (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -2871,9 +2743,7 @@ func rewriteValueWasm_OpMod16u_0(v *Value) bool { } func rewriteValueWasm_OpMod32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32 x y) // cond: // result: (I64RemS (SignExt32to64 x) (SignExt32to64 y)) @@ -2893,9 +2763,7 @@ func rewriteValueWasm_OpMod32_0(v *Value) bool { } func rewriteValueWasm_OpMod32u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod32u x y) // cond: // result: (I64RemU (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -2943,9 +2811,7 @@ func rewriteValueWasm_OpMod64u_0(v *Value) bool { } func rewriteValueWasm_OpMod8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8 x y) // cond: // result: (I64RemS (SignExt8to64 x) (SignExt8to64 y)) @@ -2965,9 +2831,7 @@ func rewriteValueWasm_OpMod8_0(v *Value) bool { } func rewriteValueWasm_OpMod8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mod8u x y) // cond: // result: (I64RemU (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -2987,9 +2851,7 @@ func rewriteValueWasm_OpMod8u_0(v *Value) bool { } func rewriteValueWasm_OpMove_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Move [0] _ _ mem) // cond: // result: mem @@ -3233,9 +3095,7 @@ func rewriteValueWasm_OpMove_0(v *Value) bool { } func rewriteValueWasm_OpMove_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Move [s] dst src mem) // cond: s > 8 && s < 16 // result: (I64Store [s-8] dst (I64Load [s-8] src mem) (I64Store dst (I64Load src mem) mem)) @@ -3446,9 +3306,7 @@ func rewriteValueWasm_OpMul8_0(v *Value) bool { } func rewriteValueWasm_OpNeg16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neg16 x) // cond: // result: (I64Sub (I64Const [0]) x) @@ -3464,9 +3322,7 @@ func rewriteValueWasm_OpNeg16_0(v *Value) bool { } func rewriteValueWasm_OpNeg32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neg32 x) // cond: // result: (I64Sub (I64Const [0]) x) @@ -3493,9 +3349,7 @@ func rewriteValueWasm_OpNeg32F_0(v *Value) bool { } func rewriteValueWasm_OpNeg64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neg64 x) // cond: // result: (I64Sub (I64Const [0]) x) @@ -3522,9 +3376,7 @@ func rewriteValueWasm_OpNeg64F_0(v *Value) bool { } func rewriteValueWasm_OpNeg8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neg8 x) // cond: // result: (I64Sub (I64Const [0]) x) @@ -3540,9 +3392,7 @@ func rewriteValueWasm_OpNeg8_0(v *Value) bool { } func rewriteValueWasm_OpNeq16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq16 x y) // cond: // result: (I64Ne (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -3562,9 +3412,7 @@ func rewriteValueWasm_OpNeq16_0(v *Value) bool { } func rewriteValueWasm_OpNeq32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq32 x y) // cond: // result: (I64Ne (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -3584,9 +3432,7 @@ func rewriteValueWasm_OpNeq32_0(v *Value) bool { } func rewriteValueWasm_OpNeq32F_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq32F x y) // cond: // result: (F64Ne (LoweredRound32F x) (LoweredRound32F y)) @@ -3634,9 +3480,7 @@ func rewriteValueWasm_OpNeq64F_0(v *Value) bool { } func rewriteValueWasm_OpNeq8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq8 x y) // cond: // result: (I64Ne (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -3815,9 +3659,7 @@ func rewriteValueWasm_OpRound64F_0(v *Value) bool { } func rewriteValueWasm_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux16 x y) // cond: // result: (Rsh64Ux64 (ZeroExt16to64 x) (ZeroExt16to64 y)) @@ -3837,9 +3679,7 @@ func rewriteValueWasm_OpRsh16Ux16_0(v *Value) bool { } func rewriteValueWasm_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux32 x y) // cond: // result: (Rsh64Ux64 (ZeroExt16to64 x) (ZeroExt32to64 y)) @@ -3859,9 +3699,7 @@ func rewriteValueWasm_OpRsh16Ux32_0(v *Value) bool { } func rewriteValueWasm_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux64 x y) // cond: // result: (Rsh64Ux64 (ZeroExt16to64 x) y) @@ -3879,9 +3717,7 @@ func rewriteValueWasm_OpRsh16Ux64_0(v *Value) bool { } func rewriteValueWasm_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux8 x y) // cond: // result: (Rsh64Ux64 (ZeroExt16to64 x) (ZeroExt8to64 y)) @@ -3901,9 +3737,7 @@ func rewriteValueWasm_OpRsh16Ux8_0(v *Value) bool { } func rewriteValueWasm_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x16 x y) // cond: // result: (Rsh64x64 (SignExt16to64 x) (ZeroExt16to64 y)) @@ -3923,9 +3757,7 @@ func rewriteValueWasm_OpRsh16x16_0(v *Value) bool { } func rewriteValueWasm_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x32 x y) // cond: // result: (Rsh64x64 (SignExt16to64 x) (ZeroExt32to64 y)) @@ -3945,9 +3777,7 @@ func rewriteValueWasm_OpRsh16x32_0(v *Value) bool { } func rewriteValueWasm_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x64 x y) // cond: // result: (Rsh64x64 (SignExt16to64 x) y) @@ -3965,9 +3795,7 @@ func rewriteValueWasm_OpRsh16x64_0(v *Value) bool { } func rewriteValueWasm_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x8 x y) // cond: // result: (Rsh64x64 (SignExt16to64 x) (ZeroExt8to64 y)) @@ -3987,9 +3815,7 @@ func rewriteValueWasm_OpRsh16x8_0(v *Value) bool { } func rewriteValueWasm_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux16 x y) // cond: // result: (Rsh64Ux64 (ZeroExt32to64 x) (ZeroExt16to64 y)) @@ -4009,9 +3835,7 @@ func rewriteValueWasm_OpRsh32Ux16_0(v *Value) bool { } func rewriteValueWasm_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux32 x y) // cond: // result: (Rsh64Ux64 (ZeroExt32to64 x) (ZeroExt32to64 y)) @@ -4031,9 +3855,7 @@ func rewriteValueWasm_OpRsh32Ux32_0(v *Value) bool { } func rewriteValueWasm_OpRsh32Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux64 x y) // cond: // result: (Rsh64Ux64 (ZeroExt32to64 x) y) @@ -4051,9 +3873,7 @@ func rewriteValueWasm_OpRsh32Ux64_0(v *Value) bool { } func rewriteValueWasm_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux8 x y) // cond: // result: (Rsh64Ux64 (ZeroExt32to64 x) (ZeroExt8to64 y)) @@ -4073,9 +3893,7 @@ func rewriteValueWasm_OpRsh32Ux8_0(v *Value) bool { } func rewriteValueWasm_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x16 x y) // cond: // result: (Rsh64x64 (SignExt32to64 x) (ZeroExt16to64 y)) @@ -4095,9 +3913,7 @@ func rewriteValueWasm_OpRsh32x16_0(v *Value) bool { } func rewriteValueWasm_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x32 x y) // cond: // result: (Rsh64x64 (SignExt32to64 x) (ZeroExt32to64 y)) @@ -4117,9 +3933,7 @@ func rewriteValueWasm_OpRsh32x32_0(v *Value) bool { } func rewriteValueWasm_OpRsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x64 x y) // cond: // result: (Rsh64x64 (SignExt32to64 x) y) @@ -4137,9 +3951,7 @@ func rewriteValueWasm_OpRsh32x64_0(v *Value) bool { } func rewriteValueWasm_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x8 x y) // cond: // result: (Rsh64x64 (SignExt32to64 x) (ZeroExt8to64 y)) @@ -4159,9 +3971,7 @@ func rewriteValueWasm_OpRsh32x8_0(v *Value) bool { } func rewriteValueWasm_OpRsh64Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux16 x y) // cond: // result: (Rsh64Ux64 x (ZeroExt16to64 y)) @@ -4179,9 +3989,7 @@ func rewriteValueWasm_OpRsh64Ux16_0(v *Value) bool { } func rewriteValueWasm_OpRsh64Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux32 x y) // cond: // result: (Rsh64Ux64 x (ZeroExt32to64 y)) @@ -4199,9 +4007,7 @@ func rewriteValueWasm_OpRsh64Ux32_0(v *Value) bool { } func rewriteValueWasm_OpRsh64Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux64 x y) // cond: // result: (Select (I64ShrU x y) (I64Const [0]) (I64LtU y (I64Const [64]))) @@ -4228,9 +4034,7 @@ func rewriteValueWasm_OpRsh64Ux64_0(v *Value) bool { } func rewriteValueWasm_OpRsh64Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux8 x y) // cond: // result: (Rsh64Ux64 x (ZeroExt8to64 y)) @@ -4248,9 +4052,7 @@ func rewriteValueWasm_OpRsh64Ux8_0(v *Value) bool { } func rewriteValueWasm_OpRsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x16 x y) // cond: // result: (Rsh64x64 x (ZeroExt16to64 y)) @@ -4268,9 +4070,7 @@ func rewriteValueWasm_OpRsh64x16_0(v *Value) bool { } func rewriteValueWasm_OpRsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x32 x y) // cond: // result: (Rsh64x64 x (ZeroExt32to64 y)) @@ -4288,9 +4088,7 @@ func rewriteValueWasm_OpRsh64x32_0(v *Value) bool { } func rewriteValueWasm_OpRsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x64 x y) // cond: // result: (I64ShrS x (Select y (I64Const [63]) (I64LtU y (I64Const [64])))) @@ -4317,9 +4115,7 @@ func rewriteValueWasm_OpRsh64x64_0(v *Value) bool { } func rewriteValueWasm_OpRsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x8 x y) // cond: // result: (Rsh64x64 x (ZeroExt8to64 y)) @@ -4337,9 +4133,7 @@ func rewriteValueWasm_OpRsh64x8_0(v *Value) bool { } func rewriteValueWasm_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux16 x y) // cond: // result: (Rsh64Ux64 (ZeroExt8to64 x) (ZeroExt16to64 y)) @@ -4359,9 +4153,7 @@ func rewriteValueWasm_OpRsh8Ux16_0(v *Value) bool { } func rewriteValueWasm_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux32 x y) // cond: // result: (Rsh64Ux64 (ZeroExt8to64 x) (ZeroExt32to64 y)) @@ -4381,9 +4173,7 @@ func rewriteValueWasm_OpRsh8Ux32_0(v *Value) bool { } func rewriteValueWasm_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux64 x y) // cond: // result: (Rsh64Ux64 (ZeroExt8to64 x) y) @@ -4401,9 +4191,7 @@ func rewriteValueWasm_OpRsh8Ux64_0(v *Value) bool { } func rewriteValueWasm_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux8 x y) // cond: // result: (Rsh64Ux64 (ZeroExt8to64 x) (ZeroExt8to64 y)) @@ -4423,9 +4211,7 @@ func rewriteValueWasm_OpRsh8Ux8_0(v *Value) bool { } func rewriteValueWasm_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x16 x y) // cond: // result: (Rsh64x64 (SignExt8to64 x) (ZeroExt16to64 y)) @@ -4445,9 +4231,7 @@ func rewriteValueWasm_OpRsh8x16_0(v *Value) bool { } func rewriteValueWasm_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x32 x y) // cond: // result: (Rsh64x64 (SignExt8to64 x) (ZeroExt32to64 y)) @@ -4467,9 +4251,7 @@ func rewriteValueWasm_OpRsh8x32_0(v *Value) bool { } func rewriteValueWasm_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x64 x y) // cond: // result: (Rsh64x64 (SignExt8to64 x) y) @@ -4487,9 +4269,7 @@ func rewriteValueWasm_OpRsh8x64_0(v *Value) bool { } func rewriteValueWasm_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x8 x y) // cond: // result: (Rsh64x64 (SignExt8to64 x) (ZeroExt8to64 y)) @@ -4509,9 +4289,7 @@ func rewriteValueWasm_OpRsh8x8_0(v *Value) bool { } func rewriteValueWasm_OpSignExt16to32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SignExt16to32 x:(I64Load16S _ _)) // cond: // result: x @@ -4546,9 +4324,7 @@ func rewriteValueWasm_OpSignExt16to32_0(v *Value) bool { } func rewriteValueWasm_OpSignExt16to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SignExt16to64 x:(I64Load16S _ _)) // cond: // result: x @@ -4583,9 +4359,7 @@ func rewriteValueWasm_OpSignExt16to64_0(v *Value) bool { } func rewriteValueWasm_OpSignExt32to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SignExt32to64 x:(I64Load32S _ _)) // cond: // result: x @@ -4620,9 +4394,7 @@ func rewriteValueWasm_OpSignExt32to64_0(v *Value) bool { } func rewriteValueWasm_OpSignExt8to16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SignExt8to16 x:(I64Load8S _ _)) // cond: // result: x @@ -4657,9 +4429,7 @@ func rewriteValueWasm_OpSignExt8to16_0(v *Value) bool { } func rewriteValueWasm_OpSignExt8to32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SignExt8to32 x:(I64Load8S _ _)) // cond: // result: x @@ -4694,9 +4464,7 @@ func rewriteValueWasm_OpSignExt8to32_0(v *Value) bool { } func rewriteValueWasm_OpSignExt8to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SignExt8to64 x:(I64Load8S _ _)) // cond: // result: x @@ -4731,9 +4499,7 @@ func rewriteValueWasm_OpSignExt8to64_0(v *Value) bool { } func rewriteValueWasm_OpSlicemask_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Slicemask x) // cond: // result: (I64ShrS (I64Sub (I64Const [0]) x) (I64Const [63])) @@ -5068,9 +4834,7 @@ func rewriteValueWasm_OpWB_0(v *Value) bool { } func rewriteValueWasm_OpWasmF64Add_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (F64Add (F64Const [x]) (F64Const [y])) // cond: // result: (F64Const [auxFrom64F(auxTo64F(x) + auxTo64F(y))]) @@ -5112,9 +4876,7 @@ func rewriteValueWasm_OpWasmF64Add_0(v *Value) bool { } func rewriteValueWasm_OpWasmF64Mul_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (F64Mul (F64Const [x]) (F64Const [y])) // cond: // result: (F64Const [auxFrom64F(auxTo64F(x) * auxTo64F(y))]) @@ -5156,9 +4918,7 @@ func rewriteValueWasm_OpWasmF64Mul_0(v *Value) bool { } func rewriteValueWasm_OpWasmI64Add_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (I64Add (I64Const [x]) (I64Const [y])) // cond: // result: (I64Const [x + y]) @@ -5253,9 +5013,7 @@ func rewriteValueWasm_OpWasmI64AddConst_0(v *Value) bool { } func rewriteValueWasm_OpWasmI64And_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (I64And (I64Const [x]) (I64Const [y])) // cond: // result: (I64Const [x & y]) @@ -5297,9 +5055,7 @@ func rewriteValueWasm_OpWasmI64And_0(v *Value) bool { } func rewriteValueWasm_OpWasmI64Eq_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (I64Eq (I64Const [x]) (I64Const [y])) // cond: x == y // result: (I64Const [1]) @@ -5578,9 +5334,7 @@ func rewriteValueWasm_OpWasmI64Load8U_0(v *Value) bool { } func rewriteValueWasm_OpWasmI64Mul_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (I64Mul (I64Const [x]) (I64Const [y])) // cond: // result: (I64Const [x * y]) @@ -5622,9 +5376,7 @@ func rewriteValueWasm_OpWasmI64Mul_0(v *Value) bool { } func rewriteValueWasm_OpWasmI64Ne_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (I64Ne (I64Const [x]) (I64Const [y])) // cond: x == y // result: (I64Const [0]) @@ -5710,9 +5462,7 @@ func rewriteValueWasm_OpWasmI64Ne_0(v *Value) bool { } func rewriteValueWasm_OpWasmI64Or_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (I64Or (I64Const [x]) (I64Const [y])) // cond: // result: (I64Const [x | y]) @@ -5928,9 +5678,7 @@ func rewriteValueWasm_OpWasmI64Store8_0(v *Value) bool { } func rewriteValueWasm_OpWasmI64Xor_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (I64Xor (I64Const [x]) (I64Const [y])) // cond: // result: (I64Const [x ^ y]) @@ -6028,9 +5776,7 @@ func rewriteValueWasm_OpXor8_0(v *Value) bool { } func rewriteValueWasm_OpZero_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Zero [0] _ mem) // cond: // result: mem @@ -6247,9 +5993,7 @@ func rewriteValueWasm_OpZero_0(v *Value) bool { } func rewriteValueWasm_OpZero_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Zero [16] destptr mem) // cond: // result: (I64Store [8] destptr (I64Const [0]) (I64Store destptr (I64Const [0]) mem)) @@ -6367,9 +6111,7 @@ func rewriteValueWasm_OpZero_10(v *Value) bool { } func rewriteValueWasm_OpZeroExt16to32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ZeroExt16to32 x:(I64Load16U _ _)) // cond: // result: x @@ -6399,9 +6141,7 @@ func rewriteValueWasm_OpZeroExt16to32_0(v *Value) bool { } func rewriteValueWasm_OpZeroExt16to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ZeroExt16to64 x:(I64Load16U _ _)) // cond: // result: x @@ -6431,9 +6171,7 @@ func rewriteValueWasm_OpZeroExt16to64_0(v *Value) bool { } func rewriteValueWasm_OpZeroExt32to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ZeroExt32to64 x:(I64Load32U _ _)) // cond: // result: x @@ -6463,9 +6201,7 @@ func rewriteValueWasm_OpZeroExt32to64_0(v *Value) bool { } func rewriteValueWasm_OpZeroExt8to16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ZeroExt8to16 x:(I64Load8U _ _)) // cond: // result: x @@ -6495,9 +6231,7 @@ func rewriteValueWasm_OpZeroExt8to16_0(v *Value) bool { } func rewriteValueWasm_OpZeroExt8to32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ZeroExt8to32 x:(I64Load8U _ _)) // cond: // result: x @@ -6527,9 +6261,7 @@ func rewriteValueWasm_OpZeroExt8to32_0(v *Value) bool { } func rewriteValueWasm_OpZeroExt8to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ZeroExt8to64 x:(I64Load8U _ _)) // cond: // result: x diff --git a/src/cmd/compile/internal/ssa/rewritedec.go b/src/cmd/compile/internal/ssa/rewritedec.go index e980520376..97fd67d65b 100644 --- a/src/cmd/compile/internal/ssa/rewritedec.go +++ b/src/cmd/compile/internal/ssa/rewritedec.go @@ -97,8 +97,6 @@ func rewriteValuedec_OpIData_0(v *Value) bool { return false } func rewriteValuedec_OpITab_0(v *Value) bool { - b := v.Block - _ = b // match: (ITab (IMake itab _)) // cond: // result: itab @@ -118,11 +116,8 @@ func rewriteValuedec_OpITab_0(v *Value) bool { } func rewriteValuedec_OpLoad_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Load ptr mem) // cond: t.IsComplex() && t.Size() == 8 // result: (ComplexMake (Load ptr mem) (Load (OffPtr [4] ptr) mem) ) @@ -313,11 +308,8 @@ func rewriteValuedec_OpSlicePtr_0(v *Value) bool { } func rewriteValuedec_OpStore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Store {t} dst (ComplexMake real imag) mem) // cond: t.(*types.Type).Size() == 8 // result: (Store {typ.Float32} (OffPtr [4] dst) imag (Store {typ.Float32} dst real mem)) diff --git a/src/cmd/compile/internal/ssa/rewritedec64.go b/src/cmd/compile/internal/ssa/rewritedec64.go index f88fce8076..eef5483c30 100644 --- a/src/cmd/compile/internal/ssa/rewritedec64.go +++ b/src/cmd/compile/internal/ssa/rewritedec64.go @@ -138,9 +138,7 @@ func rewriteValuedec64(v *Value) bool { } func rewriteValuedec64_OpAdd64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Add64 x y) // cond: // result: (Int64Make (Add32withcarry (Int64Hi x) (Int64Hi y) (Select1 (Add32carry (Int64Lo x) (Int64Lo y)))) (Select0 (Add32carry (Int64Lo x) (Int64Lo y)))) @@ -182,9 +180,7 @@ func rewriteValuedec64_OpAdd64_0(v *Value) bool { } func rewriteValuedec64_OpAnd64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (And64 x y) // cond: // result: (Int64Make (And32 (Int64Hi x) (Int64Hi y)) (And32 (Int64Lo x) (Int64Lo y))) @@ -214,11 +210,8 @@ func rewriteValuedec64_OpAnd64_0(v *Value) bool { } func rewriteValuedec64_OpArg_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Arg {n} [off]) // cond: is64BitInt(v.Type) && !config.BigEndian && v.Type.IsSigned() // result: (Int64Make (Arg {n} [off+4]) (Arg {n} [off])) @@ -303,9 +296,7 @@ func rewriteValuedec64_OpArg_0(v *Value) bool { } func rewriteValuedec64_OpBitLen64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (BitLen64 x) // cond: // result: (Add32 (BitLen32 (Int64Hi x)) (BitLen32 (Or32 (Int64Lo x) (Zeromask (Int64Hi x))))) @@ -335,9 +326,7 @@ func rewriteValuedec64_OpBitLen64_0(v *Value) bool { } func rewriteValuedec64_OpBswap64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Bswap64 x) // cond: // result: (Int64Make (Bswap32 (Int64Lo x)) (Bswap32 (Int64Hi x))) @@ -359,9 +348,7 @@ func rewriteValuedec64_OpBswap64_0(v *Value) bool { } func rewriteValuedec64_OpCom64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Com64 x) // cond: // result: (Int64Make (Com32 (Int64Hi x)) (Com32 (Int64Lo x))) @@ -383,9 +370,7 @@ func rewriteValuedec64_OpCom64_0(v *Value) bool { } func rewriteValuedec64_OpConst64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Const64 [c]) // cond: t.IsSigned() // result: (Int64Make (Const32 [c>>32]) (Const32 [int64(int32(c))])) @@ -426,9 +411,7 @@ func rewriteValuedec64_OpConst64_0(v *Value) bool { } func rewriteValuedec64_OpCtz64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Ctz64 x) // cond: // result: (Add32 (Ctz32 (Int64Lo x)) (And32 (Com32 (Zeromask (Int64Lo x))) (Ctz32 (Int64Hi x)))) @@ -471,9 +454,7 @@ func rewriteValuedec64_OpCtz64NonZero_0(v *Value) bool { } func rewriteValuedec64_OpEq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Eq64 x y) // cond: // result: (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Eq32 (Int64Lo x) (Int64Lo y))) @@ -503,9 +484,7 @@ func rewriteValuedec64_OpEq64_0(v *Value) bool { } func rewriteValuedec64_OpGeq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq64 x y) // cond: // result: (OrB (Greater32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Geq32U (Int64Lo x) (Int64Lo y)))) @@ -545,9 +524,7 @@ func rewriteValuedec64_OpGeq64_0(v *Value) bool { } func rewriteValuedec64_OpGeq64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Geq64U x y) // cond: // result: (OrB (Greater32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Geq32U (Int64Lo x) (Int64Lo y)))) @@ -587,9 +564,7 @@ func rewriteValuedec64_OpGeq64U_0(v *Value) bool { } func rewriteValuedec64_OpGreater64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater64 x y) // cond: // result: (OrB (Greater32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Greater32U (Int64Lo x) (Int64Lo y)))) @@ -629,9 +604,7 @@ func rewriteValuedec64_OpGreater64_0(v *Value) bool { } func rewriteValuedec64_OpGreater64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Greater64U x y) // cond: // result: (OrB (Greater32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Greater32U (Int64Lo x) (Int64Lo y)))) @@ -707,9 +680,7 @@ func rewriteValuedec64_OpInt64Lo_0(v *Value) bool { } func rewriteValuedec64_OpLeq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq64 x y) // cond: // result: (OrB (Less32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Leq32U (Int64Lo x) (Int64Lo y)))) @@ -749,9 +720,7 @@ func rewriteValuedec64_OpLeq64_0(v *Value) bool { } func rewriteValuedec64_OpLeq64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Leq64U x y) // cond: // result: (OrB (Less32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Leq32U (Int64Lo x) (Int64Lo y)))) @@ -791,9 +760,7 @@ func rewriteValuedec64_OpLeq64U_0(v *Value) bool { } func rewriteValuedec64_OpLess64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less64 x y) // cond: // result: (OrB (Less32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Less32U (Int64Lo x) (Int64Lo y)))) @@ -833,9 +800,7 @@ func rewriteValuedec64_OpLess64_0(v *Value) bool { } func rewriteValuedec64_OpLess64U_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Less64U x y) // cond: // result: (OrB (Less32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Less32U (Int64Lo x) (Int64Lo y)))) @@ -875,11 +840,8 @@ func rewriteValuedec64_OpLess64U_0(v *Value) bool { } func rewriteValuedec64_OpLoad_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Load ptr mem) // cond: is64BitInt(t) && !config.BigEndian && t.IsSigned() // result: (Int64Make (Load (OffPtr [4] ptr) mem) (Load ptr mem)) @@ -984,9 +946,7 @@ func rewriteValuedec64_OpLoad_0(v *Value) bool { } func rewriteValuedec64_OpLsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x64 _ (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Const32 [0]) @@ -1063,9 +1023,7 @@ func rewriteValuedec64_OpLsh16x64_0(v *Value) bool { } func rewriteValuedec64_OpLsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x64 _ (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Const32 [0]) @@ -1142,9 +1100,7 @@ func rewriteValuedec64_OpLsh32x64_0(v *Value) bool { } func rewriteValuedec64_OpLsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x16 (Int64Make hi lo) s) // cond: // result: (Int64Make (Or32 (Or32 (Lsh32x16 hi s) (Rsh32Ux16 lo (Sub16 (Const16 [32]) s))) (Lsh32x16 lo (Sub16 s (Const16 [32])))) (Lsh32x16 lo s)) @@ -1195,9 +1151,7 @@ func rewriteValuedec64_OpLsh64x16_0(v *Value) bool { } func rewriteValuedec64_OpLsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x32 (Int64Make hi lo) s) // cond: // result: (Int64Make (Or32 (Or32 (Lsh32x32 hi s) (Rsh32Ux32 lo (Sub32 (Const32 [32]) s))) (Lsh32x32 lo (Sub32 s (Const32 [32])))) (Lsh32x32 lo s)) @@ -1248,9 +1202,7 @@ func rewriteValuedec64_OpLsh64x32_0(v *Value) bool { } func rewriteValuedec64_OpLsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x64 _ (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Const64 [0]) @@ -1327,9 +1279,7 @@ func rewriteValuedec64_OpLsh64x64_0(v *Value) bool { } func rewriteValuedec64_OpLsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x8 (Int64Make hi lo) s) // cond: // result: (Int64Make (Or32 (Or32 (Lsh32x8 hi s) (Rsh32Ux8 lo (Sub8 (Const8 [32]) s))) (Lsh32x8 lo (Sub8 s (Const8 [32])))) (Lsh32x8 lo s)) @@ -1380,9 +1330,7 @@ func rewriteValuedec64_OpLsh64x8_0(v *Value) bool { } func rewriteValuedec64_OpLsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x64 _ (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Const32 [0]) @@ -1459,9 +1407,7 @@ func rewriteValuedec64_OpLsh8x64_0(v *Value) bool { } func rewriteValuedec64_OpMul64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mul64 x y) // cond: // result: (Int64Make (Add32 (Mul32 (Int64Lo x) (Int64Hi y)) (Add32 (Mul32 (Int64Hi x) (Int64Lo y)) (Select0 (Mul32uhilo (Int64Lo x) (Int64Lo y))))) (Select1 (Mul32uhilo (Int64Lo x) (Int64Lo y)))) @@ -1515,7 +1461,6 @@ func rewriteValuedec64_OpMul64_0(v *Value) bool { } func rewriteValuedec64_OpNeg64_0(v *Value) bool { b := v.Block - _ = b // match: (Neg64 x) // cond: // result: (Sub64 (Const64 [0]) x) @@ -1532,9 +1477,7 @@ func rewriteValuedec64_OpNeg64_0(v *Value) bool { } func rewriteValuedec64_OpNeq64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Neq64 x y) // cond: // result: (OrB (Neq32 (Int64Hi x) (Int64Hi y)) (Neq32 (Int64Lo x) (Int64Lo y))) @@ -1564,9 +1507,7 @@ func rewriteValuedec64_OpNeq64_0(v *Value) bool { } func rewriteValuedec64_OpOr64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Or64 x y) // cond: // result: (Int64Make (Or32 (Int64Hi x) (Int64Hi y)) (Or32 (Int64Lo x) (Int64Lo y))) @@ -1596,9 +1537,7 @@ func rewriteValuedec64_OpOr64_0(v *Value) bool { } func rewriteValuedec64_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux64 _ (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Const32 [0]) @@ -1675,9 +1614,7 @@ func rewriteValuedec64_OpRsh16Ux64_0(v *Value) bool { } func rewriteValuedec64_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x64 x (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Signmask (SignExt16to32 x)) @@ -1757,9 +1694,7 @@ func rewriteValuedec64_OpRsh16x64_0(v *Value) bool { } func rewriteValuedec64_OpRsh32Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux64 _ (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Const32 [0]) @@ -1836,9 +1771,7 @@ func rewriteValuedec64_OpRsh32Ux64_0(v *Value) bool { } func rewriteValuedec64_OpRsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x64 x (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Signmask x) @@ -1916,9 +1849,7 @@ func rewriteValuedec64_OpRsh32x64_0(v *Value) bool { } func rewriteValuedec64_OpRsh64Ux16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux16 (Int64Make hi lo) s) // cond: // result: (Int64Make (Rsh32Ux16 hi s) (Or32 (Or32 (Rsh32Ux16 lo s) (Lsh32x16 hi (Sub16 (Const16 [32]) s))) (Rsh32Ux16 hi (Sub16 s (Const16 [32]))))) @@ -1969,9 +1900,7 @@ func rewriteValuedec64_OpRsh64Ux16_0(v *Value) bool { } func rewriteValuedec64_OpRsh64Ux32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux32 (Int64Make hi lo) s) // cond: // result: (Int64Make (Rsh32Ux32 hi s) (Or32 (Or32 (Rsh32Ux32 lo s) (Lsh32x32 hi (Sub32 (Const32 [32]) s))) (Rsh32Ux32 hi (Sub32 s (Const32 [32]))))) @@ -2022,9 +1951,7 @@ func rewriteValuedec64_OpRsh64Ux32_0(v *Value) bool { } func rewriteValuedec64_OpRsh64Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux64 _ (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Const64 [0]) @@ -2101,9 +2028,7 @@ func rewriteValuedec64_OpRsh64Ux64_0(v *Value) bool { } func rewriteValuedec64_OpRsh64Ux8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux8 (Int64Make hi lo) s) // cond: // result: (Int64Make (Rsh32Ux8 hi s) (Or32 (Or32 (Rsh32Ux8 lo s) (Lsh32x8 hi (Sub8 (Const8 [32]) s))) (Rsh32Ux8 hi (Sub8 s (Const8 [32]))))) @@ -2154,9 +2079,7 @@ func rewriteValuedec64_OpRsh64Ux8_0(v *Value) bool { } func rewriteValuedec64_OpRsh64x16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x16 (Int64Make hi lo) s) // cond: // result: (Int64Make (Rsh32x16 hi s) (Or32 (Or32 (Rsh32Ux16 lo s) (Lsh32x16 hi (Sub16 (Const16 [32]) s))) (And32 (Rsh32x16 hi (Sub16 s (Const16 [32]))) (Zeromask (ZeroExt16to32 (Rsh16Ux32 s (Const32 [5]))))))) @@ -2219,9 +2142,7 @@ func rewriteValuedec64_OpRsh64x16_0(v *Value) bool { } func rewriteValuedec64_OpRsh64x32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x32 (Int64Make hi lo) s) // cond: // result: (Int64Make (Rsh32x32 hi s) (Or32 (Or32 (Rsh32Ux32 lo s) (Lsh32x32 hi (Sub32 (Const32 [32]) s))) (And32 (Rsh32x32 hi (Sub32 s (Const32 [32]))) (Zeromask (Rsh32Ux32 s (Const32 [5])))))) @@ -2282,9 +2203,7 @@ func rewriteValuedec64_OpRsh64x32_0(v *Value) bool { } func rewriteValuedec64_OpRsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x64 x (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Int64Make (Signmask (Int64Hi x)) (Signmask (Int64Hi x))) @@ -2371,9 +2290,7 @@ func rewriteValuedec64_OpRsh64x64_0(v *Value) bool { } func rewriteValuedec64_OpRsh64x8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x8 (Int64Make hi lo) s) // cond: // result: (Int64Make (Rsh32x8 hi s) (Or32 (Or32 (Rsh32Ux8 lo s) (Lsh32x8 hi (Sub8 (Const8 [32]) s))) (And32 (Rsh32x8 hi (Sub8 s (Const8 [32]))) (Zeromask (ZeroExt8to32 (Rsh8Ux32 s (Const32 [5]))))))) @@ -2436,9 +2353,7 @@ func rewriteValuedec64_OpRsh64x8_0(v *Value) bool { } func rewriteValuedec64_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux64 _ (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Const32 [0]) @@ -2515,9 +2430,7 @@ func rewriteValuedec64_OpRsh8Ux64_0(v *Value) bool { } func rewriteValuedec64_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8x64 x (Int64Make (Const32 [c]) _)) // cond: c != 0 // result: (Signmask (SignExt8to32 x)) @@ -2597,9 +2510,7 @@ func rewriteValuedec64_OpRsh8x64_0(v *Value) bool { } func rewriteValuedec64_OpSignExt16to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SignExt16to64 x) // cond: // result: (SignExt32to64 (SignExt16to32 x)) @@ -2614,9 +2525,7 @@ func rewriteValuedec64_OpSignExt16to64_0(v *Value) bool { } func rewriteValuedec64_OpSignExt32to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SignExt32to64 x) // cond: // result: (Int64Make (Signmask x) x) @@ -2632,9 +2541,7 @@ func rewriteValuedec64_OpSignExt32to64_0(v *Value) bool { } func rewriteValuedec64_OpSignExt8to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (SignExt8to64 x) // cond: // result: (SignExt32to64 (SignExt8to32 x)) @@ -2649,9 +2556,7 @@ func rewriteValuedec64_OpSignExt8to64_0(v *Value) bool { } func rewriteValuedec64_OpStore_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (Store {t} dst (Int64Make hi lo) mem) // cond: t.(*types.Type).Size() == 8 && !config.BigEndian // result: (Store {hi.Type} (OffPtr [4] dst) hi (Store {lo.Type} dst lo mem)) @@ -2722,9 +2627,7 @@ func rewriteValuedec64_OpStore_0(v *Value) bool { } func rewriteValuedec64_OpSub64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Sub64 x y) // cond: // result: (Int64Make (Sub32withcarry (Int64Hi x) (Int64Hi y) (Select1 (Sub32carry (Int64Lo x) (Int64Lo y)))) (Select0 (Sub32carry (Int64Lo x) (Int64Lo y)))) @@ -2818,9 +2721,7 @@ func rewriteValuedec64_OpTrunc64to8_0(v *Value) bool { } func rewriteValuedec64_OpXor64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Xor64 x y) // cond: // result: (Int64Make (Xor32 (Int64Hi x) (Int64Hi y)) (Xor32 (Int64Lo x) (Int64Lo y))) @@ -2850,9 +2751,7 @@ func rewriteValuedec64_OpXor64_0(v *Value) bool { } func rewriteValuedec64_OpZeroExt16to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ZeroExt16to64 x) // cond: // result: (ZeroExt32to64 (ZeroExt16to32 x)) @@ -2867,9 +2766,7 @@ func rewriteValuedec64_OpZeroExt16to64_0(v *Value) bool { } func rewriteValuedec64_OpZeroExt32to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ZeroExt32to64 x) // cond: // result: (Int64Make (Const32 [0]) x) @@ -2885,9 +2782,7 @@ func rewriteValuedec64_OpZeroExt32to64_0(v *Value) bool { } func rewriteValuedec64_OpZeroExt8to64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ZeroExt8to64 x) // cond: // result: (ZeroExt32to64 (ZeroExt8to32 x)) diff --git a/src/cmd/compile/internal/ssa/rewritedecArgs.go b/src/cmd/compile/internal/ssa/rewritedecArgs.go index 6b823252ea..633c0fa8b5 100644 --- a/src/cmd/compile/internal/ssa/rewritedecArgs.go +++ b/src/cmd/compile/internal/ssa/rewritedecArgs.go @@ -24,13 +24,9 @@ func rewriteValuedecArgs(v *Value) bool { } func rewriteValuedecArgs_OpArg_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config fe := b.Func.fe - _ = fe typ := &b.Func.Config.Types - _ = typ // match: (Arg {n} [off]) // cond: v.Type.IsString() // result: (StringMake (Arg {n} [off]) (Arg {n} [off+config.PtrSize])) @@ -242,9 +238,7 @@ func rewriteValuedecArgs_OpArg_0(v *Value) bool { } func rewriteValuedecArgs_OpArg_10(v *Value) bool { b := v.Block - _ = b fe := b.Func.fe - _ = fe // match: (Arg ) // cond: t.IsArray() && t.NumElem() == 0 // result: (ArrayMake0) diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go index f2c7529e02..a173d4c8f7 100644 --- a/src/cmd/compile/internal/ssa/rewritegeneric.go +++ b/src/cmd/compile/internal/ssa/rewritegeneric.go @@ -472,7 +472,6 @@ func rewriteValuegeneric(v *Value) bool { } func rewriteValuegeneric_OpAdd16_0(v *Value) bool { b := v.Block - _ = b // match: (Add16 (Const16 [c]) (Const16 [d])) // cond: // result: (Const16 [int64(int16(c+d))]) @@ -755,7 +754,6 @@ func rewriteValuegeneric_OpAdd16_0(v *Value) bool { } func rewriteValuegeneric_OpAdd16_10(v *Value) bool { b := v.Block - _ = b // match: (Add16 (Const16 [0]) x) // cond: // result: x @@ -1006,7 +1004,6 @@ func rewriteValuegeneric_OpAdd16_10(v *Value) bool { } func rewriteValuegeneric_OpAdd16_20(v *Value) bool { b := v.Block - _ = b // match: (Add16 x (Sub16 i:(Const16 ) z)) // cond: (z.Op != OpConst16 && x.Op != OpConst16) // result: (Add16 i (Sub16 x z)) @@ -1307,7 +1304,6 @@ func rewriteValuegeneric_OpAdd16_20(v *Value) bool { } func rewriteValuegeneric_OpAdd16_30(v *Value) bool { b := v.Block - _ = b // match: (Add16 (Const16 [c]) (Sub16 (Const16 [d]) x)) // cond: // result: (Sub16 (Const16 [int64(int16(c+d))]) x) @@ -1440,7 +1436,6 @@ func rewriteValuegeneric_OpAdd16_30(v *Value) bool { } func rewriteValuegeneric_OpAdd32_0(v *Value) bool { b := v.Block - _ = b // match: (Add32 (Const32 [c]) (Const32 [d])) // cond: // result: (Const32 [int64(int32(c+d))]) @@ -1723,7 +1718,6 @@ func rewriteValuegeneric_OpAdd32_0(v *Value) bool { } func rewriteValuegeneric_OpAdd32_10(v *Value) bool { b := v.Block - _ = b // match: (Add32 (Const32 [0]) x) // cond: // result: x @@ -1974,7 +1968,6 @@ func rewriteValuegeneric_OpAdd32_10(v *Value) bool { } func rewriteValuegeneric_OpAdd32_20(v *Value) bool { b := v.Block - _ = b // match: (Add32 x (Sub32 i:(Const32 ) z)) // cond: (z.Op != OpConst32 && x.Op != OpConst32) // result: (Add32 i (Sub32 x z)) @@ -2275,7 +2268,6 @@ func rewriteValuegeneric_OpAdd32_20(v *Value) bool { } func rewriteValuegeneric_OpAdd32_30(v *Value) bool { b := v.Block - _ = b // match: (Add32 (Const32 [c]) (Sub32 (Const32 [d]) x)) // cond: // result: (Sub32 (Const32 [int64(int32(c+d))]) x) @@ -2449,7 +2441,6 @@ func rewriteValuegeneric_OpAdd32F_0(v *Value) bool { } func rewriteValuegeneric_OpAdd64_0(v *Value) bool { b := v.Block - _ = b // match: (Add64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c+d]) @@ -2732,7 +2723,6 @@ func rewriteValuegeneric_OpAdd64_0(v *Value) bool { } func rewriteValuegeneric_OpAdd64_10(v *Value) bool { b := v.Block - _ = b // match: (Add64 (Const64 [0]) x) // cond: // result: x @@ -2983,7 +2973,6 @@ func rewriteValuegeneric_OpAdd64_10(v *Value) bool { } func rewriteValuegeneric_OpAdd64_20(v *Value) bool { b := v.Block - _ = b // match: (Add64 x (Sub64 i:(Const64 ) z)) // cond: (z.Op != OpConst64 && x.Op != OpConst64) // result: (Add64 i (Sub64 x z)) @@ -3284,7 +3273,6 @@ func rewriteValuegeneric_OpAdd64_20(v *Value) bool { } func rewriteValuegeneric_OpAdd64_30(v *Value) bool { b := v.Block - _ = b // match: (Add64 (Const64 [c]) (Sub64 (Const64 [d]) x)) // cond: // result: (Sub64 (Const64 [c+d]) x) @@ -3458,7 +3446,6 @@ func rewriteValuegeneric_OpAdd64F_0(v *Value) bool { } func rewriteValuegeneric_OpAdd8_0(v *Value) bool { b := v.Block - _ = b // match: (Add8 (Const8 [c]) (Const8 [d])) // cond: // result: (Const8 [int64(int8(c+d))]) @@ -3741,7 +3728,6 @@ func rewriteValuegeneric_OpAdd8_0(v *Value) bool { } func rewriteValuegeneric_OpAdd8_10(v *Value) bool { b := v.Block - _ = b // match: (Add8 (Const8 [0]) x) // cond: // result: x @@ -3992,7 +3978,6 @@ func rewriteValuegeneric_OpAdd8_10(v *Value) bool { } func rewriteValuegeneric_OpAdd8_20(v *Value) bool { b := v.Block - _ = b // match: (Add8 x (Sub8 i:(Const8 ) z)) // cond: (z.Op != OpConst8 && x.Op != OpConst8) // result: (Add8 i (Sub8 x z)) @@ -4293,7 +4278,6 @@ func rewriteValuegeneric_OpAdd8_20(v *Value) bool { } func rewriteValuegeneric_OpAdd8_30(v *Value) bool { b := v.Block - _ = b // match: (Add8 (Const8 [c]) (Sub8 (Const8 [d]) x)) // cond: // result: (Sub8 (Const8 [int64(int8(c+d))]) x) @@ -4680,7 +4664,6 @@ func rewriteValuegeneric_OpAnd16_0(v *Value) bool { } func rewriteValuegeneric_OpAnd16_10(v *Value) bool { b := v.Block - _ = b // match: (And16 _ (Const16 [0])) // cond: // result: (Const16 [0]) @@ -4925,7 +4908,6 @@ func rewriteValuegeneric_OpAnd16_10(v *Value) bool { } func rewriteValuegeneric_OpAnd16_20(v *Value) bool { b := v.Block - _ = b // match: (And16 (Const16 [c]) (And16 x (Const16 [d]))) // cond: // result: (And16 (Const16 [int64(int16(c&d))]) x) @@ -5241,7 +5223,6 @@ func rewriteValuegeneric_OpAnd32_0(v *Value) bool { } func rewriteValuegeneric_OpAnd32_10(v *Value) bool { b := v.Block - _ = b // match: (And32 _ (Const32 [0])) // cond: // result: (Const32 [0]) @@ -5486,7 +5467,6 @@ func rewriteValuegeneric_OpAnd32_10(v *Value) bool { } func rewriteValuegeneric_OpAnd32_20(v *Value) bool { b := v.Block - _ = b // match: (And32 (Const32 [c]) (And32 x (Const32 [d]))) // cond: // result: (And32 (Const32 [int64(int32(c&d))]) x) @@ -5802,7 +5782,6 @@ func rewriteValuegeneric_OpAnd64_0(v *Value) bool { } func rewriteValuegeneric_OpAnd64_10(v *Value) bool { b := v.Block - _ = b // match: (And64 _ (Const64 [0])) // cond: // result: (Const64 [0]) @@ -6039,7 +6018,6 @@ func rewriteValuegeneric_OpAnd64_10(v *Value) bool { } func rewriteValuegeneric_OpAnd64_20(v *Value) bool { b := v.Block - _ = b // match: (And64 (And64 z i:(Const64 )) x) // cond: (z.Op != OpConst64 && x.Op != OpConst64) // result: (And64 i (And64 z x)) @@ -6471,7 +6449,6 @@ func rewriteValuegeneric_OpAnd8_0(v *Value) bool { } func rewriteValuegeneric_OpAnd8_10(v *Value) bool { b := v.Block - _ = b // match: (And8 _ (Const8 [0])) // cond: // result: (Const8 [0]) @@ -6716,7 +6693,6 @@ func rewriteValuegeneric_OpAnd8_10(v *Value) bool { } func rewriteValuegeneric_OpAnd8_20(v *Value) bool { b := v.Block - _ = b // match: (And8 (Const8 [c]) (And8 x (Const8 [d]))) // cond: // result: (And8 (Const8 [int64(int8(c&d))]) x) @@ -6970,9 +6946,7 @@ func rewriteValuegeneric_OpCom8_0(v *Value) bool { } func rewriteValuegeneric_OpConstInterface_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (ConstInterface) // cond: // result: (IMake (ConstNil ) (ConstNil )) @@ -6987,11 +6961,8 @@ func rewriteValuegeneric_OpConstInterface_0(v *Value) bool { } func rewriteValuegeneric_OpConstSlice_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (ConstSlice) // cond: config.PtrSize == 4 // result: (SliceMake (ConstNil ) (Const32 [0]) (Const32 [0])) @@ -7032,13 +7003,9 @@ func rewriteValuegeneric_OpConstSlice_0(v *Value) bool { } func rewriteValuegeneric_OpConstString_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config fe := b.Func.fe - _ = fe typ := &b.Func.Config.Types - _ = typ // match: (ConstString {s}) // cond: config.PtrSize == 4 && s.(string) == "" // result: (StringMake (ConstNil) (Const32 [0])) @@ -7400,9 +7367,7 @@ func rewriteValuegeneric_OpCvt64to64F_0(v *Value) bool { } func rewriteValuegeneric_OpDiv16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div16 (Const16 [c]) (Const16 [d])) // cond: d != 0 // result: (Const16 [int64(int16(c)/int16(d))]) @@ -7575,11 +7540,8 @@ func rewriteValuegeneric_OpDiv16_0(v *Value) bool { } func rewriteValuegeneric_OpDiv16u_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Div16u (Const16 [c]) (Const16 [d])) // cond: d != 0 // result: (Const16 [int64(int16(uint16(c)/uint16(d)))]) @@ -7762,11 +7724,8 @@ func rewriteValuegeneric_OpDiv16u_0(v *Value) bool { } func rewriteValuegeneric_OpDiv32_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Div32 (Const32 [c]) (Const32 [d])) // cond: d != 0 // result: (Const32 [int64(int32(c)/int32(d))]) @@ -8014,7 +7973,6 @@ func rewriteValuegeneric_OpDiv32_0(v *Value) bool { } func rewriteValuegeneric_OpDiv32F_0(v *Value) bool { b := v.Block - _ = b // match: (Div32F (Const32F [c]) (Const32F [d])) // cond: // result: (Const32F [auxFrom32F(auxTo32F(c) / auxTo32F(d))]) @@ -8060,11 +8018,8 @@ func rewriteValuegeneric_OpDiv32F_0(v *Value) bool { } func rewriteValuegeneric_OpDiv32u_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Div32u (Const32 [c]) (Const32 [d])) // cond: d != 0 // result: (Const32 [int64(int32(uint32(c)/uint32(d)))]) @@ -8306,11 +8261,8 @@ func rewriteValuegeneric_OpDiv32u_0(v *Value) bool { } func rewriteValuegeneric_OpDiv64_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Div64 (Const64 [c]) (Const64 [d])) // cond: d != 0 // result: (Const64 [c/d]) @@ -8538,7 +8490,6 @@ func rewriteValuegeneric_OpDiv64_0(v *Value) bool { } func rewriteValuegeneric_OpDiv64F_0(v *Value) bool { b := v.Block - _ = b // match: (Div64F (Const64F [c]) (Const64F [d])) // cond: // result: (Const64F [auxFrom64F(auxTo64F(c) / auxTo64F(d))]) @@ -8584,11 +8535,8 @@ func rewriteValuegeneric_OpDiv64F_0(v *Value) bool { } func rewriteValuegeneric_OpDiv64u_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (Div64u (Const64 [c]) (Const64 [d])) // cond: d != 0 // result: (Const64 [int64(uint64(c)/uint64(d))]) @@ -8745,9 +8693,7 @@ func rewriteValuegeneric_OpDiv64u_0(v *Value) bool { } func rewriteValuegeneric_OpDiv8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8 (Const8 [c]) (Const8 [d])) // cond: d != 0 // result: (Const8 [int64(int8(c)/int8(d))]) @@ -8920,9 +8866,7 @@ func rewriteValuegeneric_OpDiv8_0(v *Value) bool { } func rewriteValuegeneric_OpDiv8u_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Div8u (Const8 [c]) (Const8 [d])) // cond: d != 0 // result: (Const8 [int64(int8(uint8(c)/uint8(d)))]) @@ -9000,7 +8944,6 @@ func rewriteValuegeneric_OpDiv8u_0(v *Value) bool { } func rewriteValuegeneric_OpEq16_0(v *Value) bool { b := v.Block - _ = b // match: (Eq16 x x) // cond: // result: (ConstBool [1]) @@ -9238,7 +9181,6 @@ func rewriteValuegeneric_OpEq16_0(v *Value) bool { } func rewriteValuegeneric_OpEq32_0(v *Value) bool { b := v.Block - _ = b // match: (Eq32 x x) // cond: // result: (ConstBool [1]) @@ -9517,7 +9459,6 @@ func rewriteValuegeneric_OpEq32F_0(v *Value) bool { } func rewriteValuegeneric_OpEq64_0(v *Value) bool { b := v.Block - _ = b // match: (Eq64 x x) // cond: // result: (ConstBool [1]) @@ -9796,7 +9737,6 @@ func rewriteValuegeneric_OpEq64F_0(v *Value) bool { } func rewriteValuegeneric_OpEq8_0(v *Value) bool { b := v.Block - _ = b // match: (Eq8 x x) // cond: // result: (ConstBool [1]) @@ -10145,9 +10085,7 @@ func rewriteValuegeneric_OpEqB_0(v *Value) bool { } func rewriteValuegeneric_OpEqInter_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqInter x y) // cond: // result: (EqPtr (ITab x) (ITab y)) @@ -10368,9 +10306,7 @@ func rewriteValuegeneric_OpEqPtr_0(v *Value) bool { } func rewriteValuegeneric_OpEqPtr_10(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqPtr (Const32 [d]) (Const32 [c])) // cond: // result: (ConstBool [b2i(c == d)]) @@ -10567,9 +10503,7 @@ func rewriteValuegeneric_OpEqPtr_10(v *Value) bool { } func rewriteValuegeneric_OpEqPtr_20(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqPtr p (Const32 [0])) // cond: // result: (Not (IsNonNil p)) @@ -10663,9 +10597,7 @@ func rewriteValuegeneric_OpEqPtr_20(v *Value) bool { } func rewriteValuegeneric_OpEqSlice_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (EqSlice x y) // cond: // result: (EqPtr (SlicePtr x) (SlicePtr y)) @@ -12993,9 +12925,7 @@ func rewriteValuegeneric_OpLess8U_0(v *Value) bool { } func rewriteValuegeneric_OpLoad_0(v *Value) bool { b := v.Block - _ = b fe := b.Func.fe - _ = fe // match: (Load p1 (Store {t2} p2 x _)) // cond: isSamePtr(p1, p2) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) // result: x @@ -13325,9 +13255,7 @@ func rewriteValuegeneric_OpLoad_0(v *Value) bool { } func rewriteValuegeneric_OpLoad_10(v *Value) bool { b := v.Block - _ = b fe := b.Func.fe - _ = fe // match: (Load op:(OffPtr [o1] p1) (Store {t2} p2 _ (Store {t3} p3 _ (Store {t4} p4 _ mem:(Zero [n] p5 _))))) // cond: o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p5) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2)) && disjoint(op, t1.Size(), p3, sizeof(t3)) && disjoint(op, t1.Size(), p4, sizeof(t4)) // result: @mem.Block (Load (OffPtr [o1] p5) mem) @@ -13641,9 +13569,7 @@ func rewriteValuegeneric_OpLoad_10(v *Value) bool { } func rewriteValuegeneric_OpLoad_20(v *Value) bool { b := v.Block - _ = b fe := b.Func.fe - _ = fe // match: (Load ptr mem) // cond: t.IsStruct() && t.NumFields() == 1 && fe.CanSSA(t) // result: (StructMake1 (Load (OffPtr [0] ptr) mem)) @@ -13804,7 +13730,6 @@ func rewriteValuegeneric_OpLoad_20(v *Value) bool { } func rewriteValuegeneric_OpLsh16x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x16 x (Const16 [c])) // cond: // result: (Lsh16x64 x (Const64 [int64(uint16(c))])) @@ -13844,7 +13769,6 @@ func rewriteValuegeneric_OpLsh16x16_0(v *Value) bool { } func rewriteValuegeneric_OpLsh16x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x32 x (Const32 [c])) // cond: // result: (Lsh16x64 x (Const64 [int64(uint32(c))])) @@ -13884,9 +13808,7 @@ func rewriteValuegeneric_OpLsh16x32_0(v *Value) bool { } func rewriteValuegeneric_OpLsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh16x64 (Const16 [c]) (Const64 [d])) // cond: // result: (Const16 [int64(int16(c) << uint64(d))]) @@ -14034,7 +13956,6 @@ func rewriteValuegeneric_OpLsh16x64_0(v *Value) bool { } func rewriteValuegeneric_OpLsh16x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh16x8 x (Const8 [c])) // cond: // result: (Lsh16x64 x (Const64 [int64(uint8(c))])) @@ -14074,7 +13995,6 @@ func rewriteValuegeneric_OpLsh16x8_0(v *Value) bool { } func rewriteValuegeneric_OpLsh32x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x16 x (Const16 [c])) // cond: // result: (Lsh32x64 x (Const64 [int64(uint16(c))])) @@ -14114,7 +14034,6 @@ func rewriteValuegeneric_OpLsh32x16_0(v *Value) bool { } func rewriteValuegeneric_OpLsh32x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x32 x (Const32 [c])) // cond: // result: (Lsh32x64 x (Const64 [int64(uint32(c))])) @@ -14154,9 +14073,7 @@ func rewriteValuegeneric_OpLsh32x32_0(v *Value) bool { } func rewriteValuegeneric_OpLsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh32x64 (Const32 [c]) (Const64 [d])) // cond: // result: (Const32 [int64(int32(c) << uint64(d))]) @@ -14304,7 +14221,6 @@ func rewriteValuegeneric_OpLsh32x64_0(v *Value) bool { } func rewriteValuegeneric_OpLsh32x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh32x8 x (Const8 [c])) // cond: // result: (Lsh32x64 x (Const64 [int64(uint8(c))])) @@ -14344,7 +14260,6 @@ func rewriteValuegeneric_OpLsh32x8_0(v *Value) bool { } func rewriteValuegeneric_OpLsh64x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh64x16 x (Const16 [c])) // cond: // result: (Lsh64x64 x (Const64 [int64(uint16(c))])) @@ -14384,7 +14299,6 @@ func rewriteValuegeneric_OpLsh64x16_0(v *Value) bool { } func rewriteValuegeneric_OpLsh64x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh64x32 x (Const32 [c])) // cond: // result: (Lsh64x64 x (Const64 [int64(uint32(c))])) @@ -14424,9 +14338,7 @@ func rewriteValuegeneric_OpLsh64x32_0(v *Value) bool { } func rewriteValuegeneric_OpLsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh64x64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c << uint64(d)]) @@ -14574,7 +14486,6 @@ func rewriteValuegeneric_OpLsh64x64_0(v *Value) bool { } func rewriteValuegeneric_OpLsh64x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh64x8 x (Const8 [c])) // cond: // result: (Lsh64x64 x (Const64 [int64(uint8(c))])) @@ -14614,7 +14525,6 @@ func rewriteValuegeneric_OpLsh64x8_0(v *Value) bool { } func rewriteValuegeneric_OpLsh8x16_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x16 x (Const16 [c])) // cond: // result: (Lsh8x64 x (Const64 [int64(uint16(c))])) @@ -14654,7 +14564,6 @@ func rewriteValuegeneric_OpLsh8x16_0(v *Value) bool { } func rewriteValuegeneric_OpLsh8x32_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x32 x (Const32 [c])) // cond: // result: (Lsh8x64 x (Const64 [int64(uint32(c))])) @@ -14694,9 +14603,7 @@ func rewriteValuegeneric_OpLsh8x32_0(v *Value) bool { } func rewriteValuegeneric_OpLsh8x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Lsh8x64 (Const8 [c]) (Const64 [d])) // cond: // result: (Const8 [int64(int8(c) << uint64(d))]) @@ -14844,7 +14751,6 @@ func rewriteValuegeneric_OpLsh8x64_0(v *Value) bool { } func rewriteValuegeneric_OpLsh8x8_0(v *Value) bool { b := v.Block - _ = b // match: (Lsh8x8 x (Const8 [c])) // cond: // result: (Lsh8x64 x (Const64 [int64(uint8(c))])) @@ -14884,7 +14790,6 @@ func rewriteValuegeneric_OpLsh8x8_0(v *Value) bool { } func rewriteValuegeneric_OpMod16_0(v *Value) bool { b := v.Block - _ = b // match: (Mod16 (Const16 [c]) (Const16 [d])) // cond: d != 0 // result: (Const16 [int64(int16(c % d))]) @@ -14986,7 +14891,6 @@ func rewriteValuegeneric_OpMod16_0(v *Value) bool { } func rewriteValuegeneric_OpMod16u_0(v *Value) bool { b := v.Block - _ = b // match: (Mod16u (Const16 [c]) (Const16 [d])) // cond: d != 0 // result: (Const16 [int64(uint16(c) % uint16(d))]) @@ -15065,7 +14969,6 @@ func rewriteValuegeneric_OpMod16u_0(v *Value) bool { } func rewriteValuegeneric_OpMod32_0(v *Value) bool { b := v.Block - _ = b // match: (Mod32 (Const32 [c]) (Const32 [d])) // cond: d != 0 // result: (Const32 [int64(int32(c % d))]) @@ -15167,7 +15070,6 @@ func rewriteValuegeneric_OpMod32_0(v *Value) bool { } func rewriteValuegeneric_OpMod32u_0(v *Value) bool { b := v.Block - _ = b // match: (Mod32u (Const32 [c]) (Const32 [d])) // cond: d != 0 // result: (Const32 [int64(uint32(c) % uint32(d))]) @@ -15246,7 +15148,6 @@ func rewriteValuegeneric_OpMod32u_0(v *Value) bool { } func rewriteValuegeneric_OpMod64_0(v *Value) bool { b := v.Block - _ = b // match: (Mod64 (Const64 [c]) (Const64 [d])) // cond: d != 0 // result: (Const64 [c % d]) @@ -15369,7 +15270,6 @@ func rewriteValuegeneric_OpMod64_0(v *Value) bool { } func rewriteValuegeneric_OpMod64u_0(v *Value) bool { b := v.Block - _ = b // match: (Mod64u (Const64 [c]) (Const64 [d])) // cond: d != 0 // result: (Const64 [int64(uint64(c) % uint64(d))]) @@ -15469,7 +15369,6 @@ func rewriteValuegeneric_OpMod64u_0(v *Value) bool { } func rewriteValuegeneric_OpMod8_0(v *Value) bool { b := v.Block - _ = b // match: (Mod8 (Const8 [c]) (Const8 [d])) // cond: d != 0 // result: (Const8 [int64(int8(c % d))]) @@ -15571,7 +15470,6 @@ func rewriteValuegeneric_OpMod8_0(v *Value) bool { } func rewriteValuegeneric_OpMod8u_0(v *Value) bool { b := v.Block - _ = b // match: (Mod8u (Const8 [c]) (Const8 [d])) // cond: d != 0 // result: (Const8 [int64(uint8(c) % uint8(d))]) @@ -15650,7 +15548,6 @@ func rewriteValuegeneric_OpMod8u_0(v *Value) bool { } func rewriteValuegeneric_OpMove_0(v *Value) bool { b := v.Block - _ = b // match: (Move {t} [n] dst1 src mem:(Zero {t} [n] dst2 _)) // cond: isSamePtr(src, dst2) // result: (Zero {t} [n] dst1 mem) @@ -16148,7 +16045,6 @@ func rewriteValuegeneric_OpMove_0(v *Value) bool { } func rewriteValuegeneric_OpMove_10(v *Value) bool { b := v.Block - _ = b // match: (Move {t1} [n] dst p1 mem:(VarDef (Store {t2} op2:(OffPtr [o2] p2) d1 (Store {t3} op3:(OffPtr [0] p3) d2 _)))) // cond: isSamePtr(p1, p2) && isSamePtr(p2, p3) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && o2 == sizeof(t3) && n == sizeof(t2) + sizeof(t3) // result: (Store {t2} (OffPtr [o2] dst) d1 (Store {t3} (OffPtr [0] dst) d2 mem)) @@ -16978,9 +16874,7 @@ func rewriteValuegeneric_OpMove_10(v *Value) bool { } func rewriteValuegeneric_OpMove_20(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (Move {t1} [n] dst p1 mem:(VarDef (Store {t2} (OffPtr [o2] p2) d1 (Store {t3} (OffPtr [o3] p3) d2 (Store {t4} (OffPtr [o4] p4) d3 (Store {t5} (OffPtr [o5] p5) d4 (Zero {t6} [n] p6 _))))))) // cond: isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && isSamePtr(p5, p6) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && alignof(t6) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && registerizable(b, t5) && n >= o2 + sizeof(t2) && n >= o3 + sizeof(t3) && n >= o4 + sizeof(t4) && n >= o5 + sizeof(t5) // result: (Store {t2} (OffPtr [o2] dst) d1 (Store {t3} (OffPtr [o3] dst) d2 (Store {t4} (OffPtr [o4] dst) d3 (Store {t5} (OffPtr [o5] dst) d4 (Zero {t1} [n] dst mem))))) @@ -17188,9 +17082,7 @@ func rewriteValuegeneric_OpMove_20(v *Value) bool { } func rewriteValuegeneric_OpMul16_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mul16 (Const16 [c]) (Const16 [d])) // cond: // result: (Const16 [int64(int16(c*d))]) @@ -17397,7 +17289,6 @@ func rewriteValuegeneric_OpMul16_0(v *Value) bool { } func rewriteValuegeneric_OpMul16_10(v *Value) bool { b := v.Block - _ = b // match: (Mul16 (Const16 [0]) _) // cond: // result: (Const16 [0]) @@ -17562,9 +17453,7 @@ func rewriteValuegeneric_OpMul16_10(v *Value) bool { } func rewriteValuegeneric_OpMul32_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mul32 (Const32 [c]) (Const32 [d])) // cond: // result: (Const32 [int64(int32(c*d))]) @@ -17771,7 +17660,6 @@ func rewriteValuegeneric_OpMul32_0(v *Value) bool { } func rewriteValuegeneric_OpMul32_10(v *Value) bool { b := v.Block - _ = b // match: (Mul32 (Const32 [c]) (Add32 (Const32 [d]) x)) // cond: // result: (Add32 (Const32 [int64(int32(c*d))]) (Mul32 (Const32 [c]) x)) @@ -18243,9 +18131,7 @@ func rewriteValuegeneric_OpMul32F_0(v *Value) bool { } func rewriteValuegeneric_OpMul64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mul64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c*d]) @@ -18452,7 +18338,6 @@ func rewriteValuegeneric_OpMul64_0(v *Value) bool { } func rewriteValuegeneric_OpMul64_10(v *Value) bool { b := v.Block - _ = b // match: (Mul64 (Const64 [c]) (Add64 (Const64 [d]) x)) // cond: // result: (Add64 (Const64 [c*d]) (Mul64 (Const64 [c]) x)) @@ -18924,9 +18809,7 @@ func rewriteValuegeneric_OpMul64F_0(v *Value) bool { } func rewriteValuegeneric_OpMul8_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Mul8 (Const8 [c]) (Const8 [d])) // cond: // result: (Const8 [int64(int8(c*d))]) @@ -19133,7 +19016,6 @@ func rewriteValuegeneric_OpMul8_0(v *Value) bool { } func rewriteValuegeneric_OpMul8_10(v *Value) bool { b := v.Block - _ = b // match: (Mul8 (Const8 [0]) _) // cond: // result: (Const8 [0]) @@ -19464,7 +19346,6 @@ func rewriteValuegeneric_OpNeg8_0(v *Value) bool { } func rewriteValuegeneric_OpNeq16_0(v *Value) bool { b := v.Block - _ = b // match: (Neq16 x x) // cond: // result: (ConstBool [0]) @@ -19702,7 +19583,6 @@ func rewriteValuegeneric_OpNeq16_0(v *Value) bool { } func rewriteValuegeneric_OpNeq32_0(v *Value) bool { b := v.Block - _ = b // match: (Neq32 x x) // cond: // result: (ConstBool [0]) @@ -19981,7 +19861,6 @@ func rewriteValuegeneric_OpNeq32F_0(v *Value) bool { } func rewriteValuegeneric_OpNeq64_0(v *Value) bool { b := v.Block - _ = b // match: (Neq64 x x) // cond: // result: (ConstBool [0]) @@ -20260,7 +20139,6 @@ func rewriteValuegeneric_OpNeq64F_0(v *Value) bool { } func rewriteValuegeneric_OpNeq8_0(v *Value) bool { b := v.Block - _ = b // match: (Neq8 x x) // cond: // result: (ConstBool [0]) @@ -20649,9 +20527,7 @@ func rewriteValuegeneric_OpNeqB_0(v *Value) bool { } func rewriteValuegeneric_OpNeqInter_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (NeqInter x y) // cond: // result: (NeqPtr (ITab x) (ITab y)) @@ -21143,9 +21019,7 @@ func rewriteValuegeneric_OpNeqPtr_20(v *Value) bool { } func rewriteValuegeneric_OpNeqSlice_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (NeqSlice x y) // cond: // result: (NeqPtr (SlicePtr x) (SlicePtr y)) @@ -21165,11 +21039,8 @@ func rewriteValuegeneric_OpNeqSlice_0(v *Value) bool { } func rewriteValuegeneric_OpNilCheck_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config fe := b.Func.fe - _ = fe // match: (NilCheck (GetG mem) mem) // cond: // result: mem @@ -22174,7 +22045,6 @@ func rewriteValuegeneric_OpOr16_0(v *Value) bool { } func rewriteValuegeneric_OpOr16_10(v *Value) bool { b := v.Block - _ = b // match: (Or16 (Or16 y x) x) // cond: // result: (Or16 x y) @@ -22471,7 +22341,6 @@ func rewriteValuegeneric_OpOr16_10(v *Value) bool { } func rewriteValuegeneric_OpOr16_20(v *Value) bool { b := v.Block - _ = b // match: (Or16 (Const16 [c]) (Or16 x (Const16 [d]))) // cond: // result: (Or16 (Const16 [int64(int16(c|d))]) x) @@ -22755,7 +22624,6 @@ func rewriteValuegeneric_OpOr32_0(v *Value) bool { } func rewriteValuegeneric_OpOr32_10(v *Value) bool { b := v.Block - _ = b // match: (Or32 (Or32 y x) x) // cond: // result: (Or32 x y) @@ -23052,7 +22920,6 @@ func rewriteValuegeneric_OpOr32_10(v *Value) bool { } func rewriteValuegeneric_OpOr32_20(v *Value) bool { b := v.Block - _ = b // match: (Or32 (Const32 [c]) (Or32 x (Const32 [d]))) // cond: // result: (Or32 (Const32 [int64(int32(c|d))]) x) @@ -23336,7 +23203,6 @@ func rewriteValuegeneric_OpOr64_0(v *Value) bool { } func rewriteValuegeneric_OpOr64_10(v *Value) bool { b := v.Block - _ = b // match: (Or64 (Or64 y x) x) // cond: // result: (Or64 x y) @@ -23633,7 +23499,6 @@ func rewriteValuegeneric_OpOr64_10(v *Value) bool { } func rewriteValuegeneric_OpOr64_20(v *Value) bool { b := v.Block - _ = b // match: (Or64 (Const64 [c]) (Or64 x (Const64 [d]))) // cond: // result: (Or64 (Const64 [c|d]) x) @@ -23917,7 +23782,6 @@ func rewriteValuegeneric_OpOr8_0(v *Value) bool { } func rewriteValuegeneric_OpOr8_10(v *Value) bool { b := v.Block - _ = b // match: (Or8 (Or8 y x) x) // cond: // result: (Or8 x y) @@ -24214,7 +24078,6 @@ func rewriteValuegeneric_OpOr8_10(v *Value) bool { } func rewriteValuegeneric_OpOr8_20(v *Value) bool { b := v.Block - _ = b // match: (Or8 (Const8 [c]) (Or8 x (Const8 [d]))) // cond: // result: (Or8 (Const8 [int64(int8(c|d))]) x) @@ -24414,11 +24277,8 @@ func rewriteValuegeneric_OpPhi_0(v *Value) bool { } func rewriteValuegeneric_OpPtrIndex_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config typ := &b.Func.Config.Types - _ = typ // match: (PtrIndex ptr idx) // cond: config.PtrSize == 4 // result: (AddPtr ptr (Mul32 idx (Const32 [t.Elem().Size()]))) @@ -24497,7 +24357,6 @@ func rewriteValuegeneric_OpRound64F_0(v *Value) bool { } func rewriteValuegeneric_OpRsh16Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux16 x (Const16 [c])) // cond: // result: (Rsh16Ux64 x (Const64 [int64(uint16(c))])) @@ -24537,7 +24396,6 @@ func rewriteValuegeneric_OpRsh16Ux16_0(v *Value) bool { } func rewriteValuegeneric_OpRsh16Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux32 x (Const32 [c])) // cond: // result: (Rsh16Ux64 x (Const64 [int64(uint32(c))])) @@ -24577,9 +24435,7 @@ func rewriteValuegeneric_OpRsh16Ux32_0(v *Value) bool { } func rewriteValuegeneric_OpRsh16Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16Ux64 (Const16 [c]) (Const64 [d])) // cond: // result: (Const16 [int64(int16(uint16(c) >> uint64(d)))]) @@ -24784,7 +24640,6 @@ func rewriteValuegeneric_OpRsh16Ux64_0(v *Value) bool { } func rewriteValuegeneric_OpRsh16Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16Ux8 x (Const8 [c])) // cond: // result: (Rsh16Ux64 x (Const64 [int64(uint8(c))])) @@ -24824,7 +24679,6 @@ func rewriteValuegeneric_OpRsh16Ux8_0(v *Value) bool { } func rewriteValuegeneric_OpRsh16x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x16 x (Const16 [c])) // cond: // result: (Rsh16x64 x (Const64 [int64(uint16(c))])) @@ -24864,7 +24718,6 @@ func rewriteValuegeneric_OpRsh16x16_0(v *Value) bool { } func rewriteValuegeneric_OpRsh16x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x32 x (Const32 [c])) // cond: // result: (Rsh16x64 x (Const64 [int64(uint32(c))])) @@ -24904,9 +24757,7 @@ func rewriteValuegeneric_OpRsh16x32_0(v *Value) bool { } func rewriteValuegeneric_OpRsh16x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh16x64 (Const16 [c]) (Const64 [d])) // cond: // result: (Const16 [int64(int16(c) >> uint64(d))]) @@ -25027,7 +24878,6 @@ func rewriteValuegeneric_OpRsh16x64_0(v *Value) bool { } func rewriteValuegeneric_OpRsh16x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh16x8 x (Const8 [c])) // cond: // result: (Rsh16x64 x (Const64 [int64(uint8(c))])) @@ -25067,7 +24917,6 @@ func rewriteValuegeneric_OpRsh16x8_0(v *Value) bool { } func rewriteValuegeneric_OpRsh32Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux16 x (Const16 [c])) // cond: // result: (Rsh32Ux64 x (Const64 [int64(uint16(c))])) @@ -25107,7 +24956,6 @@ func rewriteValuegeneric_OpRsh32Ux16_0(v *Value) bool { } func rewriteValuegeneric_OpRsh32Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux32 x (Const32 [c])) // cond: // result: (Rsh32Ux64 x (Const64 [int64(uint32(c))])) @@ -25147,9 +24995,7 @@ func rewriteValuegeneric_OpRsh32Ux32_0(v *Value) bool { } func rewriteValuegeneric_OpRsh32Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32Ux64 (Const32 [c]) (Const64 [d])) // cond: // result: (Const32 [int64(int32(uint32(c) >> uint64(d)))]) @@ -25385,7 +25231,6 @@ func rewriteValuegeneric_OpRsh32Ux64_0(v *Value) bool { } func rewriteValuegeneric_OpRsh32Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32Ux8 x (Const8 [c])) // cond: // result: (Rsh32Ux64 x (Const64 [int64(uint8(c))])) @@ -25425,7 +25270,6 @@ func rewriteValuegeneric_OpRsh32Ux8_0(v *Value) bool { } func rewriteValuegeneric_OpRsh32x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x16 x (Const16 [c])) // cond: // result: (Rsh32x64 x (Const64 [int64(uint16(c))])) @@ -25465,7 +25309,6 @@ func rewriteValuegeneric_OpRsh32x16_0(v *Value) bool { } func rewriteValuegeneric_OpRsh32x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x32 x (Const32 [c])) // cond: // result: (Rsh32x64 x (Const64 [int64(uint32(c))])) @@ -25505,9 +25348,7 @@ func rewriteValuegeneric_OpRsh32x32_0(v *Value) bool { } func rewriteValuegeneric_OpRsh32x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh32x64 (Const32 [c]) (Const64 [d])) // cond: // result: (Const32 [int64(int32(c) >> uint64(d))]) @@ -25659,7 +25500,6 @@ func rewriteValuegeneric_OpRsh32x64_0(v *Value) bool { } func rewriteValuegeneric_OpRsh32x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh32x8 x (Const8 [c])) // cond: // result: (Rsh32x64 x (Const64 [int64(uint8(c))])) @@ -25699,7 +25539,6 @@ func rewriteValuegeneric_OpRsh32x8_0(v *Value) bool { } func rewriteValuegeneric_OpRsh64Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64Ux16 x (Const16 [c])) // cond: // result: (Rsh64Ux64 x (Const64 [int64(uint16(c))])) @@ -25739,7 +25578,6 @@ func rewriteValuegeneric_OpRsh64Ux16_0(v *Value) bool { } func rewriteValuegeneric_OpRsh64Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64Ux32 x (Const32 [c])) // cond: // result: (Rsh64Ux64 x (Const64 [int64(uint32(c))])) @@ -25779,9 +25617,7 @@ func rewriteValuegeneric_OpRsh64Ux32_0(v *Value) bool { } func rewriteValuegeneric_OpRsh64Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64Ux64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [int64(uint64(c) >> uint64(d))]) @@ -26048,7 +25884,6 @@ func rewriteValuegeneric_OpRsh64Ux64_0(v *Value) bool { } func rewriteValuegeneric_OpRsh64Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64Ux8 x (Const8 [c])) // cond: // result: (Rsh64Ux64 x (Const64 [int64(uint8(c))])) @@ -26088,7 +25923,6 @@ func rewriteValuegeneric_OpRsh64Ux8_0(v *Value) bool { } func rewriteValuegeneric_OpRsh64x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x16 x (Const16 [c])) // cond: // result: (Rsh64x64 x (Const64 [int64(uint16(c))])) @@ -26128,7 +25962,6 @@ func rewriteValuegeneric_OpRsh64x16_0(v *Value) bool { } func rewriteValuegeneric_OpRsh64x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x32 x (Const32 [c])) // cond: // result: (Rsh64x64 x (Const64 [int64(uint32(c))])) @@ -26168,9 +26001,7 @@ func rewriteValuegeneric_OpRsh64x32_0(v *Value) bool { } func rewriteValuegeneric_OpRsh64x64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh64x64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c >> uint64(d)]) @@ -26353,7 +26184,6 @@ func rewriteValuegeneric_OpRsh64x64_0(v *Value) bool { } func rewriteValuegeneric_OpRsh64x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh64x8 x (Const8 [c])) // cond: // result: (Rsh64x64 x (Const64 [int64(uint8(c))])) @@ -26393,7 +26223,6 @@ func rewriteValuegeneric_OpRsh64x8_0(v *Value) bool { } func rewriteValuegeneric_OpRsh8Ux16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux16 x (Const16 [c])) // cond: // result: (Rsh8Ux64 x (Const64 [int64(uint16(c))])) @@ -26433,7 +26262,6 @@ func rewriteValuegeneric_OpRsh8Ux16_0(v *Value) bool { } func rewriteValuegeneric_OpRsh8Ux32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux32 x (Const32 [c])) // cond: // result: (Rsh8Ux64 x (Const64 [int64(uint32(c))])) @@ -26473,9 +26301,7 @@ func rewriteValuegeneric_OpRsh8Ux32_0(v *Value) bool { } func rewriteValuegeneric_OpRsh8Ux64_0(v *Value) bool { b := v.Block - _ = b typ := &b.Func.Config.Types - _ = typ // match: (Rsh8Ux64 (Const8 [c]) (Const64 [d])) // cond: // result: (Const8 [int64(int8(uint8(c) >> uint64(d)))]) @@ -26649,7 +26475,6 @@ func rewriteValuegeneric_OpRsh8Ux64_0(v *Value) bool { } func rewriteValuegeneric_OpRsh8Ux8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8Ux8 x (Const8 [c])) // cond: // result: (Rsh8Ux64 x (Const64 [int64(uint8(c))])) @@ -26689,7 +26514,6 @@ func rewriteValuegeneric_OpRsh8Ux8_0(v *Value) bool { } func rewriteValuegeneric_OpRsh8x16_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x16 x (Const16 [c])) // cond: // result: (Rsh8x64 x (Const64 [int64(uint16(c))])) @@ -26729,7 +26553,6 @@ func rewriteValuegeneric_OpRsh8x16_0(v *Value) bool { } func rewriteValuegeneric_OpRsh8x32_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x32 x (Const32 [c])) // cond: // result: (Rsh8x64 x (Const64 [int64(uint32(c))])) @@ -26769,7 +26592,6 @@ func rewriteValuegeneric_OpRsh8x32_0(v *Value) bool { } func rewriteValuegeneric_OpRsh8x64_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x64 (Const8 [c]) (Const64 [d])) // cond: // result: (Const8 [int64(int8(c) >> uint64(d))]) @@ -26859,7 +26681,6 @@ func rewriteValuegeneric_OpRsh8x64_0(v *Value) bool { } func rewriteValuegeneric_OpRsh8x8_0(v *Value) bool { b := v.Block - _ = b // match: (Rsh8x8 x (Const8 [c])) // cond: // result: (Rsh8x64 x (Const64 [int64(uint8(c))])) @@ -27393,9 +27214,7 @@ func rewriteValuegeneric_OpSqrt_0(v *Value) bool { } func rewriteValuegeneric_OpStaticCall_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (StaticCall {sym} s1:(Store _ (Const64 [sz]) s2:(Store _ src s3:(Store {t} _ dst mem)))) // cond: isSameSym(sym,"runtime.memmove") && t.(*types.Type).IsPtr() && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && isInlinableMemmove(dst,src,sz,config) && clobber(s1) && clobber(s2) && clobber(s3) // result: (Move {t.(*types.Type).Elem()} [sz] dst src mem) @@ -27494,7 +27313,6 @@ func rewriteValuegeneric_OpStaticCall_0(v *Value) bool { } func rewriteValuegeneric_OpStore_0(v *Value) bool { b := v.Block - _ = b // match: (Store {t1} p1 (Load p2 mem) mem) // cond: isSamePtr(p1, p2) && t2.Size() == sizeof(t1) // result: mem @@ -27837,11 +27655,8 @@ func rewriteValuegeneric_OpStore_0(v *Value) bool { } func rewriteValuegeneric_OpStore_10(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config fe := b.Func.fe - _ = fe // match: (Store dst (StructMake2 f0 f1) mem) // cond: // result: (Store {t.FieldType(1)} (OffPtr [t.FieldOff(1)] dst) f1 (Store {t.FieldType(0)} (OffPtr [0] dst) f0 mem)) @@ -28189,7 +28004,6 @@ func rewriteValuegeneric_OpStore_10(v *Value) bool { } func rewriteValuegeneric_OpStore_20(v *Value) bool { b := v.Block - _ = b // match: (Store {t1} op1:(OffPtr [o1] p1) d1 m2:(Store {t2} op2:(OffPtr [o2] p2) d2 m3:(Store {t3} op3:(OffPtr [0] p3) d3 m4:(Move [n] p4 _ mem)))) // cond: m2.Uses == 1 && m3.Uses == 1 && m4.Uses == 1 && o2 == sizeof(t3) && o1-o2 == sizeof(t2) && n == sizeof(t3) + sizeof(t2) + sizeof(t1) && isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && clobber(m2) && clobber(m3) && clobber(m4) // result: (Store {t1} op1 d1 (Store {t2} op2 d2 (Store {t3} op3 d3 mem))) @@ -28784,9 +28598,7 @@ func rewriteValuegeneric_OpStructSelect_0(v *Value) bool { } func rewriteValuegeneric_OpStructSelect_10(v *Value) bool { b := v.Block - _ = b fe := b.Func.fe - _ = fe // match: (StructSelect [i] x:(Load ptr mem)) // cond: !fe.CanSSA(t) // result: @x.Block (Load (OffPtr [t.FieldOff(int(i))] ptr) mem) @@ -28834,7 +28646,6 @@ func rewriteValuegeneric_OpStructSelect_10(v *Value) bool { } func rewriteValuegeneric_OpSub16_0(v *Value) bool { b := v.Block - _ = b // match: (Sub16 (Const16 [c]) (Const16 [d])) // cond: // result: (Const16 [int64(int16(c-d))]) @@ -29073,7 +28884,6 @@ func rewriteValuegeneric_OpSub16_0(v *Value) bool { } func rewriteValuegeneric_OpSub16_10(v *Value) bool { b := v.Block - _ = b // match: (Sub16 (Add16 y x) y) // cond: // result: x @@ -29218,7 +29028,6 @@ func rewriteValuegeneric_OpSub16_10(v *Value) bool { } func rewriteValuegeneric_OpSub32_0(v *Value) bool { b := v.Block - _ = b // match: (Sub32 (Const32 [c]) (Const32 [d])) // cond: // result: (Const32 [int64(int32(c-d))]) @@ -29457,7 +29266,6 @@ func rewriteValuegeneric_OpSub32_0(v *Value) bool { } func rewriteValuegeneric_OpSub32_10(v *Value) bool { b := v.Block - _ = b // match: (Sub32 (Add32 y x) y) // cond: // result: x @@ -29624,7 +29432,6 @@ func rewriteValuegeneric_OpSub32F_0(v *Value) bool { } func rewriteValuegeneric_OpSub64_0(v *Value) bool { b := v.Block - _ = b // match: (Sub64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c-d]) @@ -29863,7 +29670,6 @@ func rewriteValuegeneric_OpSub64_0(v *Value) bool { } func rewriteValuegeneric_OpSub64_10(v *Value) bool { b := v.Block - _ = b // match: (Sub64 (Add64 y x) y) // cond: // result: x @@ -30030,7 +29836,6 @@ func rewriteValuegeneric_OpSub64F_0(v *Value) bool { } func rewriteValuegeneric_OpSub8_0(v *Value) bool { b := v.Block - _ = b // match: (Sub8 (Const8 [c]) (Const8 [d])) // cond: // result: (Const8 [int64(int8(c-d))]) @@ -30269,7 +30074,6 @@ func rewriteValuegeneric_OpSub8_0(v *Value) bool { } func rewriteValuegeneric_OpSub8_10(v *Value) bool { b := v.Block - _ = b // match: (Sub8 (Add8 y x) y) // cond: // result: x @@ -31046,7 +30850,6 @@ func rewriteValuegeneric_OpTrunc64to8_0(v *Value) bool { } func rewriteValuegeneric_OpXor16_0(v *Value) bool { b := v.Block - _ = b // match: (Xor16 (Const16 [c]) (Const16 [d])) // cond: // result: (Const16 [int64(int16(c^d))]) @@ -31246,7 +31049,6 @@ func rewriteValuegeneric_OpXor16_0(v *Value) bool { } func rewriteValuegeneric_OpXor16_10(v *Value) bool { b := v.Block - _ = b // match: (Xor16 (Xor16 z i:(Const16 )) x) // cond: (z.Op != OpConst16 && x.Op != OpConst16) // result: (Xor16 i (Xor16 z x)) @@ -31463,7 +31265,6 @@ func rewriteValuegeneric_OpXor16_10(v *Value) bool { } func rewriteValuegeneric_OpXor32_0(v *Value) bool { b := v.Block - _ = b // match: (Xor32 (Const32 [c]) (Const32 [d])) // cond: // result: (Const32 [int64(int32(c^d))]) @@ -31663,7 +31464,6 @@ func rewriteValuegeneric_OpXor32_0(v *Value) bool { } func rewriteValuegeneric_OpXor32_10(v *Value) bool { b := v.Block - _ = b // match: (Xor32 (Xor32 z i:(Const32 )) x) // cond: (z.Op != OpConst32 && x.Op != OpConst32) // result: (Xor32 i (Xor32 z x)) @@ -31880,7 +31680,6 @@ func rewriteValuegeneric_OpXor32_10(v *Value) bool { } func rewriteValuegeneric_OpXor64_0(v *Value) bool { b := v.Block - _ = b // match: (Xor64 (Const64 [c]) (Const64 [d])) // cond: // result: (Const64 [c^d]) @@ -32080,7 +31879,6 @@ func rewriteValuegeneric_OpXor64_0(v *Value) bool { } func rewriteValuegeneric_OpXor64_10(v *Value) bool { b := v.Block - _ = b // match: (Xor64 (Xor64 z i:(Const64 )) x) // cond: (z.Op != OpConst64 && x.Op != OpConst64) // result: (Xor64 i (Xor64 z x)) @@ -32297,7 +32095,6 @@ func rewriteValuegeneric_OpXor64_10(v *Value) bool { } func rewriteValuegeneric_OpXor8_0(v *Value) bool { b := v.Block - _ = b // match: (Xor8 (Const8 [c]) (Const8 [d])) // cond: // result: (Const8 [int64(int8(c^d))]) @@ -32497,7 +32294,6 @@ func rewriteValuegeneric_OpXor8_0(v *Value) bool { } func rewriteValuegeneric_OpXor8_10(v *Value) bool { b := v.Block - _ = b // match: (Xor8 (Xor8 z i:(Const8 )) x) // cond: (z.Op != OpConst8 && x.Op != OpConst8) // result: (Xor8 i (Xor8 z x)) @@ -32714,9 +32510,7 @@ func rewriteValuegeneric_OpXor8_10(v *Value) bool { } func rewriteValuegeneric_OpZero_0(v *Value) bool { b := v.Block - _ = b config := b.Func.Config - _ = config // match: (Zero (Load (OffPtr [c] (SP)) mem) mem) // cond: mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize // result: mem -- 2.48.1