cmd/compile: make pre-elimination of rulegen bounds checks more precise

In cases in which we had a named value whose args were all _,
like this rule from ARM.rules:

(MOVBUreg x:(MOVBUload _ _)) -> (MOVWreg x)

We previously inserted

_ = x.Args[1]

even though it is unnecessary.
This change eliminates this pointless bounds check.
And in other cases, we now check bounds just as far as strictly necessary.

No significant movement on any compiler metrics.
Just nicer (and less) code.

Passes toolstash-check -all.

Change-Id: I075dfe9f926cc561cdc705e9ddaab563164bed3a
Reviewed-on: https://go-review.googlesource.com/c/go/+/221781
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Josh Bleecher Snyder 2020-03-01 16:44:06 -08:00
parent 5e4da0adac
commit a2bff7c296
13 changed files with 170 additions and 645 deletions

View File

@ -1001,16 +1001,21 @@ func genMatch0(rr *RuleRewrite, arch arch, match, v string, cnt map[string]int,
} }
} }
if !pregenTop {
// Access last argument first to minimize bounds checks. // Access last argument first to minimize bounds checks.
if n := len(args); n > 1 && !pregenTop { for n := len(args) - 1; n > 0; n-- {
a := args[n-1] a := args[n]
if a != "_" && !rr.declared(a) && token.IsIdentifier(a) && !(commutative && len(args) == 2) { if a == "_" {
rr.add(declf(a, "%s.Args[%d]", v, n-1)) 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 // delete the last argument so it is not reprocessed
args = args[:n-1] args = args[:n]
} else { } else {
rr.add(stmtf("_ = %s.Args[%d]", v, n-1)) rr.add(stmtf("_ = %s.Args[%d]", v, n))
}
break
} }
} }
if commutative && !pregenTop { if commutative && !pregenTop {

View File

@ -4087,9 +4087,8 @@ func rewriteValue386_Op386MOVBLSXload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -4203,9 +4202,8 @@ func rewriteValue386_Op386MOVBload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -5109,9 +5107,8 @@ func rewriteValue386_Op386MOVLload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -7523,9 +7520,8 @@ func rewriteValue386_Op386MOVWLSXload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -7663,9 +7659,8 @@ func rewriteValue386_Op386MOVWload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }

View File

@ -1858,11 +1858,10 @@ func rewriteValueAMD64_OpAMD64ADDLload(v *Value) bool {
if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64ADDL) v.reset(OpAMD64ADDL)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64ADDQ) v.reset(OpAMD64ADDQ)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64ADDSD) v.reset(OpAMD64ADDSD)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVLstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64ADDSS) v.reset(OpAMD64ADDSS)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64ANDL) v.reset(OpAMD64ANDL)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64ANDQ) v.reset(OpAMD64ANDQ)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64)
v0.AddArg(y) v0.AddArg(y)
@ -9766,9 +9760,8 @@ func rewriteValueAMD64_OpAMD64MOVBQSXload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -10019,9 +10012,8 @@ func rewriteValueAMD64_OpAMD64MOVBload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -12046,9 +12038,8 @@ func rewriteValueAMD64_OpAMD64MOVLQSXload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -12353,9 +12344,8 @@ func rewriteValueAMD64_OpAMD64MOVLload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -12554,11 +12544,10 @@ func rewriteValueAMD64_OpAMD64MOVLload(v *Value) bool {
if v_1.Op != OpAMD64MOVSSstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpAMD64MOVSSstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] val := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
val := v_1.Args[1]
v.reset(OpAMD64MOVLf2i) v.reset(OpAMD64MOVLf2i)
v.AddArg(val) v.AddArg(val)
return true return true
@ -14721,7 +14710,6 @@ func rewriteValueAMD64_OpAMD64MOVOstore(v *Value) bool {
} }
srcOff := v_1.AuxInt srcOff := v_1.AuxInt
srcSym := v_1.Aux srcSym := v_1.Aux
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpSB { if v_1_0.Op != OpSB {
break break
@ -14863,9 +14851,8 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -15040,11 +15027,10 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value) bool {
if v_1.Op != OpAMD64MOVSDstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpAMD64MOVSDstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] val := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
val := v_1.Args[1]
v.reset(OpAMD64MOVQf2i) v.reset(OpAMD64MOVQf2i)
v.AddArg(val) v.AddArg(val)
return true 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 { if v_1.Op != OpAMD64MOVQstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] val := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
val := v_1.Args[1]
v.reset(OpAMD64MOVQi2f) v.reset(OpAMD64MOVQi2f)
v.AddArg(val) v.AddArg(val)
return true 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 { if v_1.Op != OpAMD64MOVLstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] val := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
val := v_1.Args[1]
v.reset(OpAMD64MOVLi2f) v.reset(OpAMD64MOVLi2f)
v.AddArg(val) v.AddArg(val)
return true return true
@ -17847,9 +17831,8 @@ func rewriteValueAMD64_OpAMD64MOVWQSXload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -18066,9 +18049,8 @@ func rewriteValueAMD64_OpAMD64MOVWload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -20680,11 +20662,10 @@ func rewriteValueAMD64_OpAMD64MULSDload(v *Value) bool {
if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym { if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64MULSD) v.reset(OpAMD64MULSD)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVLstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64MULSS) v.reset(OpAMD64MULSS)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64ORL) v.reset(OpAMD64ORL)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64ORQ) v.reset(OpAMD64ORQ)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64SUBL) v.reset(OpAMD64SUBL)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64SUBQ) v.reset(OpAMD64SUBQ)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVQstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64SUBSD) v.reset(OpAMD64SUBSD)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQi2f, typ.Float64)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVLstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64SUBSS) v.reset(OpAMD64SUBSS)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLi2f, typ.Float32)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVSSstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64XORL) v.reset(OpAMD64XORL)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVLf2i, typ.UInt32)
v0.AddArg(y) 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 { if v_2.Op != OpAMD64MOVSDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2] y := v_2.Args[1]
if ptr != v_2.Args[0] { if ptr != v_2.Args[0] {
break break
} }
y := v_2.Args[1]
v.reset(OpAMD64XORQ) v.reset(OpAMD64XORQ)
v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64) v0 := b.NewValue0(v_2.Pos, OpAMD64MOVQf2i, typ.UInt64)
v0.AddArg(y) v0.AddArg(y)

View File

