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