diff --git a/src/cmd/compile/internal/ssa/gen/rulegen.go b/src/cmd/compile/internal/ssa/gen/rulegen.go index 759336fb2b..8e88d0b6a3 100644 --- a/src/cmd/compile/internal/ssa/gen/rulegen.go +++ b/src/cmd/compile/internal/ssa/gen/rulegen.go @@ -1001,16 +1001,21 @@ func genMatch0(rr *RuleRewrite, arch arch, match, v string, cnt map[string]int, } } - // Access last argument first to minimize bounds checks. - if n := len(args); n > 1 && !pregenTop { - a := args[n-1] - if a != "_" && !rr.declared(a) && token.IsIdentifier(a) && !(commutative && len(args) == 2) { - rr.add(declf(a, "%s.Args[%d]", v, n-1)) - - // delete the last argument so it is not reprocessed - args = args[:n-1] - } else { - rr.add(stmtf("_ = %s.Args[%d]", v, n-1)) + if !pregenTop { + // Access last argument first to minimize bounds checks. + for n := len(args) - 1; n > 0; n-- { + a := args[n] + if a == "_" { + continue + } + if !rr.declared(a) && token.IsIdentifier(a) && !(commutative && len(args) == 2) { + rr.add(declf(a, "%s.Args[%d]", v, n)) + // delete the last argument so it is not reprocessed + args = args[:n] + } else { + rr.add(stmtf("_ = %s.Args[%d]", v, n)) + } + break } } if commutative && !pregenTop { diff --git a/src/cmd/compile/internal/ssa/rewrite386.go b/src/cmd/compile/internal/ssa/rewrite386.go index b83c65da86..8b2da94c13 100644 --- a/src/cmd/compile/internal/ssa/rewrite386.go +++ b/src/cmd/compile/internal/ssa/rewrite386.go @@ -4087,9 +4087,8 @@ func rewriteValue386_Op386MOVBLSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -4203,9 +4202,8 @@ func rewriteValue386_Op386MOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -5109,9 +5107,8 @@ func rewriteValue386_Op386MOVLload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -7523,9 +7520,8 @@ func rewriteValue386_Op386MOVWLSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -7663,9 +7659,8 @@ func rewriteValue386_Op386MOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index a0d422b372..c37bae2c22 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -1858,11 +1858,10 @@ func rewriteValueAMD64_OpAMD64ADDLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ADDL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -2479,11 +2478,10 @@ func rewriteValueAMD64_OpAMD64ADDQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ADDQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) @@ -2634,11 +2632,10 @@ func rewriteValueAMD64_OpAMD64ADDSDload(v *Value) bool { if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ADDSD) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64) v0.AddArg(y) @@ -2738,11 +2735,10 @@ func rewriteValueAMD64_OpAMD64ADDSSload(v *Value) bool { if v_2.Op != OpAMD64MOVLstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ADDSS) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32) v0.AddArg(y) @@ -3063,11 +3059,10 @@ func rewriteValueAMD64_OpAMD64ANDLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ANDL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -3450,11 +3445,10 @@ func rewriteValueAMD64_OpAMD64ANDQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ANDQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) @@ -9766,9 +9760,8 @@ func rewriteValueAMD64_OpAMD64MOVBQSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -10019,9 +10012,8 @@ func rewriteValueAMD64_OpAMD64MOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -12046,9 +12038,8 @@ func rewriteValueAMD64_OpAMD64MOVLQSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -12353,9 +12344,8 @@ func rewriteValueAMD64_OpAMD64MOVLload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -12554,11 +12544,10 @@ func rewriteValueAMD64_OpAMD64MOVLload(v *Value) bool { if v_1.Op != OpAMD64MOVSSstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpAMD64MOVLf2i) v.AddArg(val) return true @@ -14721,7 +14710,6 @@ func rewriteValueAMD64_OpAMD64MOVOstore(v *Value) bool { } srcOff := v_1.AuxInt srcSym := v_1.Aux - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpSB { break @@ -14863,9 +14851,8 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -15040,11 +15027,10 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value) bool { if v_1.Op != OpAMD64MOVSDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpAMD64MOVQf2i) v.AddArg(val) return true @@ -16627,11 +16613,10 @@ func rewriteValueAMD64_OpAMD64MOVSDload(v *Value) bool { if v_1.Op != OpAMD64MOVQstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpAMD64MOVQi2f) v.AddArg(val) return true @@ -17237,11 +17222,10 @@ func rewriteValueAMD64_OpAMD64MOVSSload(v *Value) bool { if v_1.Op != OpAMD64MOVLstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpAMD64MOVLi2f) v.AddArg(val) return true @@ -17847,9 +17831,8 @@ func rewriteValueAMD64_OpAMD64MOVWQSXload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -18066,9 +18049,8 @@ func rewriteValueAMD64_OpAMD64MOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -20680,11 +20662,10 @@ func rewriteValueAMD64_OpAMD64MULSDload(v *Value) bool { if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64MULSD) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64) v0.AddArg(y) @@ -20784,11 +20765,10 @@ func rewriteValueAMD64_OpAMD64MULSSload(v *Value) bool { if v_2.Op != OpAMD64MOVLstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64MULSS) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32) v0.AddArg(y) @@ -22560,11 +22540,10 @@ func rewriteValueAMD64_OpAMD64ORLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ORL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -24304,11 +24283,10 @@ func rewriteValueAMD64_OpAMD64ORQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64ORQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) @@ -30779,11 +30757,10 @@ func rewriteValueAMD64_OpAMD64SUBLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64SUBL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -31059,11 +31036,10 @@ func rewriteValueAMD64_OpAMD64SUBQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64SUBQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) @@ -31211,11 +31187,10 @@ func rewriteValueAMD64_OpAMD64SUBSDload(v *Value) bool { if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64SUBSD) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64) v0.AddArg(y) @@ -31312,11 +31287,10 @@ func rewriteValueAMD64_OpAMD64SUBSSload(v *Value) bool { if v_2.Op != OpAMD64MOVLstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64SUBSS) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32) v0.AddArg(y) @@ -32238,11 +32212,10 @@ func rewriteValueAMD64_OpAMD64XORLload(v *Value) bool { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64XORL) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0.AddArg(y) @@ -32603,11 +32576,10 @@ func rewriteValueAMD64_OpAMD64XORQload(v *Value) bool { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] + y := v_2.Args[1] if ptr != v_2.Args[0] { break } - y := v_2.Args[1] v.reset(OpAMD64XORQ) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0.AddArg(y) diff --git a/src/cmd/compile/internal/ssa/rewriteARM.go b/src/cmd/compile/internal/ssa/rewriteARM.go index 52ab522434..91ef5fe14f 100644 --- a/src/cmd/compile/internal/ssa/rewriteARM.go +++ b/src/cmd/compile/internal/ssa/rewriteARM.go @@ -5120,9 +5120,8 @@ func rewriteValueARM_OpARMMOVBUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -5179,13 +5178,9 @@ func rewriteValueARM_OpARMMOVBUloadidx(v *Value) bool { if v_2.Op != OpARMMOVBstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.reset(OpARMMOVBUreg) @@ -5231,7 +5226,6 @@ func rewriteValueARM_OpARMMOVBUreg(v *Value) bool { if x.Op != OpARMMOVBUload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -5344,9 +5338,8 @@ func rewriteValueARM_OpARMMOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -5390,13 +5383,9 @@ func rewriteValueARM_OpARMMOVBloadidx(v *Value) bool { if v_2.Op != OpARMMOVBstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.reset(OpARMMOVBreg) @@ -5442,7 +5431,6 @@ func rewriteValueARM_OpARMMOVBreg(v *Value) bool { if x.Op != OpARMMOVBload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -5751,9 +5739,8 @@ func rewriteValueARM_OpARMMOVDload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -5898,9 +5885,8 @@ func rewriteValueARM_OpARMMOVFload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6047,9 +6033,8 @@ func rewriteValueARM_OpARMMOVHUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6106,13 +6091,9 @@ func rewriteValueARM_OpARMMOVHUloadidx(v *Value) bool { if v_2.Op != OpARMMOVHstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.reset(OpARMMOVHUreg) @@ -6158,7 +6139,6 @@ func rewriteValueARM_OpARMMOVHUreg(v *Value) bool { if x.Op != OpARMMOVBUload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6170,7 +6150,6 @@ func rewriteValueARM_OpARMMOVHUreg(v *Value) bool { if x.Op != OpARMMOVHUload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6294,9 +6273,8 @@ func rewriteValueARM_OpARMMOVHload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6340,13 +6318,9 @@ func rewriteValueARM_OpARMMOVHloadidx(v *Value) bool { if v_2.Op != OpARMMOVHstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.reset(OpARMMOVHreg) @@ -6392,7 +6366,6 @@ func rewriteValueARM_OpARMMOVHreg(v *Value) bool { if x.Op != OpARMMOVBload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6404,7 +6377,6 @@ func rewriteValueARM_OpARMMOVHreg(v *Value) bool { if x.Op != OpARMMOVBUload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6416,7 +6388,6 @@ func rewriteValueARM_OpARMMOVHreg(v *Value) bool { if x.Op != OpARMMOVHload { break } - _ = x.Args[1] v.reset(OpARMMOVWreg) v.AddArg(x) return true @@ -6715,9 +6686,8 @@ func rewriteValueARM_OpARMMOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6842,13 +6812,9 @@ func rewriteValueARM_OpARMMOVWloadidx(v *Value) bool { if v_2.Op != OpARMMOVWstoreidx { break } - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) { break } v.copyOf(x) @@ -6989,13 +6955,9 @@ func rewriteValueARM_OpARMMOVWloadshiftLL(v *Value) bool { break } d := v_2.AuxInt - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(c == d && isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(c == d && isSamePtr(ptr, ptr2)) { break } v.copyOf(x) @@ -7033,13 +6995,9 @@ func rewriteValueARM_OpARMMOVWloadshiftRA(v *Value) bool { break } d := v_2.AuxInt - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(c == d && isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(c == d && isSamePtr(ptr, ptr2)) { break } v.copyOf(x) @@ -7077,13 +7035,9 @@ func rewriteValueARM_OpARMMOVWloadshiftRL(v *Value) bool { break } d := v_2.AuxInt - _ = v_2.Args[3] - ptr2 := v_2.Args[0] - if idx != v_2.Args[1] { - break - } x := v_2.Args[2] - if !(c == d && isSamePtr(ptr, ptr2)) { + ptr2 := v_2.Args[0] + if idx != v_2.Args[1] || !(c == d && isSamePtr(ptr, ptr2)) { break } v.copyOf(x) diff --git a/src/cmd/compile/internal/ssa/rewriteARM64.go b/src/cmd/compile/internal/ssa/rewriteARM64.go index 99beedcea1..4d1ed50d9b 100644 --- a/src/cmd/compile/internal/ssa/rewriteARM64.go +++ b/src/cmd/compile/internal/ssa/rewriteARM64.go @@ -4118,11 +4118,10 @@ func rewriteValueARM64_OpARM64FMOVDload(v *Value) bool { if v_1.Op != OpARM64MOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpARM64FMOVDgpfp) v.AddArg(val) return true @@ -4366,11 +4365,10 @@ func rewriteValueARM64_OpARM64FMOVSload(v *Value) bool { if v_1.Op != OpARM64MOVWstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpARM64FMOVSgpfp) v.AddArg(val) return true @@ -6838,7 +6836,6 @@ func rewriteValueARM64_OpARM64MOVBUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -6903,9 +6900,8 @@ func rewriteValueARM64_OpARM64MOVBUloadidx(v *Value) bool { if v_2.Op != OpARM64MOVBstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -6924,7 +6920,6 @@ func rewriteValueARM64_OpARM64MOVBUreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -6936,7 +6931,6 @@ func rewriteValueARM64_OpARM64MOVBUreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -7103,7 +7097,6 @@ func rewriteValueARM64_OpARM64MOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -7155,9 +7148,8 @@ func rewriteValueARM64_OpARM64MOVBloadidx(v *Value) bool { if v_2.Op != OpARM64MOVBstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -7176,7 +7168,6 @@ func rewriteValueARM64_OpARM64MOVBreg(v *Value) bool { if x.Op != OpARM64MOVBload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -7188,7 +7179,6 @@ func rewriteValueARM64_OpARM64MOVBreg(v *Value) bool { if x.Op != OpARM64MOVBloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -9277,11 +9267,10 @@ func rewriteValueARM64_OpARM64MOVDload(v *Value) bool { if v_1.Op != OpARM64FMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpARM64FMOVDfpgp) v.AddArg(val) return true @@ -9379,7 +9368,6 @@ func rewriteValueARM64_OpARM64MOVDload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -9470,9 +9458,8 @@ func rewriteValueARM64_OpARM64MOVDloadidx(v *Value) bool { if v_2.Op != OpARM64MOVDstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -9509,9 +9496,8 @@ func rewriteValueARM64_OpARM64MOVDloadidx8(v *Value) bool { if v_2.Op != OpARM64MOVDstorezeroidx8 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -10145,7 +10131,6 @@ func rewriteValueARM64_OpARM64MOVHUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -10255,9 +10240,8 @@ func rewriteValueARM64_OpARM64MOVHUloadidx(v *Value) bool { if v_2.Op != OpARM64MOVHstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -10294,9 +10278,8 @@ func rewriteValueARM64_OpARM64MOVHUloadidx2(v *Value) bool { if v_2.Op != OpARM64MOVHstorezeroidx2 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -10315,7 +10298,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10327,7 +10309,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVHUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10339,7 +10320,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10351,7 +10331,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10363,7 +10342,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10548,7 +10526,6 @@ func rewriteValueARM64_OpARM64MOVHload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -10645,9 +10622,8 @@ func rewriteValueARM64_OpARM64MOVHloadidx(v *Value) bool { if v_2.Op != OpARM64MOVHstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -10684,9 +10660,8 @@ func rewriteValueARM64_OpARM64MOVHloadidx2(v *Value) bool { if v_2.Op != OpARM64MOVHstorezeroidx2 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -10705,7 +10680,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVBload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10717,7 +10691,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10729,7 +10702,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVHload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10741,7 +10713,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVBloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10753,7 +10724,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10765,7 +10735,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVHloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -10777,7 +10746,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool { if x.Op != OpARM64MOVHloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12086,11 +12054,10 @@ func rewriteValueARM64_OpARM64MOVWUload(v *Value) bool { if v_1.Op != OpARM64FMOVSstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + val := v_1.Args[1] if ptr != v_1.Args[0] { break } - val := v_1.Args[1] v.reset(OpARM64FMOVSfpgp) v.AddArg(val) return true @@ -12188,7 +12155,6 @@ func rewriteValueARM64_OpARM64MOVWUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -12279,9 +12245,8 @@ func rewriteValueARM64_OpARM64MOVWUloadidx(v *Value) bool { if v_2.Op != OpARM64MOVWstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -12318,9 +12283,8 @@ func rewriteValueARM64_OpARM64MOVWUloadidx4(v *Value) bool { if v_2.Op != OpARM64MOVWstorezeroidx4 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -12339,7 +12303,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12351,7 +12314,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVHUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12363,7 +12325,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVWUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12375,7 +12336,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12387,7 +12347,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12399,7 +12358,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVWUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12411,7 +12369,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12423,7 +12380,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool { if x.Op != OpARM64MOVWUloadidx4 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12619,7 +12575,6 @@ func rewriteValueARM64_OpARM64MOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[1] ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break @@ -12697,9 +12652,8 @@ func rewriteValueARM64_OpARM64MOVWloadidx(v *Value) bool { if v_2.Op != OpARM64MOVWstorezeroidx { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { break } @@ -12736,9 +12690,8 @@ func rewriteValueARM64_OpARM64MOVWloadidx4(v *Value) bool { if v_2.Op != OpARM64MOVWstorezeroidx4 { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] idx2 := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { break } @@ -12757,7 +12710,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVBload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12769,7 +12721,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVBUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12781,7 +12732,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12793,7 +12743,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHUload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12805,7 +12754,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVWload { break } - _ = x.Args[1] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12817,7 +12765,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVBloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12829,7 +12776,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVBUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12841,7 +12787,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12853,7 +12798,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12865,7 +12809,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVWloadidx { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12877,7 +12820,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12889,7 +12831,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVHUloadidx2 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true @@ -12901,7 +12842,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool { if x.Op != OpARM64MOVWloadidx4 { break } - _ = x.Args[2] v.reset(OpARM64MOVDreg) v.AddArg(x) return true diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS.go b/src/cmd/compile/internal/ssa/rewriteMIPS.go index 83bb92fc35..5815874db9 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS.go @@ -2416,9 +2416,8 @@ func rewriteValueMIPS_OpMIPSMOVBUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -2438,7 +2437,6 @@ func rewriteValueMIPS_OpMIPSMOVBUreg(v *Value) bool { if x.Op != OpMIPSMOVBUload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -2563,9 +2561,8 @@ func rewriteValueMIPS_OpMIPSMOVBload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -2585,7 +2582,6 @@ func rewriteValueMIPS_OpMIPSMOVBreg(v *Value) bool { if x.Op != OpMIPSMOVBload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -2916,9 +2912,8 @@ func rewriteValueMIPS_OpMIPSMOVDload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -3038,9 +3033,8 @@ func rewriteValueMIPS_OpMIPSMOVFload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -3160,9 +3154,8 @@ func rewriteValueMIPS_OpMIPSMOVHUload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -3182,7 +3175,6 @@ func rewriteValueMIPS_OpMIPSMOVHUreg(v *Value) bool { if x.Op != OpMIPSMOVBUload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3194,7 +3186,6 @@ func rewriteValueMIPS_OpMIPSMOVHUreg(v *Value) bool { if x.Op != OpMIPSMOVHUload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3330,9 +3321,8 @@ func rewriteValueMIPS_OpMIPSMOVHload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -3352,7 +3342,6 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool { if x.Op != OpMIPSMOVBload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3364,7 +3353,6 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool { if x.Op != OpMIPSMOVBUload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3376,7 +3364,6 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool { if x.Op != OpMIPSMOVHload { break } - _ = x.Args[1] v.reset(OpMIPSMOVWreg) v.AddArg(x) return true @@ -3695,9 +3682,8 @@ func rewriteValueMIPS_OpMIPSMOVWload(v *Value) bool { } off2 := v_1.AuxInt sym2 := v_1.Aux - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } @@ -6445,7 +6431,6 @@ func rewriteValueMIPS_OpSelect0(v *Value) bool { if v_0.Op != OpMIPSMULTU { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -6464,7 +6449,6 @@ func rewriteValueMIPS_OpSelect0(v *Value) bool { if v_0.Op != OpMIPSMULTU { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -6638,7 +6622,6 @@ func rewriteValueMIPS_OpSelect1(v *Value) bool { if v_0.Op != OpMIPSMULTU { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -7269,7 +7252,6 @@ func rewriteBlockMIPS(b *Block) bool { if cmp.Op != OpMIPSSGT { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPSNE, cmp) return true } @@ -7284,7 +7266,6 @@ func rewriteBlockMIPS(b *Block) bool { if cmp.Op != OpMIPSSGTU { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPSNE, cmp) return true } @@ -7545,7 +7526,6 @@ func rewriteBlockMIPS(b *Block) bool { if cmp.Op != OpMIPSSGT { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPSEQ, cmp) return true } @@ -7560,7 +7540,6 @@ func rewriteBlockMIPS(b *Block) bool { if cmp.Op != OpMIPSSGTU { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPSEQ, cmp) return true } diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS64.go b/src/cmd/compile/internal/ssa/rewriteMIPS64.go index c8d72363b3..5136b1ca62 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS64.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS64.go @@ -2606,7 +2606,6 @@ func rewriteValueMIPS64_OpMIPS64MOVBUreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -2692,7 +2691,6 @@ func rewriteValueMIPS64_OpMIPS64MOVBreg(v *Value) bool { if x.Op != OpMIPS64MOVBload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3193,7 +3191,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHUreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3205,7 +3202,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHUreg(v *Value) bool { if x.Op != OpMIPS64MOVHUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3302,7 +3298,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHreg(v *Value) bool { if x.Op != OpMIPS64MOVBload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3314,7 +3309,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3326,7 +3320,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHreg(v *Value) bool { if x.Op != OpMIPS64MOVHload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3807,7 +3800,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWUreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3819,7 +3811,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWUreg(v *Value) bool { if x.Op != OpMIPS64MOVHUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3831,7 +3822,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWUreg(v *Value) bool { if x.Op != OpMIPS64MOVWUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3939,7 +3929,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVBload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3951,7 +3940,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVBUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3963,7 +3951,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVHload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3975,7 +3962,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVHUload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -3987,7 +3973,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool { if x.Op != OpMIPS64MOVWload { break } - _ = x.Args[1] v.reset(OpMIPS64MOVVreg) v.AddArg(x) return true @@ -7765,7 +7750,6 @@ func rewriteBlockMIPS64(b *Block) bool { if cmp.Op != OpMIPS64SGT { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPS64NE, cmp) return true } @@ -7780,7 +7764,6 @@ func rewriteBlockMIPS64(b *Block) bool { if cmp.Op != OpMIPS64SGTU { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPS64NE, cmp) return true } @@ -8023,7 +8006,6 @@ func rewriteBlockMIPS64(b *Block) bool { if cmp.Op != OpMIPS64SGT { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPS64EQ, cmp) return true } @@ -8038,7 +8020,6 @@ func rewriteBlockMIPS64(b *Block) bool { if cmp.Op != OpMIPS64SGTU { break } - _ = cmp.Args[1] b.resetWithControl(BlockMIPS64EQ, cmp) return true } diff --git a/src/cmd/compile/internal/ssa/rewritePPC64.go b/src/cmd/compile/internal/ssa/rewritePPC64.go index 1bdd8ee23a..82fa1354f8 100644 --- a/src/cmd/compile/internal/ssa/rewritePPC64.go +++ b/src/cmd/compile/internal/ssa/rewritePPC64.go @@ -4125,7 +4125,6 @@ func rewriteValuePPC64_OpPPC64AND(v *Value) bool { if x.Op != OpPPC64MOVBZload { continue } - _ = x.Args[1] v.reset(OpPPC64ANDconst) v.AuxInt = c & 0xFF v.AddArg(x) @@ -5003,11 +5002,10 @@ func rewriteValuePPC64_OpPPC64FMOVDload(v *Value) bool { if v_1.Op != OpPPC64MOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + x := v_1.Args[1] if ptr != v_1.Args[0] { break } - x := v_1.Args[1] v.reset(OpPPC64MTVSRD) v.AddArg(x) return true @@ -6359,7 +6357,6 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool { if x.Op != OpPPC64MOVBZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -6370,7 +6367,6 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool { if x.Op != OpPPC64MOVBZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -7651,11 +7647,10 @@ func rewriteValuePPC64_OpPPC64MOVDload(v *Value) bool { if v_1.Op != OpPPC64FMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] + x := v_1.Args[1] if ptr != v_1.Args[0] { break } - x := v_1.Args[1] v.reset(OpPPC64MFVSRD) v.AddArg(x) return true @@ -8284,7 +8279,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if y.Op != OpPPC64MOVHBRload { break } - _ = y.Args[1] v.copyOf(y) return true } @@ -8307,7 +8301,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if x.Op != OpPPC64MOVBZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -8318,7 +8311,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if x.Op != OpPPC64MOVBZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -8329,7 +8321,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if x.Op != OpPPC64MOVHZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -8340,7 +8331,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if x.Op != OpPPC64MOVHZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -8666,7 +8656,6 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { if x.Op != OpPPC64MOVHload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -8677,7 +8666,6 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { if x.Op != OpPPC64MOVHloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9268,7 +9256,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if y.Op != OpPPC64AND { break } - _ = y.Args[1] y_0 := y.Args[0] y_1 := y.Args[1] for _i0 := 0; _i0 <= 1; _i0, y_0, y_1 = _i0+1, y_1, y_0 { @@ -9412,7 +9399,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if y.Op != OpPPC64MOVHBRload { break } - _ = y.Args[1] v.copyOf(y) return true } @@ -9423,7 +9409,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if y.Op != OpPPC64MOVWBRload { break } - _ = y.Args[1] v.copyOf(y) return true } @@ -9446,7 +9431,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVBZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9457,7 +9441,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVBZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9468,7 +9451,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVHZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9479,7 +9461,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVHZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9490,7 +9471,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVWZload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9501,7 +9481,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if x.Op != OpPPC64MOVWZloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9673,7 +9652,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if y.Op != OpPPC64AND { break } - _ = y.Args[1] y_0 := y.Args[0] y_1 := y.Args[1] for _i0 := 0; _i0 <= 1; _i0, y_0, y_1 = _i0+1, y_1, y_0 { @@ -9846,7 +9824,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if x.Op != OpPPC64MOVHload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9857,7 +9834,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if x.Op != OpPPC64MOVHloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } @@ -9868,7 +9844,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if x.Op != OpPPC64MOVWload { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -9879,7 +9854,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if x.Op != OpPPC64MOVWloadidx { break } - _ = x.Args[2] v.copyOf(x) return true } diff --git a/src/cmd/compile/internal/ssa/rewriteS390X.go b/src/cmd/compile/internal/ssa/rewriteS390X.go index 2ac8a6f05e..7c750574bc 100644 --- a/src/cmd/compile/internal/ssa/rewriteS390X.go +++ b/src/cmd/compile/internal/ssa/rewriteS390X.go @@ -5652,9 +5652,8 @@ func rewriteValueS390X_OpS390XADDload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -6154,9 +6153,8 @@ func rewriteValueS390X_OpS390XANDload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -7245,9 +7243,8 @@ func rewriteValueS390X_OpS390XFMOVDload(v *Value) bool { if v_1.Op != OpS390XMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -7265,9 +7262,8 @@ func rewriteValueS390X_OpS390XFMOVDload(v *Value) bool { if v_1.Op != OpS390XFMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -7588,9 +7584,8 @@ func rewriteValueS390X_OpS390XFMOVSload(v *Value) bool { if v_1.Op != OpS390XFMOVSstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -8304,9 +8299,8 @@ func rewriteValueS390X_OpS390XMOVBZload(v *Value) bool { if v_1.Op != OpS390XMOVBstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -8570,11 +8564,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -8585,11 +8575,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -8678,7 +8664,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { if x.Op != OpS390XLOCGR { break } - _ = x.Args[2] + _ = x.Args[1] x_0 := x.Args[0] if x_0.Op != OpS390XMOVDconst { break @@ -8725,9 +8711,8 @@ func rewriteValueS390X_OpS390XMOVBload(v *Value) bool { if v_1.Op != OpS390XMOVBstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -8991,11 +8976,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -9006,11 +8987,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -10018,9 +9995,8 @@ func rewriteValueS390X_OpS390XMOVDload(v *Value) bool { if v_1.Op != OpS390XMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -10037,9 +10013,8 @@ func rewriteValueS390X_OpS390XMOVDload(v *Value) bool { if v_1.Op != OpS390XFMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -10790,9 +10765,8 @@ func rewriteValueS390X_OpS390XMOVHZload(v *Value) bool { if v_1.Op != OpS390XMOVHstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -11041,11 +11015,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -11056,11 +11026,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -11071,11 +11037,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZload || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -11086,11 +11048,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -11201,9 +11159,8 @@ func rewriteValueS390X_OpS390XMOVHload(v *Value) bool { if v_1.Op != OpS390XMOVHstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -11452,11 +11409,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -11467,11 +11420,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -11482,11 +11431,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVHload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -11497,11 +11442,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVHloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -11512,11 +11453,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -11527,11 +11464,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -12340,9 +12273,8 @@ func rewriteValueS390X_OpS390XMOVWZload(v *Value) bool { if v_1.Op != OpS390XMOVWstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -12574,11 +12506,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -12589,11 +12517,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -12604,11 +12528,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZload || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -12619,11 +12539,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -12634,11 +12550,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVWZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 4) { + if x.Op != OpS390XMOVWZload || !(!x.Type.IsSigned() || x.Type.Size() > 4) { break } v.copyOf(x) @@ -12649,11 +12561,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVWZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 4) { + if x.Op != OpS390XMOVWZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 4) { break } v.copyOf(x) @@ -12749,9 +12657,8 @@ func rewriteValueS390X_OpS390XMOVWload(v *Value) bool { if v_1.Op != OpS390XMOVWstore || v_1.AuxInt != off || v_1.Aux != sym { break } - _ = v_1.Args[2] - ptr2 := v_1.Args[0] x := v_1.Args[1] + ptr2 := v_1.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -12983,11 +12890,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -12998,11 +12901,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVBloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13013,11 +12912,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVHload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13028,11 +12923,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVHloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13043,11 +12934,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVWload { - break - } - _ = x.Args[1] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVWload || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13058,11 +12945,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVWloadidx { - break - } - _ = x.Args[2] - if !(x.Type.IsSigned() || x.Type.Size() == 8) { + if x.Op != OpS390XMOVWloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) { break } v.copyOf(x) @@ -13073,11 +12956,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -13088,11 +12967,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVBZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 1) { + if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } v.copyOf(x) @@ -13103,11 +12978,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZload { - break - } - _ = x.Args[1] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZload || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -13118,11 +12989,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { // result: x for { x := v_0 - if x.Op != OpS390XMOVHZloadidx { - break - } - _ = x.Args[2] - if !(!x.Type.IsSigned() || x.Type.Size() > 2) { + if x.Op != OpS390XMOVHZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } v.copyOf(x) @@ -13873,9 +13740,8 @@ func rewriteValueS390X_OpS390XMULLDload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -16511,9 +16377,8 @@ func rewriteValueS390X_OpS390XORload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -17949,9 +17814,8 @@ func rewriteValueS390X_OpS390XSUBload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } @@ -18397,9 +18261,8 @@ func rewriteValueS390X_OpS390XXORload(v *Value) bool { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { break } - _ = v_2.Args[2] - ptr2 := v_2.Args[0] y := v_2.Args[1] + ptr2 := v_2.Args[0] if !(isSamePtr(ptr1, ptr2)) { break } diff --git a/src/cmd/compile/internal/ssa/rewriteWasm.go b/src/cmd/compile/internal/ssa/rewriteWasm.go index 4b100b6c32..2c7add4996 100644 --- a/src/cmd/compile/internal/ssa/rewriteWasm.go +++ b/src/cmd/compile/internal/ssa/rewriteWasm.go @@ -3096,7 +3096,6 @@ func rewriteValueWasm_OpSignExt16to32(v *Value) bool { if x.Op != OpWasmI64Load16S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3138,7 +3137,6 @@ func rewriteValueWasm_OpSignExt16to64(v *Value) bool { if x.Op != OpWasmI64Load16S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3180,7 +3178,6 @@ func rewriteValueWasm_OpSignExt32to64(v *Value) bool { if x.Op != OpWasmI64Load32S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3222,7 +3219,6 @@ func rewriteValueWasm_OpSignExt8to16(v *Value) bool { if x.Op != OpWasmI64Load8S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3264,7 +3260,6 @@ func rewriteValueWasm_OpSignExt8to32(v *Value) bool { if x.Op != OpWasmI64Load8S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -3306,7 +3301,6 @@ func rewriteValueWasm_OpSignExt8to64(v *Value) bool { if x.Op != OpWasmI64Load8S { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4591,7 +4585,6 @@ func rewriteValueWasm_OpZeroExt16to32(v *Value) bool { if x.Op != OpWasmI64Load16U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4617,7 +4610,6 @@ func rewriteValueWasm_OpZeroExt16to64(v *Value) bool { if x.Op != OpWasmI64Load16U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4643,7 +4635,6 @@ func rewriteValueWasm_OpZeroExt32to64(v *Value) bool { if x.Op != OpWasmI64Load32U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4669,7 +4660,6 @@ func rewriteValueWasm_OpZeroExt8to16(v *Value) bool { if x.Op != OpWasmI64Load8U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4695,7 +4685,6 @@ func rewriteValueWasm_OpZeroExt8to32(v *Value) bool { if x.Op != OpWasmI64Load8U { break } - _ = x.Args[1] v.copyOf(x) return true } @@ -4721,7 +4710,6 @@ func rewriteValueWasm_OpZeroExt8to64(v *Value) bool { if x.Op != OpWasmI64Load8U { break } - _ = x.Args[1] v.copyOf(x) return true } diff --git a/src/cmd/compile/internal/ssa/rewritedec.go b/src/cmd/compile/internal/ssa/rewritedec.go index 08ed1fd129..1d7979f5c9 100644 --- a/src/cmd/compile/internal/ssa/rewritedec.go +++ b/src/cmd/compile/internal/ssa/rewritedec.go @@ -54,7 +54,6 @@ func rewriteValuedec_OpComplexReal(v *Value) bool { if v_0.Op != OpComplexMake { break } - _ = v_0.Args[1] real := v_0.Args[0] v.copyOf(real) return true @@ -83,7 +82,6 @@ func rewriteValuedec_OpITab(v *Value) bool { if v_0.Op != OpIMake { break } - _ = v_0.Args[1] itab := v_0.Args[0] v.copyOf(itab) return true @@ -230,7 +228,6 @@ func rewriteValuedec_OpSliceLen(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] len := v_0.Args[1] v.copyOf(len) return true @@ -245,7 +242,6 @@ func rewriteValuedec_OpSlicePtr(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] ptr := v_0.Args[0] v.copyOf(ptr) return true @@ -405,7 +401,6 @@ func rewriteValuedec_OpStringPtr(v *Value) bool { if v_0.Op != OpStringMake { break } - _ = v_0.Args[1] ptr := v_0.Args[0] v.copyOf(ptr) return true diff --git a/src/cmd/compile/internal/ssa/rewritedec64.go b/src/cmd/compile/internal/ssa/rewritedec64.go index 08a045ccac..b7048f111c 100644 --- a/src/cmd/compile/internal/ssa/rewritedec64.go +++ b/src/cmd/compile/internal/ssa/rewritedec64.go @@ -439,7 +439,6 @@ func rewriteValuedec64_OpInt64Hi(v *Value) bool { if v_0.Op != OpInt64Make { break } - _ = v_0.Args[1] hi := v_0.Args[0] v.copyOf(hi) return true @@ -704,7 +703,6 @@ func rewriteValuedec64_OpLsh16x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -770,7 +768,6 @@ func rewriteValuedec64_OpLsh32x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -916,7 +913,6 @@ func rewriteValuedec64_OpLsh64x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1022,7 +1018,6 @@ func rewriteValuedec64_OpLsh8x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1204,7 +1199,6 @@ func rewriteValuedec64_OpRsh16Ux64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1271,7 +1265,6 @@ func rewriteValuedec64_OpRsh16x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1339,7 +1332,6 @@ func rewriteValuedec64_OpRsh32Ux64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1406,7 +1398,6 @@ func rewriteValuedec64_OpRsh32x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1552,7 +1543,6 @@ func rewriteValuedec64_OpRsh64Ux64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1757,7 +1747,6 @@ func rewriteValuedec64_OpRsh64x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1881,7 +1870,6 @@ func rewriteValuedec64_OpRsh8Ux64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break @@ -1948,7 +1936,6 @@ func rewriteValuedec64_OpRsh8x64(v *Value) bool { if v_1.Op != OpInt64Make { break } - _ = v_1.Args[1] v_1_0 := v_1.Args[0] if v_1_0.Op != OpConst32 { break diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go index e0541f8710..0a4879a8ad 100644 --- a/src/cmd/compile/internal/ssa/rewritegeneric.go +++ b/src/cmd/compile/internal/ssa/rewritegeneric.go @@ -6886,12 +6886,10 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } a := v_0.Aux - _ = v_0.Args[1] if v_1.Op != OpLocalAddr { continue } b := v_1.Aux - _ = v_1.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a == b) return true @@ -6906,7 +6904,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } a := v_0.Aux - _ = v_0.Args[1] if v_1.Op != OpOffPtr { continue } @@ -6916,7 +6913,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } b := v_1_0.Aux - _ = v_1_0.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a == b && o == 0) return true @@ -6936,7 +6932,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } a := v_0_0.Aux - _ = v_0_0.Args[1] if v_1.Op != OpOffPtr { continue } @@ -6946,7 +6941,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } b := v_1_0.Aux - _ = v_1_0.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a == b && o1 == o2) return true @@ -7037,11 +7031,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { // result: (ConstBool [0]) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { - if v_0.Op != OpLocalAddr { - continue - } - _ = v_0.Args[1] - if v_1.Op != OpAddr { + if v_0.Op != OpLocalAddr || v_1.Op != OpAddr { continue } v.reset(OpConstBool) @@ -7058,11 +7048,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } v_0_0 := v_0.Args[0] - if v_0_0.Op != OpLocalAddr { - continue - } - _ = v_0_0.Args[1] - if v_1.Op != OpAddr { + if v_0_0.Op != OpLocalAddr || v_1.Op != OpAddr { continue } v.reset(OpConstBool) @@ -7075,11 +7061,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { // result: (ConstBool [0]) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { - if v_0.Op != OpLocalAddr { - continue - } - _ = v_0.Args[1] - if v_1.Op != OpOffPtr { + if v_0.Op != OpLocalAddr || v_1.Op != OpOffPtr { continue } v_1_0 := v_1.Args[0] @@ -7100,11 +7082,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool { continue } v_0_0 := v_0.Args[0] - if v_0_0.Op != OpLocalAddr { - continue - } - _ = v_0_0.Args[1] - if v_1.Op != OpOffPtr { + if v_0_0.Op != OpLocalAddr || v_1.Op != OpOffPtr { continue } v_1_0 := v_1.Args[0] @@ -7328,7 +7306,6 @@ func rewriteValuegeneric_OpInterCall(v *Value) bool { if v_0.Op != OpLoad { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] if v_0_0.Op != OpOffPtr { break @@ -7342,7 +7319,6 @@ func rewriteValuegeneric_OpInterCall(v *Value) bool { if v_0_0_0_0.Op != OpIMake { break } - _ = v_0_0_0_0.Args[1] v_0_0_0_0_0 := v_0_0_0_0.Args[0] if v_0_0_0_0_0.Op != OpAddr { break @@ -7445,7 +7421,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0.Op != OpAnd8 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -7477,7 +7452,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd8 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7509,7 +7483,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd8 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7541,7 +7514,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd8 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7569,7 +7541,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0.Op != OpAnd16 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -7601,7 +7572,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd16 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7633,7 +7603,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd16 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7661,7 +7630,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0.Op != OpAnd32 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -7693,7 +7661,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0_0.Op != OpAnd32 { break } - _ = v_0_0.Args[1] v_0_0_0 := v_0_0.Args[0] v_0_0_1 := v_0_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0_0, v_0_0_1 = _i0+1, v_0_0_1, v_0_0_0 { @@ -7721,7 +7688,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool { if v_0.Op != OpAnd64 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -8116,7 +8082,6 @@ func rewriteValuegeneric_OpIsNonNil(v *Value) bool { if v_0.Op != OpLocalAddr { break } - _ = v_0.Args[1] v.reset(OpConstBool) v.AuxInt = 1 return true @@ -8144,7 +8109,6 @@ func rewriteValuegeneric_OpIsSliceInBounds(v *Value) bool { if v_0.Op != OpAnd32 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -8172,7 +8136,6 @@ func rewriteValuegeneric_OpIsSliceInBounds(v *Value) bool { if v_0.Op != OpAnd64 { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] v_0_1 := v_0.Args[1] for _i0 := 0; _i0 <= 1; _i0, v_0_0, v_0_1 = _i0+1, v_0_1, v_0_0 { @@ -8850,9 +8813,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] - p2 := v_1.Args[0] x := v_1.Args[1] + p2 := v_1.Args[0] if !(isSamePtr(p1, p2) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2)) { break } @@ -8876,9 +8838,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t3 := v_1_2.Aux - _ = v_1_2.Args[2] - p3 := v_1_2.Args[0] x := v_1_2.Args[1] + p3 := v_1_2.Args[0] if !(isSamePtr(p1, p3) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p3, sizeof(t3), p2, sizeof(t2))) { break } @@ -8909,9 +8870,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t4 := v_1_2_2.Aux - _ = v_1_2_2.Args[2] - p4 := v_1_2_2.Args[0] x := v_1_2_2.Args[1] + p4 := v_1_2_2.Args[0] if !(isSamePtr(p1, p4) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p4, sizeof(t4), p2, sizeof(t2)) && disjoint(p4, sizeof(t4), p3, sizeof(t3))) { break } @@ -8949,9 +8909,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t5 := v_1_2_2_2.Aux - _ = v_1_2_2_2.Args[2] - p5 := v_1_2_2_2.Args[0] x := v_1_2_2_2.Args[1] + p5 := v_1_2_2_2.Args[0] if !(isSamePtr(p1, p5) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p5, sizeof(t5), p2, sizeof(t2)) && disjoint(p5, sizeof(t5), p3, sizeof(t3)) && disjoint(p5, sizeof(t5), p4, sizeof(t4))) { break } @@ -8968,7 +8927,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] + _ = v_1.Args[1] p2 := v_1.Args[0] v_1_1 := v_1.Args[1] if v_1_1.Op != OpConst64 { @@ -8992,7 +8951,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] + _ = v_1.Args[1] p2 := v_1.Args[0] v_1_1 := v_1.Args[1] if v_1_1.Op != OpConst32 { @@ -9016,7 +8975,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] + _ = v_1.Args[1] p2 := v_1.Args[0] v_1_1 := v_1.Args[1] if v_1_1.Op != OpConst64F { @@ -9040,7 +8999,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } t2 := v_1.Aux - _ = v_1.Args[2] + _ = v_1.Args[1] p2 := v_1.Args[0] v_1_1 := v_1.Args[1] if v_1_1.Op != OpConst32F { @@ -9076,7 +9035,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p3 := mem.Args[0] if !(o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p3) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2))) { break @@ -9119,7 +9077,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p4 := mem.Args[0] if !(o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p4) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2)) && disjoint(op, t1.Size(), p3, sizeof(t3))) { break @@ -9169,7 +9126,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p5 := mem.Args[0] if !(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))) { break @@ -9226,7 +9182,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p6 := mem.Args[0] if !(o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p6) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2)) && disjoint(op, t1.Size(), p3, sizeof(t3)) && disjoint(op, t1.Size(), p4, sizeof(t4)) && disjoint(op, t1.Size(), p5, sizeof(t5))) { break @@ -9254,7 +9209,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(t1.IsBoolean() && isSamePtr(p1, p2) && n >= o+1) { break @@ -9277,7 +9231,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is8BitInt(t1) && isSamePtr(p1, p2) && n >= o+1) { break @@ -9300,7 +9253,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is16BitInt(t1) && isSamePtr(p1, p2) && n >= o+2) { break @@ -9323,7 +9275,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is32BitInt(t1) && isSamePtr(p1, p2) && n >= o+4) { break @@ -9346,7 +9297,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is64BitInt(t1) && isSamePtr(p1, p2) && n >= o+8) { break @@ -9369,7 +9319,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is32BitFloat(t1) && isSamePtr(p1, p2) && n >= o+4) { break @@ -9392,7 +9341,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { break } n := v_1.AuxInt - _ = v_1.Args[1] p2 := v_1.Args[0] if !(is64BitFloat(t1) && isSamePtr(p1, p2) && n >= o+8) { break @@ -11082,7 +11030,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { if mem.Op != OpZero || mem.AuxInt != n || mem.Aux != t { break } - _ = mem.Args[1] dst2 := mem.Args[0] if !(isSamePtr(src, dst2)) { break @@ -11109,7 +11056,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { if mem_0.Op != OpZero || mem_0.AuxInt != n || mem_0.Aux != t { break } - _ = mem_0.Args[1] dst0 := mem_0.Args[0] if !(isSamePtr(src, dst0)) { break @@ -11284,7 +11230,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t3 := mem_2.Aux - _ = mem_2.Args[2] + d2 := mem_2.Args[1] op3 := mem_2.Args[0] if op3.Op != OpOffPtr { break @@ -11294,7 +11240,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p3 := op3.Args[0] - d2 := mem_2.Args[1] if !(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)) { break } @@ -11353,7 +11298,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t4 := mem_2_2.Aux - _ = mem_2_2.Args[2] + d3 := mem_2_2.Args[1] op4 := mem_2_2.Args[0] if op4.Op != OpOffPtr { break @@ -11363,7 +11308,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p4 := op4.Args[0] - d3 := mem_2_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && o3 == sizeof(t4) && o2-o3 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)+sizeof(t4)) { break } @@ -11442,7 +11386,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t5 := mem_2_2_2.Aux - _ = mem_2_2_2.Args[2] + d4 := mem_2_2_2.Args[1] op5 := mem_2_2_2.Args[0] if op5.Op != OpOffPtr { break @@ -11452,7 +11396,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p5 := op5.Args[0] - d4 := mem_2_2_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && registerizable(b, t5) && o4 == sizeof(t5) && o3-o4 == sizeof(t4) && o2-o3 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)+sizeof(t4)+sizeof(t5)) { break } @@ -11513,7 +11456,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t3 := mem_0_2.Aux - _ = mem_0_2.Args[2] + d2 := mem_0_2.Args[1] op3 := mem_0_2.Args[0] if op3.Op != OpOffPtr { break @@ -11523,7 +11466,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p3 := op3.Args[0] - d2 := mem_0_2.Args[1] if !(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)) { break } @@ -11586,7 +11528,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t4 := mem_0_2_2.Aux - _ = mem_0_2_2.Args[2] + d3 := mem_0_2_2.Args[1] op4 := mem_0_2_2.Args[0] if op4.Op != OpOffPtr { break @@ -11596,7 +11538,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p4 := op4.Args[0] - d3 := mem_0_2_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && o3 == sizeof(t4) && o2-o3 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)+sizeof(t4)) { break } @@ -11679,7 +11620,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t5 := mem_0_2_2_2.Aux - _ = mem_0_2_2_2.Args[2] + d4 := mem_0_2_2_2.Args[1] op5 := mem_0_2_2_2.Args[0] if op5.Op != OpOffPtr { break @@ -11689,7 +11630,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } p5 := op5.Args[0] - d4 := mem_0_2_2_2.Args[1] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && registerizable(b, t5) && o4 == sizeof(t5) && o3-o4 == sizeof(t4) && o2-o3 == sizeof(t3) && n == sizeof(t2)+sizeof(t3)+sizeof(t4)+sizeof(t5)) { break } @@ -11746,7 +11686,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t3 := mem_2.Aux - _ = mem_2.Args[1] p3 := mem_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && registerizable(b, t2) && n >= o2+sizeof(t2)) { break @@ -11804,7 +11743,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t4 := mem_2_2.Aux - _ = mem_2_2.Args[1] p4 := mem_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3)) { break @@ -11882,7 +11820,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t5 := mem_2_2_2.Aux - _ = mem_2_2_2.Args[1] p5 := mem_2_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3) && n >= o4+sizeof(t4)) { break @@ -11980,7 +11917,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t6 := mem_2_2_2_2.Aux - _ = mem_2_2_2_2.Args[1] p6 := mem_2_2_2_2.Args[0] if !(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)) { break @@ -12046,7 +11982,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t3 := mem_0_2.Aux - _ = mem_0_2.Args[1] p3 := mem_0_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && registerizable(b, t2) && n >= o2+sizeof(t2)) { break @@ -12108,7 +12043,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t4 := mem_0_2_2.Aux - _ = mem_0_2_2.Args[1] p4 := mem_0_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3)) { break @@ -12190,7 +12124,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t5 := mem_0_2_2_2.Aux - _ = mem_0_2_2_2.Args[1] p5 := mem_0_2_2_2.Args[0] if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && isSamePtr(p3, p4) && isSamePtr(p4, p5) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && alignof(t4) <= alignof(t1) && alignof(t5) <= alignof(t1) && registerizable(b, t2) && registerizable(b, t3) && registerizable(b, t4) && n >= o2+sizeof(t2) && n >= o3+sizeof(t3) && n >= o4+sizeof(t4)) { break @@ -12292,7 +12225,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t6 := mem_0_2_2_2_2.Aux - _ = mem_0_2_2_2_2.Args[1] p6 := mem_0_2_2_2_2.Args[0] if !(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)) { break @@ -12340,9 +12272,8 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t2 := midmem.Aux - _ = midmem.Args[2] - tmp2 := midmem.Args[0] src := midmem.Args[1] + tmp2 := midmem.Args[0] if !(t1.(*types.Type).Compare(t2.(*types.Type)) == types.CMPeq && isSamePtr(tmp1, tmp2) && isStackPtr(src) && disjoint(src, s, tmp2, s) && (disjoint(src, s, dst, s) || isInlinableMemmove(dst, src, s, config))) { break } @@ -12369,9 +12300,8 @@ func rewriteValuegeneric_OpMove(v *Value) bool { break } t2 := midmem_0.Aux - _ = midmem_0.Args[2] - tmp2 := midmem_0.Args[0] src := midmem_0.Args[1] + tmp2 := midmem_0.Args[0] if !(t1.(*types.Type).Compare(t2.(*types.Type)) == types.CMPeq && isSamePtr(tmp1, tmp2) && isStackPtr(src) && disjoint(src, s, tmp2, s) && (disjoint(src, s, dst, s) || isInlinableMemmove(dst, src, s, config))) { break } @@ -14378,12 +14308,10 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } a := v_0.Aux - _ = v_0.Args[1] if v_1.Op != OpLocalAddr { continue } b := v_1.Aux - _ = v_1.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a != b) return true @@ -14398,7 +14326,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } a := v_0.Aux - _ = v_0.Args[1] if v_1.Op != OpOffPtr { continue } @@ -14408,7 +14335,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } b := v_1_0.Aux - _ = v_1_0.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a != b || o != 0) return true @@ -14428,7 +14354,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } a := v_0_0.Aux - _ = v_0_0.Args[1] if v_1.Op != OpOffPtr { continue } @@ -14438,7 +14363,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } b := v_1_0.Aux - _ = v_1_0.Args[1] v.reset(OpConstBool) v.AuxInt = b2i(a != b || o1 != o2) return true @@ -14529,11 +14453,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { // result: (ConstBool [1]) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { - if v_0.Op != OpLocalAddr { - continue - } - _ = v_0.Args[1] - if v_1.Op != OpAddr { + if v_0.Op != OpLocalAddr || v_1.Op != OpAddr { continue } v.reset(OpConstBool) @@ -14550,11 +14470,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } v_0_0 := v_0.Args[0] - if v_0_0.Op != OpLocalAddr { - continue - } - _ = v_0_0.Args[1] - if v_1.Op != OpAddr { + if v_0_0.Op != OpLocalAddr || v_1.Op != OpAddr { continue } v.reset(OpConstBool) @@ -14567,11 +14483,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { // result: (ConstBool [1]) for { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { - if v_0.Op != OpLocalAddr { - continue - } - _ = v_0.Args[1] - if v_1.Op != OpOffPtr { + if v_0.Op != OpLocalAddr || v_1.Op != OpOffPtr { continue } v_1_0 := v_1.Args[0] @@ -14592,11 +14504,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool { continue } v_0_0 := v_0.Args[0] - if v_0_0.Op != OpLocalAddr { - continue - } - _ = v_0_0.Args[1] - if v_1.Op != OpOffPtr { + if v_0_0.Op != OpLocalAddr || v_1.Op != OpOffPtr { continue } v_1_0 := v_1.Args[0] @@ -16290,7 +16198,6 @@ func rewriteValuegeneric_OpRsh16Ux64(v *Value) bool { if v_0.Op != OpRsh16x64 { break } - _ = v_0.Args[1] x := v_0.Args[0] if v_1.Op != OpConst64 { break @@ -16725,7 +16632,6 @@ func rewriteValuegeneric_OpRsh32Ux64(v *Value) bool { if v_0.Op != OpRsh32x64 { break } - _ = v_0.Args[1] x := v_0.Args[0] if v_1.Op != OpConst64 { break @@ -17196,7 +17102,6 @@ func rewriteValuegeneric_OpRsh64Ux64(v *Value) bool { if v_0.Op != OpRsh64x64 { break } - _ = v_0.Args[1] x := v_0.Args[0] if v_1.Op != OpConst64 { break @@ -17703,7 +17608,6 @@ func rewriteValuegeneric_OpRsh8Ux64(v *Value) bool { if v_0.Op != OpRsh8x64 { break } - _ = v_0.Args[1] x := v_0.Args[0] if v_1.Op != OpConst64 { break @@ -18298,7 +18202,7 @@ func rewriteValuegeneric_OpSliceLen(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] + _ = v_0.Args[1] v_0_1 := v_0.Args[1] if v_0_1.Op != OpConst64 { break @@ -18316,7 +18220,7 @@ func rewriteValuegeneric_OpSliceLen(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] + _ = v_0.Args[1] v_0_1 := v_0.Args[1] if v_0_1.Op != OpConst32 { break @@ -18334,7 +18238,7 @@ func rewriteValuegeneric_OpSliceLen(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] + _ = v_0.Args[1] v_0_1 := v_0.Args[1] if v_0_1.Op != OpSliceLen { break @@ -18354,7 +18258,6 @@ func rewriteValuegeneric_OpSlicePtr(v *Value) bool { if v_0.Op != OpSliceMake { break } - _ = v_0.Args[2] v_0_0 := v_0.Args[0] if v_0_0.Op != OpSlicePtr { break @@ -18664,7 +18567,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } n := mem.AuxInt - _ = mem.Args[1] p2 := mem.Args[0] if !(isConstZero(x) && o >= 0 && sizeof(t)+o <= n && isSamePtr(p1, p2)) { break @@ -18696,7 +18598,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } n := mem_2.AuxInt - _ = mem_2.Args[1] p3 := mem_2.Args[0] if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p3) && disjoint(op, sizeof(t1), p2, sizeof(t2))) { break @@ -18735,7 +18636,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } n := mem_2_2.AuxInt - _ = mem_2_2.Args[1] p4 := mem_2_2.Args[0] if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p4) && disjoint(op, sizeof(t1), p2, sizeof(t2)) && disjoint(op, sizeof(t1), p3, sizeof(t3))) { break @@ -18781,7 +18681,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } n := mem_2_2_2.AuxInt - _ = mem_2_2_2.Args[1] p5 := mem_2_2_2.Args[0] if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p5) && disjoint(op, sizeof(t1), p2, sizeof(t2)) && disjoint(op, sizeof(t1), p3, sizeof(t3)) && disjoint(op, sizeof(t1), p4, sizeof(t4))) { break @@ -19416,7 +19315,6 @@ func rewriteValuegeneric_OpStringPtr(v *Value) bool { if v_0.Op != OpStringMake { break } - _ = v_0.Args[1] v_0_0 := v_0.Args[0] if v_0_0.Op != OpAddr { break @@ -19452,7 +19350,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 0 || v_0.Op != OpStructMake2 { break } - _ = v_0.Args[1] x := v_0.Args[0] v.copyOf(x) return true @@ -19473,7 +19370,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 0 || v_0.Op != OpStructMake3 { break } - _ = v_0.Args[2] x := v_0.Args[0] v.copyOf(x) return true @@ -19484,7 +19380,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 1 || v_0.Op != OpStructMake3 { break } - _ = v_0.Args[2] x := v_0.Args[1] v.copyOf(x) return true @@ -19505,7 +19400,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 0 || v_0.Op != OpStructMake4 { break } - _ = v_0.Args[3] x := v_0.Args[0] v.copyOf(x) return true @@ -19516,7 +19410,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 1 || v_0.Op != OpStructMake4 { break } - _ = v_0.Args[3] x := v_0.Args[1] v.copyOf(x) return true @@ -19527,7 +19420,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { if v.AuxInt != 2 || v_0.Op != OpStructMake4 { break } - _ = v_0.Args[3] x := v_0.Args[2] v.copyOf(x) return true