@ -5120,9 +5120,8 @@ func rewriteValueARM_OpARMMOVBUload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -5179,13 +5178,9 @@ func rewriteValueARM_OpARMMOVBUloadidx(v *Value) bool {
if v_2.Op != OpARMMOVBstoreidx { if v_2.Op != OpARMMOVBstoreidx {
break break
} }
_ = v_2.Args[3]
ptr2 := v_2.Args[0]
if idx != v_2.Args[1] {
break
}
x := v_2.Args[2] x := v_2.Args[2]
if !(isSamePtr(ptr, ptr2)) { ptr2 := v_2.Args[0]
if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) {
break break
} }
v.reset(OpARMMOVBUreg) v.reset(OpARMMOVBUreg)
@ -5231,7 +5226,6 @@ func rewriteValueARM_OpARMMOVBUreg(v *Value) bool {
if x.Op != OpARMMOVBUload { if x.Op != OpARMMOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpARMMOVWreg) v.reset(OpARMMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -5344,9 +5338,8 @@ func rewriteValueARM_OpARMMOVBload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -5390,13 +5383,9 @@ func rewriteValueARM_OpARMMOVBloadidx(v *Value) bool {
if v_2.Op != OpARMMOVBstoreidx { if v_2.Op != OpARMMOVBstoreidx {
break break
} }
_ = v_2.Args[3]
ptr2 := v_2.Args[0]
if idx != v_2.Args[1] {
break
}
x := v_2.Args[2] x := v_2.Args[2]
if !(isSamePtr(ptr, ptr2)) { ptr2 := v_2.Args[0]
if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) {
break break
} }
v.reset(OpARMMOVBreg) v.reset(OpARMMOVBreg)
@ -5442,7 +5431,6 @@ func rewriteValueARM_OpARMMOVBreg(v *Value) bool {
if x.Op != OpARMMOVBload { if x.Op != OpARMMOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpARMMOVWreg) v.reset(OpARMMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -5751,9 +5739,8 @@ func rewriteValueARM_OpARMMOVDload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -5898,9 +5885,8 @@ func rewriteValueARM_OpARMMOVFload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -6047,9 +6033,8 @@ func rewriteValueARM_OpARMMOVHUload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -6106,13 +6091,9 @@ func rewriteValueARM_OpARMMOVHUloadidx(v *Value) bool {
if v_2.Op != OpARMMOVHstoreidx { if v_2.Op != OpARMMOVHstoreidx {
break break
} }
_ = v_2.Args[3]
ptr2 := v_2.Args[0]
if idx != v_2.Args[1] {
break
}
x := v_2.Args[2] x := v_2.Args[2]
if !(isSamePtr(ptr, ptr2)) { ptr2 := v_2.Args[0]
if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) {
break break
} }
v.reset(OpARMMOVHUreg) v.reset(OpARMMOVHUreg)
@ -6158,7 +6139,6 @@ func rewriteValueARM_OpARMMOVHUreg(v *Value) bool {
if x.Op != OpARMMOVBUload { if x.Op != OpARMMOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpARMMOVWreg) v.reset(OpARMMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -6170,7 +6150,6 @@ func rewriteValueARM_OpARMMOVHUreg(v *Value) bool {
if x.Op != OpARMMOVHUload { if x.Op != OpARMMOVHUload {
break break
} }
_ = x.Args[1]
v.reset(OpARMMOVWreg) v.reset(OpARMMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -6294,9 +6273,8 @@ func rewriteValueARM_OpARMMOVHload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -6340,13 +6318,9 @@ func rewriteValueARM_OpARMMOVHloadidx(v *Value) bool {
if v_2.Op != OpARMMOVHstoreidx { if v_2.Op != OpARMMOVHstoreidx {
break break
} }
_ = v_2.Args[3]
ptr2 := v_2.Args[0]
if idx != v_2.Args[1] {
break
}
x := v_2.Args[2] x := v_2.Args[2]
if !(isSamePtr(ptr, ptr2)) { ptr2 := v_2.Args[0]
if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) {
break break
} }
v.reset(OpARMMOVHreg) v.reset(OpARMMOVHreg)
@ -6392,7 +6366,6 @@ func rewriteValueARM_OpARMMOVHreg(v *Value) bool {
if x.Op != OpARMMOVBload { if x.Op != OpARMMOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpARMMOVWreg) v.reset(OpARMMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -6404,7 +6377,6 @@ func rewriteValueARM_OpARMMOVHreg(v *Value) bool {
if x.Op != OpARMMOVBUload { if x.Op != OpARMMOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpARMMOVWreg) v.reset(OpARMMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -6416,7 +6388,6 @@ func rewriteValueARM_OpARMMOVHreg(v *Value) bool {
if x.Op != OpARMMOVHload { if x.Op != OpARMMOVHload {
break break
} }
_ = x.Args[1]
v.reset(OpARMMOVWreg) v.reset(OpARMMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -6715,9 +6686,8 @@ func rewriteValueARM_OpARMMOVWload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -6842,13 +6812,9 @@ func rewriteValueARM_OpARMMOVWloadidx(v *Value) bool {
if v_2.Op != OpARMMOVWstoreidx { if v_2.Op != OpARMMOVWstoreidx {
break break
} }
_ = v_2.Args[3]
ptr2 := v_2.Args[0]
if idx != v_2.Args[1] {
break
}
x := v_2.Args[2] x := v_2.Args[2]
if !(isSamePtr(ptr, ptr2)) { ptr2 := v_2.Args[0]
if idx != v_2.Args[1] || !(isSamePtr(ptr, ptr2)) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -6989,13 +6955,9 @@ func rewriteValueARM_OpARMMOVWloadshiftLL(v *Value) bool {
break break
} }
d := v_2.AuxInt 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] 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 break
} }
v.copyOf(x) v.copyOf(x)
@ -7033,13 +6995,9 @@ func rewriteValueARM_OpARMMOVWloadshiftRA(v *Value) bool {
break break
} }
d := v_2.AuxInt 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] 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 break
} }
v.copyOf(x) v.copyOf(x)
@ -7077,13 +7035,9 @@ func rewriteValueARM_OpARMMOVWloadshiftRL(v *Value) bool {
break break
} }
d := v_2.AuxInt 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] 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 break
} }
v.copyOf(x) v.copyOf(x)

View File

@ -4118,11 +4118,10 @@ func rewriteValueARM64_OpARM64FMOVDload(v *Value) bool {
if v_1.Op != OpARM64MOVDstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpARM64MOVDstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] val := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
val := v_1.Args[1]
v.reset(OpARM64FMOVDgpfp) v.reset(OpARM64FMOVDgpfp)
v.AddArg(val) v.AddArg(val)
return true 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 { if v_1.Op != OpARM64MOVWstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] val := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
val := v_1.Args[1]
v.reset(OpARM64FMOVSgpfp) v.reset(OpARM64FMOVSgpfp)
v.AddArg(val) v.AddArg(val)
return true return true
@ -6838,7 +6836,6 @@ func rewriteValueARM64_OpARM64MOVBUload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[1]
ptr2 := v_1.Args[0] ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
@ -6903,9 +6900,8 @@ func rewriteValueARM64_OpARM64MOVBUloadidx(v *Value) bool {
if v_2.Op != OpARM64MOVBstorezeroidx { if v_2.Op != OpARM64MOVBstorezeroidx {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) {
break break
} }
@ -6924,7 +6920,6 @@ func rewriteValueARM64_OpARM64MOVBUreg(v *Value) bool {
if x.Op != OpARM64MOVBUload { if x.Op != OpARM64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -6936,7 +6931,6 @@ func rewriteValueARM64_OpARM64MOVBUreg(v *Value) bool {
if x.Op != OpARM64MOVBUloadidx { if x.Op != OpARM64MOVBUloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -7103,7 +7097,6 @@ func rewriteValueARM64_OpARM64MOVBload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[1]
ptr2 := v_1.Args[0] ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
@ -7155,9 +7148,8 @@ func rewriteValueARM64_OpARM64MOVBloadidx(v *Value) bool {
if v_2.Op != OpARM64MOVBstorezeroidx { if v_2.Op != OpARM64MOVBstorezeroidx {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) {
break break
} }
@ -7176,7 +7168,6 @@ func rewriteValueARM64_OpARM64MOVBreg(v *Value) bool {
if x.Op != OpARM64MOVBload { if x.Op != OpARM64MOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -7188,7 +7179,6 @@ func rewriteValueARM64_OpARM64MOVBreg(v *Value) bool {
if x.Op != OpARM64MOVBloadidx { if x.Op != OpARM64MOVBloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true 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 { if v_1.Op != OpARM64FMOVDstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] val := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
val := v_1.Args[1]
v.reset(OpARM64FMOVDfpgp) v.reset(OpARM64FMOVDfpgp)
v.AddArg(val) v.AddArg(val)
return true return true
@ -9379,7 +9368,6 @@ func rewriteValueARM64_OpARM64MOVDload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[1]
ptr2 := v_1.Args[0] ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
@ -9470,9 +9458,8 @@ func rewriteValueARM64_OpARM64MOVDloadidx(v *Value) bool {
if v_2.Op != OpARM64MOVDstorezeroidx { if v_2.Op != OpARM64MOVDstorezeroidx {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) {
break break
} }
@ -9509,9 +9496,8 @@ func rewriteValueARM64_OpARM64MOVDloadidx8(v *Value) bool {
if v_2.Op != OpARM64MOVDstorezeroidx8 { if v_2.Op != OpARM64MOVDstorezeroidx8 {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) {
break break
} }
@ -10145,7 +10131,6 @@ func rewriteValueARM64_OpARM64MOVHUload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[1]
ptr2 := v_1.Args[0] ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
@ -10255,9 +10240,8 @@ func rewriteValueARM64_OpARM64MOVHUloadidx(v *Value) bool {
if v_2.Op != OpARM64MOVHstorezeroidx { if v_2.Op != OpARM64MOVHstorezeroidx {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) {
break break
} }
@ -10294,9 +10278,8 @@ func rewriteValueARM64_OpARM64MOVHUloadidx2(v *Value) bool {
if v_2.Op != OpARM64MOVHstorezeroidx2 { if v_2.Op != OpARM64MOVHstorezeroidx2 {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) {
break break
} }
@ -10315,7 +10298,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool {
if x.Op != OpARM64MOVBUload { if x.Op != OpARM64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10327,7 +10309,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool {
if x.Op != OpARM64MOVHUload { if x.Op != OpARM64MOVHUload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10339,7 +10320,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool {
if x.Op != OpARM64MOVBUloadidx { if x.Op != OpARM64MOVBUloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10351,7 +10331,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool {
if x.Op != OpARM64MOVHUloadidx { if x.Op != OpARM64MOVHUloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10363,7 +10342,6 @@ func rewriteValueARM64_OpARM64MOVHUreg(v *Value) bool {
if x.Op != OpARM64MOVHUloadidx2 { if x.Op != OpARM64MOVHUloadidx2 {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10548,7 +10526,6 @@ func rewriteValueARM64_OpARM64MOVHload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[1]
ptr2 := v_1.Args[0] ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
@ -10645,9 +10622,8 @@ func rewriteValueARM64_OpARM64MOVHloadidx(v *Value) bool {
if v_2.Op != OpARM64MOVHstorezeroidx { if v_2.Op != OpARM64MOVHstorezeroidx {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) {
break break
} }
@ -10684,9 +10660,8 @@ func rewriteValueARM64_OpARM64MOVHloadidx2(v *Value) bool {
if v_2.Op != OpARM64MOVHstorezeroidx2 { if v_2.Op != OpARM64MOVHstorezeroidx2 {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) {
break break
} }
@ -10705,7 +10680,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool {
if x.Op != OpARM64MOVBload { if x.Op != OpARM64MOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10717,7 +10691,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool {
if x.Op != OpARM64MOVBUload { if x.Op != OpARM64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10729,7 +10702,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool {
if x.Op != OpARM64MOVHload { if x.Op != OpARM64MOVHload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10741,7 +10713,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool {
if x.Op != OpARM64MOVBloadidx { if x.Op != OpARM64MOVBloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10753,7 +10724,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool {
if x.Op != OpARM64MOVBUloadidx { if x.Op != OpARM64MOVBUloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10765,7 +10735,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool {
if x.Op != OpARM64MOVHloadidx { if x.Op != OpARM64MOVHloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -10777,7 +10746,6 @@ func rewriteValueARM64_OpARM64MOVHreg(v *Value) bool {
if x.Op != OpARM64MOVHloadidx2 { if x.Op != OpARM64MOVHloadidx2 {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true 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 { if v_1.Op != OpARM64FMOVSstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] val := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
val := v_1.Args[1]
v.reset(OpARM64FMOVSfpgp) v.reset(OpARM64FMOVSfpgp)
v.AddArg(val) v.AddArg(val)
return true return true
@ -12188,7 +12155,6 @@ func rewriteValueARM64_OpARM64MOVWUload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[1]
ptr2 := v_1.Args[0] ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
@ -12279,9 +12245,8 @@ func rewriteValueARM64_OpARM64MOVWUloadidx(v *Value) bool {
if v_2.Op != OpARM64MOVWstorezeroidx { if v_2.Op != OpARM64MOVWstorezeroidx {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) {
break break
} }
@ -12318,9 +12283,8 @@ func rewriteValueARM64_OpARM64MOVWUloadidx4(v *Value) bool {
if v_2.Op != OpARM64MOVWstorezeroidx4 { if v_2.Op != OpARM64MOVWstorezeroidx4 {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) {
break break
} }
@ -12339,7 +12303,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool {
if x.Op != OpARM64MOVBUload { if x.Op != OpARM64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12351,7 +12314,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool {
if x.Op != OpARM64MOVHUload { if x.Op != OpARM64MOVHUload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12363,7 +12325,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool {
if x.Op != OpARM64MOVWUload { if x.Op != OpARM64MOVWUload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12375,7 +12336,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool {
if x.Op != OpARM64MOVBUloadidx { if x.Op != OpARM64MOVBUloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12387,7 +12347,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool {
if x.Op != OpARM64MOVHUloadidx { if x.Op != OpARM64MOVHUloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12399,7 +12358,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool {
if x.Op != OpARM64MOVWUloadidx { if x.Op != OpARM64MOVWUloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12411,7 +12369,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool {
if x.Op != OpARM64MOVHUloadidx2 { if x.Op != OpARM64MOVHUloadidx2 {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12423,7 +12380,6 @@ func rewriteValueARM64_OpARM64MOVWUreg(v *Value) bool {
if x.Op != OpARM64MOVWUloadidx4 { if x.Op != OpARM64MOVWUloadidx4 {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12619,7 +12575,6 @@ func rewriteValueARM64_OpARM64MOVWload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[1]
ptr2 := v_1.Args[0] ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
@ -12697,9 +12652,8 @@ func rewriteValueARM64_OpARM64MOVWloadidx(v *Value) bool {
if v_2.Op != OpARM64MOVWstorezeroidx { if v_2.Op != OpARM64MOVWstorezeroidx {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2) || isSamePtr(ptr, idx2) && isSamePtr(idx, ptr2)) {
break break
} }
@ -12736,9 +12690,8 @@ func rewriteValueARM64_OpARM64MOVWloadidx4(v *Value) bool {
if v_2.Op != OpARM64MOVWstorezeroidx4 { if v_2.Op != OpARM64MOVWstorezeroidx4 {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
idx2 := v_2.Args[1] idx2 := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) { if !(isSamePtr(ptr, ptr2) && isSamePtr(idx, idx2)) {
break break
} }
@ -12757,7 +12710,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVBload { if x.Op != OpARM64MOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12769,7 +12721,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVBUload { if x.Op != OpARM64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12781,7 +12732,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVHload { if x.Op != OpARM64MOVHload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12793,7 +12743,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVHUload { if x.Op != OpARM64MOVHUload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12805,7 +12754,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVWload { if x.Op != OpARM64MOVWload {
break break
} }
_ = x.Args[1]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12817,7 +12765,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVBloadidx { if x.Op != OpARM64MOVBloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12829,7 +12776,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVBUloadidx { if x.Op != OpARM64MOVBUloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12841,7 +12787,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVHloadidx { if x.Op != OpARM64MOVHloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12853,7 +12798,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVHUloadidx { if x.Op != OpARM64MOVHUloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12865,7 +12809,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVWloadidx { if x.Op != OpARM64MOVWloadidx {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12877,7 +12820,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVHloadidx2 { if x.Op != OpARM64MOVHloadidx2 {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12889,7 +12831,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVHUloadidx2 { if x.Op != OpARM64MOVHUloadidx2 {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -12901,7 +12842,6 @@ func rewriteValueARM64_OpARM64MOVWreg(v *Value) bool {
if x.Op != OpARM64MOVWloadidx4 { if x.Op != OpARM64MOVWloadidx4 {
break break
} }
_ = x.Args[2]
v.reset(OpARM64MOVDreg) v.reset(OpARM64MOVDreg)
v.AddArg(x) v.AddArg(x)
return true return true

View File

@ -2416,9 +2416,8 @@ func rewriteValueMIPS_OpMIPSMOVBUload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -2438,7 +2437,6 @@ func rewriteValueMIPS_OpMIPSMOVBUreg(v *Value) bool {
if x.Op != OpMIPSMOVBUload { if x.Op != OpMIPSMOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPSMOVWreg) v.reset(OpMIPSMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -2563,9 +2561,8 @@ func rewriteValueMIPS_OpMIPSMOVBload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -2585,7 +2582,6 @@ func rewriteValueMIPS_OpMIPSMOVBreg(v *Value) bool {
if x.Op != OpMIPSMOVBload { if x.Op != OpMIPSMOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPSMOVWreg) v.reset(OpMIPSMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -2916,9 +2912,8 @@ func rewriteValueMIPS_OpMIPSMOVDload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -3038,9 +3033,8 @@ func rewriteValueMIPS_OpMIPSMOVFload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -3160,9 +3154,8 @@ func rewriteValueMIPS_OpMIPSMOVHUload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -3182,7 +3175,6 @@ func rewriteValueMIPS_OpMIPSMOVHUreg(v *Value) bool {
if x.Op != OpMIPSMOVBUload { if x.Op != OpMIPSMOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPSMOVWreg) v.reset(OpMIPSMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3194,7 +3186,6 @@ func rewriteValueMIPS_OpMIPSMOVHUreg(v *Value) bool {
if x.Op != OpMIPSMOVHUload { if x.Op != OpMIPSMOVHUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPSMOVWreg) v.reset(OpMIPSMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3330,9 +3321,8 @@ func rewriteValueMIPS_OpMIPSMOVHload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -3352,7 +3342,6 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool {
if x.Op != OpMIPSMOVBload { if x.Op != OpMIPSMOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPSMOVWreg) v.reset(OpMIPSMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3364,7 +3353,6 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool {
if x.Op != OpMIPSMOVBUload { if x.Op != OpMIPSMOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPSMOVWreg) v.reset(OpMIPSMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3376,7 +3364,6 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool {
if x.Op != OpMIPSMOVHload { if x.Op != OpMIPSMOVHload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPSMOVWreg) v.reset(OpMIPSMOVWreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3695,9 +3682,8 @@ func rewriteValueMIPS_OpMIPSMOVWload(v *Value) bool {
} }
off2 := v_1.AuxInt off2 := v_1.AuxInt
sym2 := v_1.Aux sym2 := v_1.Aux
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break break
} }
@ -6445,7 +6431,6 @@ func rewriteValueMIPS_OpSelect0(v *Value) bool {
if v_0.Op != OpMIPSMULTU { if v_0.Op != OpMIPSMULTU {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
v_0_1 := v_0.Args[1] 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 { 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 { if v_0.Op != OpMIPSMULTU {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
v_0_1 := v_0.Args[1] 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 { 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 { if v_0.Op != OpMIPSMULTU {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
v_0_1 := v_0.Args[1] 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 { 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 { if cmp.Op != OpMIPSSGT {
break break
} }
_ = cmp.Args[1]
b.resetWithControl(BlockMIPSNE, cmp) b.resetWithControl(BlockMIPSNE, cmp)
return true return true
} }
@ -7284,7 +7266,6 @@ func rewriteBlockMIPS(b *Block) bool {
if cmp.Op != OpMIPSSGTU { if cmp.Op != OpMIPSSGTU {
break break
} }
_ = cmp.Args[1]
b.resetWithControl(BlockMIPSNE, cmp) b.resetWithControl(BlockMIPSNE, cmp)
return true return true
} }
@ -7545,7 +7526,6 @@ func rewriteBlockMIPS(b *Block) bool {
if cmp.Op != OpMIPSSGT { if cmp.Op != OpMIPSSGT {
break break
} }
_ = cmp.Args[1]
b.resetWithControl(BlockMIPSEQ, cmp) b.resetWithControl(BlockMIPSEQ, cmp)
return true return true
} }
@ -7560,7 +7540,6 @@ func rewriteBlockMIPS(b *Block) bool {
if cmp.Op != OpMIPSSGTU { if cmp.Op != OpMIPSSGTU {
break break
} }
_ = cmp.Args[1]
b.resetWithControl(BlockMIPSEQ, cmp) b.resetWithControl(BlockMIPSEQ, cmp)
return true return true
} }

View File

@ -2606,7 +2606,6 @@ func rewriteValueMIPS64_OpMIPS64MOVBUreg(v *Value) bool {
if x.Op != OpMIPS64MOVBUload { if x.Op != OpMIPS64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -2692,7 +2691,6 @@ func rewriteValueMIPS64_OpMIPS64MOVBreg(v *Value) bool {
if x.Op != OpMIPS64MOVBload { if x.Op != OpMIPS64MOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3193,7 +3191,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHUreg(v *Value) bool {
if x.Op != OpMIPS64MOVBUload { if x.Op != OpMIPS64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3205,7 +3202,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHUreg(v *Value) bool {
if x.Op != OpMIPS64MOVHUload { if x.Op != OpMIPS64MOVHUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3302,7 +3298,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHreg(v *Value) bool {
if x.Op != OpMIPS64MOVBload { if x.Op != OpMIPS64MOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3314,7 +3309,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHreg(v *Value) bool {
if x.Op != OpMIPS64MOVBUload { if x.Op != OpMIPS64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3326,7 +3320,6 @@ func rewriteValueMIPS64_OpMIPS64MOVHreg(v *Value) bool {
if x.Op != OpMIPS64MOVHload { if x.Op != OpMIPS64MOVHload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3807,7 +3800,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWUreg(v *Value) bool {
if x.Op != OpMIPS64MOVBUload { if x.Op != OpMIPS64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3819,7 +3811,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWUreg(v *Value) bool {
if x.Op != OpMIPS64MOVHUload { if x.Op != OpMIPS64MOVHUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3831,7 +3822,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWUreg(v *Value) bool {
if x.Op != OpMIPS64MOVWUload { if x.Op != OpMIPS64MOVWUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3939,7 +3929,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool {
if x.Op != OpMIPS64MOVBload { if x.Op != OpMIPS64MOVBload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3951,7 +3940,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool {
if x.Op != OpMIPS64MOVBUload { if x.Op != OpMIPS64MOVBUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3963,7 +3951,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool {
if x.Op != OpMIPS64MOVHload { if x.Op != OpMIPS64MOVHload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3975,7 +3962,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool {
if x.Op != OpMIPS64MOVHUload { if x.Op != OpMIPS64MOVHUload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -3987,7 +3973,6 @@ func rewriteValueMIPS64_OpMIPS64MOVWreg(v *Value) bool {
if x.Op != OpMIPS64MOVWload { if x.Op != OpMIPS64MOVWload {
break break
} }
_ = x.Args[1]
v.reset(OpMIPS64MOVVreg) v.reset(OpMIPS64MOVVreg)
v.AddArg(x) v.AddArg(x)
return true return true
@ -7765,7 +7750,6 @@ func rewriteBlockMIPS64(b *Block) bool {
if cmp.Op != OpMIPS64SGT { if cmp.Op != OpMIPS64SGT {
break break
} }
_ = cmp.Args[1]
b.resetWithControl(BlockMIPS64NE, cmp) b.resetWithControl(BlockMIPS64NE, cmp)
return true return true
} }
@ -7780,7 +7764,6 @@ func rewriteBlockMIPS64(b *Block) bool {
if cmp.Op != OpMIPS64SGTU { if cmp.Op != OpMIPS64SGTU {
break break
} }
_ = cmp.Args[1]
b.resetWithControl(BlockMIPS64NE, cmp) b.resetWithControl(BlockMIPS64NE, cmp)
return true return true
} }
@ -8023,7 +8006,6 @@ func rewriteBlockMIPS64(b *Block) bool {
if cmp.Op != OpMIPS64SGT { if cmp.Op != OpMIPS64SGT {
break break
} }
_ = cmp.Args[1]
b.resetWithControl(BlockMIPS64EQ, cmp) b.resetWithControl(BlockMIPS64EQ, cmp)
return true return true
} }
@ -8038,7 +8020,6 @@ func rewriteBlockMIPS64(b *Block) bool {
if cmp.Op != OpMIPS64SGTU { if cmp.Op != OpMIPS64SGTU {
break break
} }
_ = cmp.Args[1]
b.resetWithControl(BlockMIPS64EQ, cmp) b.resetWithControl(BlockMIPS64EQ, cmp)
return true return true
} }

View File

@ -4125,7 +4125,6 @@ func rewriteValuePPC64_OpPPC64AND(v *Value) bool {
if x.Op != OpPPC64MOVBZload { if x.Op != OpPPC64MOVBZload {
continue continue
} }
_ = x.Args[1]
v.reset(OpPPC64ANDconst) v.reset(OpPPC64ANDconst)
v.AuxInt = c & 0xFF v.AuxInt = c & 0xFF
v.AddArg(x) 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 { if v_1.Op != OpPPC64MOVDstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] x := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
x := v_1.Args[1]
v.reset(OpPPC64MTVSRD) v.reset(OpPPC64MTVSRD)
v.AddArg(x) v.AddArg(x)
return true return true
@ -6359,7 +6357,6 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool {
if x.Op != OpPPC64MOVBZload { if x.Op != OpPPC64MOVBZload {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -6370,7 +6367,6 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool {
if x.Op != OpPPC64MOVBZloadidx { if x.Op != OpPPC64MOVBZloadidx {
break break
} }
_ = x.Args[2]
v.copyOf(x) v.copyOf(x)
return true 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 { if v_1.Op != OpPPC64FMOVDstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2] x := v_1.Args[1]
if ptr != v_1.Args[0] { if ptr != v_1.Args[0] {
break break
} }
x := v_1.Args[1]
v.reset(OpPPC64MFVSRD) v.reset(OpPPC64MFVSRD)
v.AddArg(x) v.AddArg(x)
return true return true
@ -8284,7 +8279,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
if y.Op != OpPPC64MOVHBRload { if y.Op != OpPPC64MOVHBRload {
break break
} }
_ = y.Args[1]
v.copyOf(y) v.copyOf(y)
return true return true
} }
@ -8307,7 +8301,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
if x.Op != OpPPC64MOVBZload { if x.Op != OpPPC64MOVBZload {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -8318,7 +8311,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
if x.Op != OpPPC64MOVBZloadidx { if x.Op != OpPPC64MOVBZloadidx {
break break
} }
_ = x.Args[2]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -8329,7 +8321,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
if x.Op != OpPPC64MOVHZload { if x.Op != OpPPC64MOVHZload {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -8340,7 +8331,6 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
if x.Op != OpPPC64MOVHZloadidx { if x.Op != OpPPC64MOVHZloadidx {
break break
} }
_ = x.Args[2]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -8666,7 +8656,6 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool {
if x.Op != OpPPC64MOVHload { if x.Op != OpPPC64MOVHload {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -8677,7 +8666,6 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool {
if x.Op != OpPPC64MOVHloadidx { if x.Op != OpPPC64MOVHloadidx {
break break
} }
_ = x.Args[2]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9268,7 +9256,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if y.Op != OpPPC64AND { if y.Op != OpPPC64AND {
break break
} }
_ = y.Args[1]
y_0 := y.Args[0] y_0 := y.Args[0]
y_1 := y.Args[1] y_1 := y.Args[1]
for _i0 := 0; _i0 <= 1; _i0, y_0, y_1 = _i0+1, y_1, y_0 { 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 { if y.Op != OpPPC64MOVHBRload {
break break
} }
_ = y.Args[1]
v.copyOf(y) v.copyOf(y)
return true return true
} }
@ -9423,7 +9409,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if y.Op != OpPPC64MOVWBRload { if y.Op != OpPPC64MOVWBRload {
break break
} }
_ = y.Args[1]
v.copyOf(y) v.copyOf(y)
return true return true
} }
@ -9446,7 +9431,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if x.Op != OpPPC64MOVBZload { if x.Op != OpPPC64MOVBZload {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9457,7 +9441,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if x.Op != OpPPC64MOVBZloadidx { if x.Op != OpPPC64MOVBZloadidx {
break break
} }
_ = x.Args[2]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9468,7 +9451,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if x.Op != OpPPC64MOVHZload { if x.Op != OpPPC64MOVHZload {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9479,7 +9461,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if x.Op != OpPPC64MOVHZloadidx { if x.Op != OpPPC64MOVHZloadidx {
break break
} }
_ = x.Args[2]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9490,7 +9471,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if x.Op != OpPPC64MOVWZload { if x.Op != OpPPC64MOVWZload {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9501,7 +9481,6 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if x.Op != OpPPC64MOVWZloadidx { if x.Op != OpPPC64MOVWZloadidx {
break break
} }
_ = x.Args[2]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9673,7 +9652,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if y.Op != OpPPC64AND { if y.Op != OpPPC64AND {
break break
} }
_ = y.Args[1]
y_0 := y.Args[0] y_0 := y.Args[0]
y_1 := y.Args[1] y_1 := y.Args[1]
for _i0 := 0; _i0 <= 1; _i0, y_0, y_1 = _i0+1, y_1, y_0 { 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 { if x.Op != OpPPC64MOVHload {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9857,7 +9834,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if x.Op != OpPPC64MOVHloadidx { if x.Op != OpPPC64MOVHloadidx {
break break
} }
_ = x.Args[2]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9868,7 +9844,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if x.Op != OpPPC64MOVWload { if x.Op != OpPPC64MOVWload {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -9879,7 +9854,6 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if x.Op != OpPPC64MOVWloadidx { if x.Op != OpPPC64MOVWloadidx {
break break
} }
_ = x.Args[2]
v.copyOf(x) v.copyOf(x)
return true return true
} }

View File

@ -5652,9 +5652,8 @@ func rewriteValueS390X_OpS390XADDload(v *Value) bool {
if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
y := v_2.Args[1] y := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -6154,9 +6153,8 @@ func rewriteValueS390X_OpS390XANDload(v *Value) bool {
if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
y := v_2.Args[1] y := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -7245,9 +7243,8 @@ func rewriteValueS390X_OpS390XFMOVDload(v *Value) bool {
if v_1.Op != OpS390XMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpS390XMOVDstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -7265,9 +7262,8 @@ func rewriteValueS390X_OpS390XFMOVDload(v *Value) bool {
if v_1.Op != OpS390XFMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpS390XFMOVDstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -7588,9 +7584,8 @@ func rewriteValueS390X_OpS390XFMOVSload(v *Value) bool {
if v_1.Op != OpS390XFMOVSstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpS390XFMOVSstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -8304,9 +8299,8 @@ func rewriteValueS390X_OpS390XMOVBZload(v *Value) bool {
if v_1.Op != OpS390XMOVBstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpS390XMOVBstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -8570,11 +8564,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZload { if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[1]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -8585,11 +8575,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZloadidx { if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[2]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -8678,7 +8664,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool {
if x.Op != OpS390XLOCGR { if x.Op != OpS390XLOCGR {
break break
} }
_ = x.Args[2] _ = x.Args[1]
x_0 := x.Args[0] x_0 := x.Args[0]
if x_0.Op != OpS390XMOVDconst { if x_0.Op != OpS390XMOVDconst {
break break
@ -8725,9 +8711,8 @@ func rewriteValueS390X_OpS390XMOVBload(v *Value) bool {
if v_1.Op != OpS390XMOVBstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpS390XMOVBstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -8991,11 +8976,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBload { if x.Op != OpS390XMOVBload || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[1]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -9006,11 +8987,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBloadidx { if x.Op != OpS390XMOVBloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[2]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) 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 { if v_1.Op != OpS390XMOVDstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -10037,9 +10013,8 @@ func rewriteValueS390X_OpS390XMOVDload(v *Value) bool {
if v_1.Op != OpS390XFMOVDstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpS390XFMOVDstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -10790,9 +10765,8 @@ func rewriteValueS390X_OpS390XMOVHZload(v *Value) bool {
if v_1.Op != OpS390XMOVHstore || v_1.AuxInt != off || v_1.Aux != sym { if v_1.Op != OpS390XMOVHstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -11041,11 +11015,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZload { if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[1]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -11056,11 +11026,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZloadidx { if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[2]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -11071,11 +11037,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHZload { if x.Op != OpS390XMOVHZload || !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
_ = x.Args[1]
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -11086,11 +11048,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHZloadidx { if x.Op != OpS390XMOVHZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
_ = x.Args[2]
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break break
} }
v.copyOf(x) 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 { if v_1.Op != OpS390XMOVHstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -11452,11 +11409,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBload { if x.Op != OpS390XMOVBload || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[1]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -11467,11 +11420,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBloadidx { if x.Op != OpS390XMOVBloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[2]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -11482,11 +11431,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHload { if x.Op != OpS390XMOVHload || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[1]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -11497,11 +11442,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHloadidx { if x.Op != OpS390XMOVHloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[2]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -11512,11 +11453,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZload { if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[1]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -11527,11 +11464,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZloadidx { if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[2]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) 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 { if v_1.Op != OpS390XMOVWstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -12574,11 +12506,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZload { if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[1]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -12589,11 +12517,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZloadidx { if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[2]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -12604,11 +12528,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHZload { if x.Op != OpS390XMOVHZload || !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
_ = x.Args[1]
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -12619,11 +12539,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHZloadidx { if x.Op != OpS390XMOVHZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
_ = x.Args[2]
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -12634,11 +12550,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVWZload { if x.Op != OpS390XMOVWZload || !(!x.Type.IsSigned() || x.Type.Size() > 4) {
break
}
_ = x.Args[1]
if !(!x.Type.IsSigned() || x.Type.Size() > 4) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -12649,11 +12561,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVWZloadidx { if x.Op != OpS390XMOVWZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 4) {
break
}
_ = x.Args[2]
if !(!x.Type.IsSigned() || x.Type.Size() > 4) {
break break
} }
v.copyOf(x) 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 { if v_1.Op != OpS390XMOVWstore || v_1.AuxInt != off || v_1.Aux != sym {
break break
} }
_ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
ptr2 := v_1.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -12983,11 +12890,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBload { if x.Op != OpS390XMOVBload || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[1]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -12998,11 +12901,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBloadidx { if x.Op != OpS390XMOVBloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[2]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -13013,11 +12912,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHload { if x.Op != OpS390XMOVHload || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[1]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -13028,11 +12923,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHloadidx { if x.Op != OpS390XMOVHloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[2]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -13043,11 +12934,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVWload { if x.Op != OpS390XMOVWload || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[1]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -13058,11 +12945,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVWloadidx { if x.Op != OpS390XMOVWloadidx || !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
_ = x.Args[2]
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -13073,11 +12956,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZload { if x.Op != OpS390XMOVBZload || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[1]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -13088,11 +12967,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVBZloadidx { if x.Op != OpS390XMOVBZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
_ = x.Args[2]
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -13103,11 +12978,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHZload { if x.Op != OpS390XMOVHZload || !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
_ = x.Args[1]
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break break
} }
v.copyOf(x) v.copyOf(x)
@ -13118,11 +12989,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
// result: x // result: x
for { for {
x := v_0 x := v_0
if x.Op != OpS390XMOVHZloadidx { if x.Op != OpS390XMOVHZloadidx || !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
_ = x.Args[2]
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break break
} }
v.copyOf(x) 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 { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
y := v_2.Args[1] y := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -16511,9 +16377,8 @@ func rewriteValueS390X_OpS390XORload(v *Value) bool {
if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
y := v_2.Args[1] y := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -17949,9 +17814,8 @@ func rewriteValueS390X_OpS390XSUBload(v *Value) bool {
if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
y := v_2.Args[1] y := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }
@ -18397,9 +18261,8 @@ func rewriteValueS390X_OpS390XXORload(v *Value) bool {
if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym { if v_2.Op != OpS390XFMOVDstore || v_2.AuxInt != off || v_2.Aux != sym {
break break
} }
_ = v_2.Args[2]
ptr2 := v_2.Args[0]
y := v_2.Args[1] y := v_2.Args[1]
ptr2 := v_2.Args[0]
if !(isSamePtr(ptr1, ptr2)) { if !(isSamePtr(ptr1, ptr2)) {
break break
} }

View File

@ -3096,7 +3096,6 @@ func rewriteValueWasm_OpSignExt16to32(v *Value) bool {
if x.Op != OpWasmI64Load16S { if x.Op != OpWasmI64Load16S {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -3138,7 +3137,6 @@ func rewriteValueWasm_OpSignExt16to64(v *Value) bool {
if x.Op != OpWasmI64Load16S { if x.Op != OpWasmI64Load16S {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -3180,7 +3178,6 @@ func rewriteValueWasm_OpSignExt32to64(v *Value) bool {
if x.Op != OpWasmI64Load32S { if x.Op != OpWasmI64Load32S {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -3222,7 +3219,6 @@ func rewriteValueWasm_OpSignExt8to16(v *Value) bool {
if x.Op != OpWasmI64Load8S { if x.Op != OpWasmI64Load8S {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -3264,7 +3260,6 @@ func rewriteValueWasm_OpSignExt8to32(v *Value) bool {
if x.Op != OpWasmI64Load8S { if x.Op != OpWasmI64Load8S {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -3306,7 +3301,6 @@ func rewriteValueWasm_OpSignExt8to64(v *Value) bool {
if x.Op != OpWasmI64Load8S { if x.Op != OpWasmI64Load8S {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -4591,7 +4585,6 @@ func rewriteValueWasm_OpZeroExt16to32(v *Value) bool {
if x.Op != OpWasmI64Load16U { if x.Op != OpWasmI64Load16U {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -4617,7 +4610,6 @@ func rewriteValueWasm_OpZeroExt16to64(v *Value) bool {
if x.Op != OpWasmI64Load16U { if x.Op != OpWasmI64Load16U {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -4643,7 +4635,6 @@ func rewriteValueWasm_OpZeroExt32to64(v *Value) bool {
if x.Op != OpWasmI64Load32U { if x.Op != OpWasmI64Load32U {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -4669,7 +4660,6 @@ func rewriteValueWasm_OpZeroExt8to16(v *Value) bool {
if x.Op != OpWasmI64Load8U { if x.Op != OpWasmI64Load8U {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -4695,7 +4685,6 @@ func rewriteValueWasm_OpZeroExt8to32(v *Value) bool {
if x.Op != OpWasmI64Load8U { if x.Op != OpWasmI64Load8U {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }
@ -4721,7 +4710,6 @@ func rewriteValueWasm_OpZeroExt8to64(v *Value) bool {
if x.Op != OpWasmI64Load8U { if x.Op != OpWasmI64Load8U {
break break
} }
_ = x.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
} }

View File

@ -54,7 +54,6 @@ func rewriteValuedec_OpComplexReal(v *Value) bool {
if v_0.Op != OpComplexMake { if v_0.Op != OpComplexMake {
break break
} }
_ = v_0.Args[1]
real := v_0.Args[0] real := v_0.Args[0]
v.copyOf(real) v.copyOf(real)
return true return true
@ -83,7 +82,6 @@ func rewriteValuedec_OpITab(v *Value) bool {
if v_0.Op != OpIMake { if v_0.Op != OpIMake {
break break
} }
_ = v_0.Args[1]
itab := v_0.Args[0] itab := v_0.Args[0]
v.copyOf(itab) v.copyOf(itab)
return true return true
@ -230,7 +228,6 @@ func rewriteValuedec_OpSliceLen(v *Value) bool {
if v_0.Op != OpSliceMake { if v_0.Op != OpSliceMake {
break break
} }
_ = v_0.Args[2]
len := v_0.Args[1] len := v_0.Args[1]
v.copyOf(len) v.copyOf(len)
return true return true
@ -245,7 +242,6 @@ func rewriteValuedec_OpSlicePtr(v *Value) bool {
if v_0.Op != OpSliceMake { if v_0.Op != OpSliceMake {
break break
} }
_ = v_0.Args[2]
ptr := v_0.Args[0] ptr := v_0.Args[0]
v.copyOf(ptr) v.copyOf(ptr)
return true return true
@ -405,7 +401,6 @@ func rewriteValuedec_OpStringPtr(v *Value) bool {
if v_0.Op != OpStringMake { if v_0.Op != OpStringMake {
break break
} }
_ = v_0.Args[1]
ptr := v_0.Args[0] ptr := v_0.Args[0]
v.copyOf(ptr) v.copyOf(ptr)
return true return true

View File

@ -439,7 +439,6 @@ func rewriteValuedec64_OpInt64Hi(v *Value) bool {
if v_0.Op != OpInt64Make { if v_0.Op != OpInt64Make {
break break
} }
_ = v_0.Args[1]
hi := v_0.Args[0] hi := v_0.Args[0]
v.copyOf(hi) v.copyOf(hi)
return true return true
@ -704,7 +703,6 @@ func rewriteValuedec64_OpLsh16x64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -770,7 +768,6 @@ func rewriteValuedec64_OpLsh32x64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -916,7 +913,6 @@ func rewriteValuedec64_OpLsh64x64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -1022,7 +1018,6 @@ func rewriteValuedec64_OpLsh8x64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -1204,7 +1199,6 @@ func rewriteValuedec64_OpRsh16Ux64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -1271,7 +1265,6 @@ func rewriteValuedec64_OpRsh16x64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -1339,7 +1332,6 @@ func rewriteValuedec64_OpRsh32Ux64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -1406,7 +1398,6 @@ func rewriteValuedec64_OpRsh32x64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -1552,7 +1543,6 @@ func rewriteValuedec64_OpRsh64Ux64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -1757,7 +1747,6 @@ func rewriteValuedec64_OpRsh64x64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -1881,7 +1870,6 @@ func rewriteValuedec64_OpRsh8Ux64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break
@ -1948,7 +1936,6 @@ func rewriteValuedec64_OpRsh8x64(v *Value) bool {
if v_1.Op != OpInt64Make { if v_1.Op != OpInt64Make {
break break
} }
_ = v_1.Args[1]
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 { if v_1_0.Op != OpConst32 {
break break

View File

@ -6886,12 +6886,10 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool {
continue continue
} }
a := v_0.Aux a := v_0.Aux
_ = v_0.Args[1]
if v_1.Op != OpLocalAddr { if v_1.Op != OpLocalAddr {
continue continue
} }
b := v_1.Aux b := v_1.Aux
_ = v_1.Args[1]
v.reset(OpConstBool) v.reset(OpConstBool)
v.AuxInt = b2i(a == b) v.AuxInt = b2i(a == b)
return true return true
@ -6906,7 +6904,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool {
continue continue
} }
a := v_0.Aux a := v_0.Aux
_ = v_0.Args[1]
if v_1.Op != OpOffPtr { if v_1.Op != OpOffPtr {
continue continue
} }
@ -6916,7 +6913,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool {
continue continue
} }
b := v_1_0.Aux b := v_1_0.Aux
_ = v_1_0.Args[1]
v.reset(OpConstBool) v.reset(OpConstBool)
v.AuxInt = b2i(a == b && o == 0) v.AuxInt = b2i(a == b && o == 0)
return true return true
@ -6936,7 +6932,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool {
continue continue
} }
a := v_0_0.Aux a := v_0_0.Aux
_ = v_0_0.Args[1]
if v_1.Op != OpOffPtr { if v_1.Op != OpOffPtr {
continue continue
} }
@ -6946,7 +6941,6 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool {
continue continue
} }
b := v_1_0.Aux b := v_1_0.Aux
_ = v_1_0.Args[1]
v.reset(OpConstBool) v.reset(OpConstBool)
v.AuxInt = b2i(a == b && o1 == o2) v.AuxInt = b2i(a == b && o1 == o2)
return true return true
@ -7037,11 +7031,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool {
// result: (ConstBool [0]) // result: (ConstBool [0])
for { for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr { if v_0.Op != OpLocalAddr || v_1.Op != OpAddr {
continue
}
_ = v_0.Args[1]
if v_1.Op != OpAddr {
continue continue
} }
v.reset(OpConstBool) v.reset(OpConstBool)
@ -7058,11 +7048,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool {
continue continue
} }
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLocalAddr { if v_0_0.Op != OpLocalAddr || v_1.Op != OpAddr {
continue
}
_ = v_0_0.Args[1]
if v_1.Op != OpAddr {
continue continue
} }
v.reset(OpConstBool) v.reset(OpConstBool)
@ -7075,11 +7061,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool {
// result: (ConstBool [0]) // result: (ConstBool [0])
for { for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr { if v_0.Op != OpLocalAddr || v_1.Op != OpOffPtr {
continue
}
_ = v_0.Args[1]
if v_1.Op != OpOffPtr {
continue continue
} }
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
@ -7100,11 +7082,7 @@ func rewriteValuegeneric_OpEqPtr(v *Value) bool {
continue continue
} }
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLocalAddr { if v_0_0.Op != OpLocalAddr || v_1.Op != OpOffPtr {
continue
}
_ = v_0_0.Args[1]
if v_1.Op != OpOffPtr {
continue continue
} }
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
@ -7328,7 +7306,6 @@ func rewriteValuegeneric_OpInterCall(v *Value) bool {
if v_0.Op != OpLoad { if v_0.Op != OpLoad {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
if v_0_0.Op != OpOffPtr { if v_0_0.Op != OpOffPtr {
break break
@ -7342,7 +7319,6 @@ func rewriteValuegeneric_OpInterCall(v *Value) bool {
if v_0_0_0_0.Op != OpIMake { if v_0_0_0_0.Op != OpIMake {
break break
} }
_ = v_0_0_0_0.Args[1]
v_0_0_0_0_0 := v_0_0_0_0.Args[0] v_0_0_0_0_0 := v_0_0_0_0.Args[0]
if v_0_0_0_0_0.Op != OpAddr { if v_0_0_0_0_0.Op != OpAddr {
break break
@ -7445,7 +7421,6 @@ func rewriteValuegeneric_OpIsInBounds(v *Value) bool {
if v_0.Op != OpAnd8 { if v_0.Op != OpAnd8 {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
v_0_1 := v_0.Args[1] 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 { 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 { if v_0_0.Op != OpAnd8 {
break break
} }
_ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0] v_0_0_0 := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1] 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 { 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 { if v_0_0.Op != OpAnd8 {
break break
} }
_ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0] v_0_0_0 := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1] 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 { 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 { if v_0_0.Op != OpAnd8 {
break break
} }
_ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0] v_0_0_0 := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1] 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 { 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 { if v_0.Op != OpAnd16 {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
v_0_1 := v_0.Args[1] 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 { 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 { if v_0_0.Op != OpAnd16 {
break break
} }
_ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0] v_0_0_0 := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1] 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 { 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 { if v_0_0.Op != OpAnd16 {
break break
} }
_ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0] v_0_0_0 := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1] 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 { 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 { if v_0.Op != OpAnd32 {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
v_0_1 := v_0.Args[1] 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 { 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 { if v_0_0.Op != OpAnd32 {
break break
} }
_ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0] v_0_0_0 := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1] 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 { 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 { if v_0.Op != OpAnd64 {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
v_0_1 := v_0.Args[1] 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 { 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 { if v_0.Op != OpLocalAddr {
break break
} }
_ = v_0.Args[1]
v.reset(OpConstBool) v.reset(OpConstBool)
v.AuxInt = 1 v.AuxInt = 1
return true return true
@ -8144,7 +8109,6 @@ func rewriteValuegeneric_OpIsSliceInBounds(v *Value) bool {
if v_0.Op != OpAnd32 { if v_0.Op != OpAnd32 {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
v_0_1 := v_0.Args[1] 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 { 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 { if v_0.Op != OpAnd64 {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
v_0_1 := v_0.Args[1] 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 { 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 break
} }
t2 := v_1.Aux t2 := v_1.Aux
_ = v_1.Args[2]
p2 := v_1.Args[0]
x := v_1.Args[1] x := v_1.Args[1]
p2 := v_1.Args[0]
if !(isSamePtr(p1, p2) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2)) { if !(isSamePtr(p1, p2) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2)) {
break break
} }
@ -8876,9 +8838,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
t3 := v_1_2.Aux t3 := v_1_2.Aux
_ = v_1_2.Args[2]
p3 := v_1_2.Args[0]
x := v_1_2.Args[1] 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))) { if !(isSamePtr(p1, p3) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p3, sizeof(t3), p2, sizeof(t2))) {
break break
} }
@ -8909,9 +8870,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
t4 := v_1_2_2.Aux 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] 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))) { 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 break
} }
@ -8949,9 +8909,8 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
t5 := v_1_2_2_2.Aux 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] 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))) { 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 break
} }
@ -8968,7 +8927,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
t2 := v_1.Aux t2 := v_1.Aux
_ = v_1.Args[2] _ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
v_1_1 := v_1.Args[1] v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 { if v_1_1.Op != OpConst64 {
@ -8992,7 +8951,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
t2 := v_1.Aux t2 := v_1.Aux
_ = v_1.Args[2] _ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
v_1_1 := v_1.Args[1] v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 { if v_1_1.Op != OpConst32 {
@ -9016,7 +8975,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
t2 := v_1.Aux t2 := v_1.Aux
_ = v_1.Args[2] _ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
v_1_1 := v_1.Args[1] v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64F { if v_1_1.Op != OpConst64F {
@ -9040,7 +8999,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
t2 := v_1.Aux t2 := v_1.Aux
_ = v_1.Args[2] _ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
v_1_1 := v_1.Args[1] v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32F { if v_1_1.Op != OpConst32F {
@ -9076,7 +9035,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := mem.AuxInt n := mem.AuxInt
_ = mem.Args[1]
p3 := mem.Args[0] p3 := mem.Args[0]
if !(o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p3) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2))) { if !(o1 >= 0 && o1+t1.Size() <= n && isSamePtr(p1, p3) && fe.CanSSA(t1) && disjoint(op, t1.Size(), p2, sizeof(t2))) {
break break
@ -9119,7 +9077,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := mem.AuxInt n := mem.AuxInt
_ = mem.Args[1]
p4 := mem.Args[0] 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))) { 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 break
@ -9169,7 +9126,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := mem.AuxInt n := mem.AuxInt
_ = mem.Args[1]
p5 := mem.Args[0] 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))) { 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 break
@ -9226,7 +9182,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := mem.AuxInt n := mem.AuxInt
_ = mem.Args[1]
p6 := mem.Args[0] 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))) { 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 break
@ -9254,7 +9209,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := v_1.AuxInt n := v_1.AuxInt
_ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
if !(t1.IsBoolean() && isSamePtr(p1, p2) && n >= o+1) { if !(t1.IsBoolean() && isSamePtr(p1, p2) && n >= o+1) {
break break
@ -9277,7 +9231,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := v_1.AuxInt n := v_1.AuxInt
_ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
if !(is8BitInt(t1) && isSamePtr(p1, p2) && n >= o+1) { if !(is8BitInt(t1) && isSamePtr(p1, p2) && n >= o+1) {
break break
@ -9300,7 +9253,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := v_1.AuxInt n := v_1.AuxInt
_ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
if !(is16BitInt(t1) && isSamePtr(p1, p2) && n >= o+2) { if !(is16BitInt(t1) && isSamePtr(p1, p2) && n >= o+2) {
break break
@ -9323,7 +9275,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := v_1.AuxInt n := v_1.AuxInt
_ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
if !(is32BitInt(t1) && isSamePtr(p1, p2) && n >= o+4) { if !(is32BitInt(t1) && isSamePtr(p1, p2) && n >= o+4) {
break break
@ -9346,7 +9297,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := v_1.AuxInt n := v_1.AuxInt
_ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
if !(is64BitInt(t1) && isSamePtr(p1, p2) && n >= o+8) { if !(is64BitInt(t1) && isSamePtr(p1, p2) && n >= o+8) {
break break
@ -9369,7 +9319,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := v_1.AuxInt n := v_1.AuxInt
_ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
if !(is32BitFloat(t1) && isSamePtr(p1, p2) && n >= o+4) { if !(is32BitFloat(t1) && isSamePtr(p1, p2) && n >= o+4) {
break break
@ -9392,7 +9341,6 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
break break
} }
n := v_1.AuxInt n := v_1.AuxInt
_ = v_1.Args[1]
p2 := v_1.Args[0] p2 := v_1.Args[0]
if !(is64BitFloat(t1) && isSamePtr(p1, p2) && n >= o+8) { if !(is64BitFloat(t1) && isSamePtr(p1, p2) && n >= o+8) {
break break
@ -11082,7 +11030,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
if mem.Op != OpZero || mem.AuxInt != n || mem.Aux != t { if mem.Op != OpZero || mem.AuxInt != n || mem.Aux != t {
break break
} }
_ = mem.Args[1]
dst2 := mem.Args[0] dst2 := mem.Args[0]
if !(isSamePtr(src, dst2)) { if !(isSamePtr(src, dst2)) {
break break
@ -11109,7 +11056,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
if mem_0.Op != OpZero || mem_0.AuxInt != n || mem_0.Aux != t { if mem_0.Op != OpZero || mem_0.AuxInt != n || mem_0.Aux != t {
break break
} }
_ = mem_0.Args[1]
dst0 := mem_0.Args[0] dst0 := mem_0.Args[0]
if !(isSamePtr(src, dst0)) { if !(isSamePtr(src, dst0)) {
break break
@ -11284,7 +11230,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t3 := mem_2.Aux t3 := mem_2.Aux
_ = mem_2.Args[2] d2 := mem_2.Args[1]
op3 := mem_2.Args[0] op3 := mem_2.Args[0]
if op3.Op != OpOffPtr { if op3.Op != OpOffPtr {
break break
@ -11294,7 +11240,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
p3 := op3.Args[0] 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)) { 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 break
} }
@ -11353,7 +11298,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t4 := mem_2_2.Aux t4 := mem_2_2.Aux
_ = mem_2_2.Args[2] d3 := mem_2_2.Args[1]
op4 := mem_2_2.Args[0] op4 := mem_2_2.Args[0]
if op4.Op != OpOffPtr { if op4.Op != OpOffPtr {
break break
@ -11363,7 +11308,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
p4 := op4.Args[0] 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)) { 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 break
} }
@ -11442,7 +11386,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t5 := mem_2_2_2.Aux 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] op5 := mem_2_2_2.Args[0]
if op5.Op != OpOffPtr { if op5.Op != OpOffPtr {
break break
@ -11452,7 +11396,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
p5 := op5.Args[0] 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)) { 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 break
} }
@ -11513,7 +11456,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t3 := mem_0_2.Aux t3 := mem_0_2.Aux
_ = mem_0_2.Args[2] d2 := mem_0_2.Args[1]
op3 := mem_0_2.Args[0] op3 := mem_0_2.Args[0]
if op3.Op != OpOffPtr { if op3.Op != OpOffPtr {
break break
@ -11523,7 +11466,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
p3 := op3.Args[0] 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)) { 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 break
} }
@ -11586,7 +11528,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t4 := mem_0_2_2.Aux 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] op4 := mem_0_2_2.Args[0]
if op4.Op != OpOffPtr { if op4.Op != OpOffPtr {
break break
@ -11596,7 +11538,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
p4 := op4.Args[0] 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)) { 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 break
} }
@ -11679,7 +11620,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t5 := mem_0_2_2_2.Aux 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] op5 := mem_0_2_2_2.Args[0]
if op5.Op != OpOffPtr { if op5.Op != OpOffPtr {
break break
@ -11689,7 +11630,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
p5 := op5.Args[0] 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)) { 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 break
} }
@ -11746,7 +11686,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t3 := mem_2.Aux t3 := mem_2.Aux
_ = mem_2.Args[1]
p3 := mem_2.Args[0] 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)) { if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && registerizable(b, t2) && n >= o2+sizeof(t2)) {
break break
@ -11804,7 +11743,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t4 := mem_2_2.Aux t4 := mem_2_2.Aux
_ = mem_2_2.Args[1]
p4 := mem_2_2.Args[0] 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)) { 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 break
@ -11882,7 +11820,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t5 := mem_2_2_2.Aux t5 := mem_2_2_2.Aux
_ = mem_2_2_2.Args[1]
p5 := mem_2_2_2.Args[0] 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)) { 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 break
@ -11980,7 +11917,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t6 := mem_2_2_2_2.Aux t6 := mem_2_2_2_2.Aux
_ = mem_2_2_2_2.Args[1]
p6 := mem_2_2_2_2.Args[0] 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)) { 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 break
@ -12046,7 +11982,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t3 := mem_0_2.Aux t3 := mem_0_2.Aux
_ = mem_0_2.Args[1]
p3 := mem_0_2.Args[0] 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)) { if !(isSamePtr(p1, p2) && isSamePtr(p2, p3) && alignof(t2) <= alignof(t1) && alignof(t3) <= alignof(t1) && registerizable(b, t2) && n >= o2+sizeof(t2)) {
break break
@ -12108,7 +12043,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t4 := mem_0_2_2.Aux t4 := mem_0_2_2.Aux
_ = mem_0_2_2.Args[1]
p4 := mem_0_2_2.Args[0] 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)) { 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 break
@ -12190,7 +12124,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t5 := mem_0_2_2_2.Aux t5 := mem_0_2_2_2.Aux
_ = mem_0_2_2_2.Args[1]
p5 := mem_0_2_2_2.Args[0] 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)) { 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 break
@ -12292,7 +12225,6 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t6 := mem_0_2_2_2_2.Aux 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] 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)) { 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 break
@ -12340,9 +12272,8 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t2 := midmem.Aux t2 := midmem.Aux
_ = midmem.Args[2]
tmp2 := midmem.Args[0]
src := midmem.Args[1] 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))) { 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 break
} }
@ -12369,9 +12300,8 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
break break
} }
t2 := midmem_0.Aux t2 := midmem_0.Aux
_ = midmem_0.Args[2]
tmp2 := midmem_0.Args[0]
src := midmem_0.Args[1] 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))) { 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 break
} }
@ -14378,12 +14308,10 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool {
continue continue
} }
a := v_0.Aux a := v_0.Aux
_ = v_0.Args[1]
if v_1.Op != OpLocalAddr { if v_1.Op != OpLocalAddr {
continue continue
} }
b := v_1.Aux b := v_1.Aux
_ = v_1.Args[1]
v.reset(OpConstBool) v.reset(OpConstBool)
v.AuxInt = b2i(a != b) v.AuxInt = b2i(a != b)
return true return true
@ -14398,7 +14326,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool {
continue continue
} }
a := v_0.Aux a := v_0.Aux
_ = v_0.Args[1]
if v_1.Op != OpOffPtr { if v_1.Op != OpOffPtr {
continue continue
} }
@ -14408,7 +14335,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool {
continue continue
} }
b := v_1_0.Aux b := v_1_0.Aux
_ = v_1_0.Args[1]
v.reset(OpConstBool) v.reset(OpConstBool)
v.AuxInt = b2i(a != b || o != 0) v.AuxInt = b2i(a != b || o != 0)
return true return true
@ -14428,7 +14354,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool {
continue continue
} }
a := v_0_0.Aux a := v_0_0.Aux
_ = v_0_0.Args[1]
if v_1.Op != OpOffPtr { if v_1.Op != OpOffPtr {
continue continue
} }
@ -14438,7 +14363,6 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool {
continue continue
} }
b := v_1_0.Aux b := v_1_0.Aux
_ = v_1_0.Args[1]
v.reset(OpConstBool) v.reset(OpConstBool)
v.AuxInt = b2i(a != b || o1 != o2) v.AuxInt = b2i(a != b || o1 != o2)
return true return true
@ -14529,11 +14453,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool {
// result: (ConstBool [1]) // result: (ConstBool [1])
for { for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr { if v_0.Op != OpLocalAddr || v_1.Op != OpAddr {
continue
}
_ = v_0.Args[1]
if v_1.Op != OpAddr {
continue continue
} }
v.reset(OpConstBool) v.reset(OpConstBool)
@ -14550,11 +14470,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool {
continue continue
} }
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLocalAddr { if v_0_0.Op != OpLocalAddr || v_1.Op != OpAddr {
continue
}
_ = v_0_0.Args[1]
if v_1.Op != OpAddr {
continue continue
} }
v.reset(OpConstBool) v.reset(OpConstBool)
@ -14567,11 +14483,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool {
// result: (ConstBool [1]) // result: (ConstBool [1])
for { for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 { for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr { if v_0.Op != OpLocalAddr || v_1.Op != OpOffPtr {
continue
}
_ = v_0.Args[1]
if v_1.Op != OpOffPtr {
continue continue
} }
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
@ -14592,11 +14504,7 @@ func rewriteValuegeneric_OpNeqPtr(v *Value) bool {
continue continue
} }
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLocalAddr { if v_0_0.Op != OpLocalAddr || v_1.Op != OpOffPtr {
continue
}
_ = v_0_0.Args[1]
if v_1.Op != OpOffPtr {
continue continue
} }
v_1_0 := v_1.Args[0] v_1_0 := v_1.Args[0]
@ -16290,7 +16198,6 @@ func rewriteValuegeneric_OpRsh16Ux64(v *Value) bool {
if v_0.Op != OpRsh16x64 { if v_0.Op != OpRsh16x64 {
break break
} }
_ = v_0.Args[1]
x := v_0.Args[0] x := v_0.Args[0]
if v_1.Op != OpConst64 { if v_1.Op != OpConst64 {
break break
@ -16725,7 +16632,6 @@ func rewriteValuegeneric_OpRsh32Ux64(v *Value) bool {
if v_0.Op != OpRsh32x64 { if v_0.Op != OpRsh32x64 {
break break
} }
_ = v_0.Args[1]
x := v_0.Args[0] x := v_0.Args[0]
if v_1.Op != OpConst64 { if v_1.Op != OpConst64 {
break break
@ -17196,7 +17102,6 @@ func rewriteValuegeneric_OpRsh64Ux64(v *Value) bool {
if v_0.Op != OpRsh64x64 { if v_0.Op != OpRsh64x64 {
break break
} }
_ = v_0.Args[1]
x := v_0.Args[0] x := v_0.Args[0]
if v_1.Op != OpConst64 { if v_1.Op != OpConst64 {
break break
@ -17703,7 +17608,6 @@ func rewriteValuegeneric_OpRsh8Ux64(v *Value) bool {
if v_0.Op != OpRsh8x64 { if v_0.Op != OpRsh8x64 {
break break
} }
_ = v_0.Args[1]
x := v_0.Args[0] x := v_0.Args[0]
if v_1.Op != OpConst64 { if v_1.Op != OpConst64 {
break break
@ -18298,7 +18202,7 @@ func rewriteValuegeneric_OpSliceLen(v *Value) bool {
if v_0.Op != OpSliceMake { if v_0.Op != OpSliceMake {
break break
} }
_ = v_0.Args[2] _ = v_0.Args[1]
v_0_1 := v_0.Args[1] v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 { if v_0_1.Op != OpConst64 {
break break
@ -18316,7 +18220,7 @@ func rewriteValuegeneric_OpSliceLen(v *Value) bool {
if v_0.Op != OpSliceMake { if v_0.Op != OpSliceMake {
break break
} }
_ = v_0.Args[2] _ = v_0.Args[1]
v_0_1 := v_0.Args[1] v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 { if v_0_1.Op != OpConst32 {
break break
@ -18334,7 +18238,7 @@ func rewriteValuegeneric_OpSliceLen(v *Value) bool {
if v_0.Op != OpSliceMake { if v_0.Op != OpSliceMake {
break break
} }
_ = v_0.Args[2] _ = v_0.Args[1]
v_0_1 := v_0.Args[1] v_0_1 := v_0.Args[1]
if v_0_1.Op != OpSliceLen { if v_0_1.Op != OpSliceLen {
break break
@ -18354,7 +18258,6 @@ func rewriteValuegeneric_OpSlicePtr(v *Value) bool {
if v_0.Op != OpSliceMake { if v_0.Op != OpSliceMake {
break break
} }
_ = v_0.Args[2]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
if v_0_0.Op != OpSlicePtr { if v_0_0.Op != OpSlicePtr {
break break
@ -18664,7 +18567,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
break break
} }
n := mem.AuxInt n := mem.AuxInt
_ = mem.Args[1]
p2 := mem.Args[0] p2 := mem.Args[0]
if !(isConstZero(x) && o >= 0 && sizeof(t)+o <= n && isSamePtr(p1, p2)) { if !(isConstZero(x) && o >= 0 && sizeof(t)+o <= n && isSamePtr(p1, p2)) {
break break
@ -18696,7 +18598,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
break break
} }
n := mem_2.AuxInt n := mem_2.AuxInt
_ = mem_2.Args[1]
p3 := mem_2.Args[0] p3 := mem_2.Args[0]
if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p3) && disjoint(op, sizeof(t1), p2, sizeof(t2))) { if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p3) && disjoint(op, sizeof(t1), p2, sizeof(t2))) {
break break
@ -18735,7 +18636,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
break break
} }
n := mem_2_2.AuxInt n := mem_2_2.AuxInt
_ = mem_2_2.Args[1]
p4 := mem_2_2.Args[0] 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))) { 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 break
@ -18781,7 +18681,6 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
break break
} }
n := mem_2_2_2.AuxInt n := mem_2_2_2.AuxInt
_ = mem_2_2_2.Args[1]
p5 := mem_2_2_2.Args[0] 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))) { 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 break
@ -19416,7 +19315,6 @@ func rewriteValuegeneric_OpStringPtr(v *Value) bool {
if v_0.Op != OpStringMake { if v_0.Op != OpStringMake {
break break
} }
_ = v_0.Args[1]
v_0_0 := v_0.Args[0] v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAddr { if v_0_0.Op != OpAddr {
break break
@ -19452,7 +19350,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
if v.AuxInt != 0 || v_0.Op != OpStructMake2 { if v.AuxInt != 0 || v_0.Op != OpStructMake2 {
break break
} }
_ = v_0.Args[1]
x := v_0.Args[0] x := v_0.Args[0]
v.copyOf(x) v.copyOf(x)
return true return true
@ -19473,7 +19370,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
if v.AuxInt != 0 || v_0.Op != OpStructMake3 { if v.AuxInt != 0 || v_0.Op != OpStructMake3 {
break break
} }
_ = v_0.Args[2]
x := v_0.Args[0] x := v_0.Args[0]
v.copyOf(x) v.copyOf(x)
return true return true
@ -19484,7 +19380,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
if v.AuxInt != 1 || v_0.Op != OpStructMake3 { if v.AuxInt != 1 || v_0.Op != OpStructMake3 {
break break
} }
_ = v_0.Args[2]
x := v_0.Args[1] x := v_0.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
@ -19505,7 +19400,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
if v.AuxInt != 0 || v_0.Op != OpStructMake4 { if v.AuxInt != 0 || v_0.Op != OpStructMake4 {
break break
} }
_ = v_0.Args[3]
x := v_0.Args[0] x := v_0.Args[0]
v.copyOf(x) v.copyOf(x)
return true return true
@ -19516,7 +19410,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
if v.AuxInt != 1 || v_0.Op != OpStructMake4 { if v.AuxInt != 1 || v_0.Op != OpStructMake4 {
break break
} }
_ = v_0.Args[3]
x := v_0.Args[1] x := v_0.Args[1]
v.copyOf(x) v.copyOf(x)
return true return true
@ -19527,7 +19420,6 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
if v.AuxInt != 2 || v_0.Op != OpStructMake4 { if v.AuxInt != 2 || v_0.Op != OpStructMake4 {
break break
} }
_ = v_0.Args[3]
x := v_0.Args[2] x := v_0.Args[2]
v.copyOf(x) v.copyOf(x)
return true return true