aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/compile/internal/ssa/gen/rulegen.go7
-rw-r--r--src/cmd/compile/internal/ssa/numberlines.go9
-rw-r--r--src/cmd/compile/internal/ssa/rewrite386.go126
-rw-r--r--src/cmd/compile/internal/ssa/rewriteAMD64.go961
-rw-r--r--src/cmd/compile/internal/ssa/rewriteARM.go132
-rw-r--r--src/cmd/compile/internal/ssa/rewriteARM64.go230
-rw-r--r--src/cmd/compile/internal/ssa/rewriteMIPS.go80
-rw-r--r--src/cmd/compile/internal/ssa/rewriteMIPS64.go44
-rw-r--r--src/cmd/compile/internal/ssa/rewritePPC64.go368
-rw-r--r--src/cmd/compile/internal/ssa/rewriteRISCV64.go12
-rw-r--r--src/cmd/compile/internal/ssa/rewriteS390X.go415
-rw-r--r--src/cmd/compile/internal/ssa/rewriteWasm.go60
-rw-r--r--src/cmd/compile/internal/ssa/rewritedec.go36
-rw-r--r--src/cmd/compile/internal/ssa/rewritedec64.go12
-rw-r--r--src/cmd/compile/internal/ssa/rewritegeneric.go527
-rw-r--r--src/cmd/compile/internal/ssa/value.go20
-rw-r--r--src/cmd/compile/internal/ssa/writebarrier.go1
17 files changed, 820 insertions, 2220 deletions
diff --git a/src/cmd/compile/internal/ssa/gen/rulegen.go b/src/cmd/compile/internal/ssa/gen/rulegen.go
index 0fba0546e7..53c6bdbf65 100644
--- a/src/cmd/compile/internal/ssa/gen/rulegen.go
+++ b/src/cmd/compile/internal/ssa/gen/rulegen.go
@@ -1093,9 +1093,7 @@ func genResult0(rr *RuleRewrite, arch arch, result string, top, move bool, pos s
// It in not safe in general to move a variable between blocks
// (and particularly not a phi node).
// Introduce a copy.
- rr.add(stmtf("v.reset(OpCopy)"))
- rr.add(stmtf("v.Type = %s.Type", result))
- rr.add(stmtf("v.AddArg(%s)", result))
+ rr.add(stmtf("v.copyOf(%s)", result))
}
return result
}
@@ -1123,8 +1121,7 @@ func genResult0(rr *RuleRewrite, arch arch, result string, top, move bool, pos s
rr.add(declf(v, "b.NewValue0(%s, Op%s%s, %s)", pos, oparch, op.name, typ))
if move && top {
// Rewrite original into a copy
- rr.add(stmtf("v.reset(OpCopy)"))
- rr.add(stmtf("v.AddArg(%s)", v))
+ rr.add(stmtf("v.copyOf(%s)", v))
}
}
diff --git a/src/cmd/compile/internal/ssa/numberlines.go b/src/cmd/compile/internal/ssa/numberlines.go
index 3d77fe5bb4..f4e62b88c4 100644
--- a/src/cmd/compile/internal/ssa/numberlines.go
+++ b/src/cmd/compile/internal/ssa/numberlines.go
@@ -66,12 +66,9 @@ func nextGoodStatementIndex(v *Value, i int, b *Block) int {
return i
}
-// notStmtBoundary indicates which value opcodes can never be a statement
-// boundary because they don't correspond to a user's understanding of a
-// statement boundary. Called from *Value.reset(), and *Func.newValue(),
-// located here to keep all the statement boundary heuristics in one place.
-// Note: *Value.reset() filters out OpCopy because of how that is used in
-// rewrite.
+// notStmtBoundary reports whether a value with opcode op can never be a statement
+// boundary. Such values don't correspond to a user's understanding of a
+// statement boundary.
func notStmtBoundary(op Op) bool {
switch op {
case OpCopy, OpPhi, OpVarKill, OpVarDef, OpVarLive, OpUnknown, OpFwdRef, OpArg:
diff --git a/src/cmd/compile/internal/ssa/rewrite386.go b/src/cmd/compile/internal/ssa/rewrite386.go
index 7a75b7121f..bff76e9029 100644
--- a/src/cmd/compile/internal/ssa/rewrite386.go
+++ b/src/cmd/compile/internal/ssa/rewrite386.go
@@ -1235,9 +1235,7 @@ func rewriteValue386_Op386ADDLconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDLconst [c] (MOVLconst [d]))
@@ -1950,9 +1948,7 @@ func rewriteValue386_Op386ANDL(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -1994,9 +1990,7 @@ func rewriteValue386_Op386ANDLconst(v *Value) bool {
if !(int32(c) == -1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDLconst [c] (MOVLconst [d]))
@@ -2706,8 +2700,7 @@ func rewriteValue386_Op386CMPBconst(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, Op386CMPBconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(c, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -3015,8 +3008,7 @@ func rewriteValue386_Op386CMPLconst(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, Op386CMPLconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(c, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -3309,8 +3301,7 @@ func rewriteValue386_Op386CMPWconst(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, Op386CMPWconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(c, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -4054,8 +4045,7 @@ func rewriteValue386_Op386MOVBLSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, Op386MOVBLSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -4151,8 +4141,7 @@ func rewriteValue386_Op386MOVBLZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, Op386MOVBload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -4176,8 +4165,7 @@ func rewriteValue386_Op386MOVBLZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, Op386MOVBloadidx1, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg3(ptr, idx, mem)
@@ -5127,9 +5115,7 @@ func rewriteValue386_Op386MOVLload(v *Value) bool {
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVLload [off1] {sym} (ADDLconst [off2] ptr) mem)
@@ -7495,8 +7481,7 @@ func rewriteValue386_Op386MOVWLSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, Op386MOVWLSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -7592,8 +7577,7 @@ func rewriteValue386_Op386MOVWLZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, Op386MOVWload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -7617,8 +7601,7 @@ func rewriteValue386_Op386MOVWLZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, Op386MOVWloadidx1, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg3(ptr, idx, mem)
@@ -7642,8 +7625,7 @@ func rewriteValue386_Op386MOVWLZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, Op386MOVWloadidx2, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg3(ptr, idx, mem)
@@ -8899,9 +8881,7 @@ func rewriteValue386_Op386MULLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MULLconst [3] x)
@@ -9750,9 +9730,7 @@ func rewriteValue386_Op386ORL(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORL x0:(MOVBload [i0] {s} p mem) s0:(SHLLconst [8] x1:(MOVBload [i1] {s} p mem)))
@@ -9786,8 +9764,7 @@ func rewriteValue386_Op386ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, Op386MOVWload, typ.UInt16)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -9850,8 +9827,7 @@ func rewriteValue386_Op386ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x2.Pos, Op386MOVLload, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -9898,8 +9874,7 @@ func rewriteValue386_Op386ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, Op386MOVWloadidx1, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -9974,8 +9949,7 @@ func rewriteValue386_Op386ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(v.Pos, Op386MOVLloadidx1, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -10000,9 +9974,7 @@ func rewriteValue386_Op386ORLconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORLconst [c] _)
@@ -10489,9 +10461,7 @@ func rewriteValue386_Op386ROLBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -10519,9 +10489,7 @@ func rewriteValue386_Op386ROLLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -10549,9 +10517,7 @@ func rewriteValue386_Op386ROLWconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -10583,9 +10549,7 @@ func rewriteValue386_Op386SARBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SARBconst [c] (MOVLconst [d]))
@@ -10641,9 +10605,7 @@ func rewriteValue386_Op386SARLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SARLconst [c] (MOVLconst [d]))
@@ -10687,9 +10649,7 @@ func rewriteValue386_Op386SARWconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SARWconst [c] (MOVLconst [d]))
@@ -11469,9 +11429,7 @@ func rewriteValue386_Op386SHLLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -11522,9 +11480,7 @@ func rewriteValue386_Op386SHRBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -11568,9 +11524,7 @@ func rewriteValue386_Op386SHRLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -11621,9 +11575,7 @@ func rewriteValue386_Op386SHRWconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -11747,9 +11699,7 @@ func rewriteValue386_Op386SUBLconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SUBLconst [c] x)
@@ -12419,9 +12369,7 @@ func rewriteValue386_Op386XORLconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (XORLconst [c] (MOVLconst [d]))
@@ -14043,9 +13991,7 @@ func rewriteValue386_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -15773,9 +15719,7 @@ func rewriteValue386_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] destptr mem)
diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go
index 566a7aaf66..a30c609a68 100644
--- a/src/cmd/compile/internal/ssa/rewriteAMD64.go
+++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go
@@ -1705,9 +1705,7 @@ func rewriteValueAMD64_OpAMD64ADDLconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDLconst [c] (MOVLconst [d]))
@@ -2324,9 +2322,7 @@ func rewriteValueAMD64_OpAMD64ADDQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDQconst [c] (MOVQconst [d]))
@@ -2824,9 +2820,7 @@ func rewriteValueAMD64_OpAMD64ANDL(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDL x l:(MOVLload [off] {sym} ptr mem))
@@ -2943,9 +2937,7 @@ func rewriteValueAMD64_OpAMD64ANDLconst(v *Value) bool {
if !(int32(c) == -1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDLconst [c] (MOVLconst [d]))
@@ -3208,9 +3200,7 @@ func rewriteValueAMD64_OpAMD64ANDQ(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDQ x l:(MOVQload [off] {sym} ptr mem))
@@ -3334,9 +3324,7 @@ func rewriteValueAMD64_OpAMD64ANDQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDQconst [c] (MOVQconst [d]))
@@ -4725,9 +4713,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLCC _ x (FlagGT_UGT))
@@ -4737,9 +4723,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLCC y _ (FlagGT_ULT))
@@ -4749,9 +4733,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLCC y _ (FlagLT_ULT))
@@ -4761,9 +4743,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLCC _ x (FlagLT_UGT))
@@ -4773,9 +4753,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -4804,9 +4782,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLCS y _ (FlagGT_UGT))
@@ -4816,9 +4792,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLCS _ x (FlagGT_ULT))
@@ -4828,9 +4802,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLCS _ x (FlagLT_ULT))
@@ -4840,9 +4812,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLCS y _ (FlagLT_UGT))
@@ -4852,9 +4822,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -4883,9 +4851,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLEQ y _ (FlagGT_UGT))
@@ -4895,9 +4861,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLEQ y _ (FlagGT_ULT))
@@ -4907,9 +4871,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLEQ y _ (FlagLT_ULT))
@@ -4919,9 +4881,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLEQ y _ (FlagLT_UGT))
@@ -4931,9 +4891,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -4962,9 +4920,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLGE _ x (FlagGT_UGT))
@@ -4974,9 +4930,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLGE _ x (FlagGT_ULT))
@@ -4986,9 +4940,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLGE y _ (FlagLT_ULT))
@@ -4998,9 +4950,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLGE y _ (FlagLT_UGT))
@@ -5010,9 +4960,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -5041,9 +4989,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLGT _ x (FlagGT_UGT))
@@ -5053,9 +4999,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLGT _ x (FlagGT_ULT))
@@ -5065,9 +5009,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLGT y _ (FlagLT_ULT))
@@ -5077,9 +5019,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLGT y _ (FlagLT_UGT))
@@ -5089,9 +5029,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -5120,9 +5058,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLHI _ x (FlagGT_UGT))
@@ -5132,9 +5068,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLHI y _ (FlagGT_ULT))
@@ -5144,9 +5078,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLHI y _ (FlagLT_ULT))
@@ -5156,9 +5088,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLHI _ x (FlagLT_UGT))
@@ -5168,9 +5098,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -5199,9 +5127,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLLE y _ (FlagGT_UGT))
@@ -5211,9 +5137,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLLE y _ (FlagGT_ULT))
@@ -5223,9 +5147,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLLE _ x (FlagLT_ULT))
@@ -5235,9 +5157,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLLE _ x (FlagLT_UGT))
@@ -5247,9 +5167,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -5278,9 +5196,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLLS y _ (FlagGT_UGT))
@@ -5290,9 +5206,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLLS _ x (FlagGT_ULT))
@@ -5302,9 +5216,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLLS _ x (FlagLT_ULT))
@@ -5314,9 +5226,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLLS y _ (FlagLT_UGT))
@@ -5326,9 +5236,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -5357,9 +5265,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLLT y _ (FlagGT_UGT))
@@ -5369,9 +5275,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLLT y _ (FlagGT_ULT))
@@ -5381,9 +5285,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLLT _ x (FlagLT_ULT))
@@ -5393,9 +5295,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLLT _ x (FlagLT_UGT))
@@ -5405,9 +5305,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -5436,9 +5334,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVLNE _ x (FlagGT_UGT))
@@ -5448,9 +5344,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLNE _ x (FlagGT_ULT))
@@ -5460,9 +5354,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLNE _ x (FlagLT_ULT))
@@ -5472,9 +5364,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVLNE _ x (FlagLT_UGT))
@@ -5484,9 +5374,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -5515,9 +5403,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQCC _ x (FlagGT_UGT))
@@ -5527,9 +5413,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQCC y _ (FlagGT_ULT))
@@ -5539,9 +5423,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQCC y _ (FlagLT_ULT))
@@ -5551,9 +5433,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQCC _ x (FlagLT_UGT))
@@ -5563,9 +5443,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -5594,9 +5472,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQCS y _ (FlagGT_UGT))
@@ -5606,9 +5482,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQCS _ x (FlagGT_ULT))
@@ -5618,9 +5492,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQCS _ x (FlagLT_ULT))
@@ -5630,9 +5502,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQCS y _ (FlagLT_UGT))
@@ -5642,9 +5512,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -5673,9 +5541,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQEQ y _ (FlagGT_UGT))
@@ -5685,9 +5551,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQEQ y _ (FlagGT_ULT))
@@ -5697,9 +5561,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQEQ y _ (FlagLT_ULT))
@@ -5709,9 +5571,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQEQ y _ (FlagLT_UGT))
@@ -5721,9 +5581,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQEQ x _ (Select1 (BSFQ (ORQconst [c] _))))
@@ -5746,9 +5604,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool {
if !(c != 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -5777,9 +5633,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQGE _ x (FlagGT_UGT))
@@ -5789,9 +5643,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQGE _ x (FlagGT_ULT))
@@ -5801,9 +5653,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQGE y _ (FlagLT_ULT))
@@ -5813,9 +5663,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQGE y _ (FlagLT_UGT))
@@ -5825,9 +5673,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -5856,9 +5702,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQGT _ x (FlagGT_UGT))
@@ -5868,9 +5712,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQGT _ x (FlagGT_ULT))
@@ -5880,9 +5722,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQGT y _ (FlagLT_ULT))
@@ -5892,9 +5732,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQGT y _ (FlagLT_UGT))
@@ -5904,9 +5742,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -5935,9 +5771,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQHI _ x (FlagGT_UGT))
@@ -5947,9 +5781,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQHI y _ (FlagGT_ULT))
@@ -5959,9 +5791,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQHI y _ (FlagLT_ULT))
@@ -5971,9 +5801,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQHI _ x (FlagLT_UGT))
@@ -5983,9 +5811,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -6014,9 +5840,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQLE y _ (FlagGT_UGT))
@@ -6026,9 +5850,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQLE y _ (FlagGT_ULT))
@@ -6038,9 +5860,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQLE _ x (FlagLT_ULT))
@@ -6050,9 +5870,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQLE _ x (FlagLT_UGT))
@@ -6062,9 +5880,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -6093,9 +5909,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQLS y _ (FlagGT_UGT))
@@ -6105,9 +5919,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQLS _ x (FlagGT_ULT))
@@ -6117,9 +5929,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQLS _ x (FlagLT_ULT))
@@ -6129,9 +5939,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQLS y _ (FlagLT_UGT))
@@ -6141,9 +5949,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -6172,9 +5978,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQLT y _ (FlagGT_UGT))
@@ -6184,9 +5988,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQLT y _ (FlagGT_ULT))
@@ -6196,9 +5998,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQLT _ x (FlagLT_ULT))
@@ -6208,9 +6008,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQLT _ x (FlagLT_UGT))
@@ -6220,9 +6018,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -6251,9 +6047,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVQNE _ x (FlagGT_UGT))
@@ -6263,9 +6057,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQNE _ x (FlagGT_ULT))
@@ -6275,9 +6067,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQNE _ x (FlagLT_ULT))
@@ -6287,9 +6077,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVQNE _ x (FlagLT_UGT))
@@ -6299,9 +6087,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -6330,9 +6116,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWCC _ x (FlagGT_UGT))
@@ -6342,9 +6126,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWCC y _ (FlagGT_ULT))
@@ -6354,9 +6136,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWCC y _ (FlagLT_ULT))
@@ -6366,9 +6146,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWCC _ x (FlagLT_UGT))
@@ -6378,9 +6156,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -6409,9 +6185,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWCS y _ (FlagGT_UGT))
@@ -6421,9 +6195,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWCS _ x (FlagGT_ULT))
@@ -6433,9 +6205,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWCS _ x (FlagLT_ULT))
@@ -6445,9 +6215,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWCS y _ (FlagLT_UGT))
@@ -6457,9 +6225,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -6488,9 +6254,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWEQ y _ (FlagGT_UGT))
@@ -6500,9 +6264,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWEQ y _ (FlagGT_ULT))
@@ -6512,9 +6274,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWEQ y _ (FlagLT_ULT))
@@ -6524,9 +6284,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWEQ y _ (FlagLT_UGT))
@@ -6536,9 +6294,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -6567,9 +6323,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWGE _ x (FlagGT_UGT))
@@ -6579,9 +6333,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWGE _ x (FlagGT_ULT))
@@ -6591,9 +6343,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWGE y _ (FlagLT_ULT))
@@ -6603,9 +6353,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWGE y _ (FlagLT_UGT))
@@ -6615,9 +6363,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -6646,9 +6392,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWGT _ x (FlagGT_UGT))
@@ -6658,9 +6402,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWGT _ x (FlagGT_ULT))
@@ -6670,9 +6412,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWGT y _ (FlagLT_ULT))
@@ -6682,9 +6422,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWGT y _ (FlagLT_UGT))
@@ -6694,9 +6432,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -6725,9 +6461,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWHI _ x (FlagGT_UGT))
@@ -6737,9 +6471,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWHI y _ (FlagGT_ULT))
@@ -6749,9 +6481,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWHI y _ (FlagLT_ULT))
@@ -6761,9 +6491,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWHI _ x (FlagLT_UGT))
@@ -6773,9 +6501,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -6804,9 +6530,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWLE y _ (FlagGT_UGT))
@@ -6816,9 +6540,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWLE y _ (FlagGT_ULT))
@@ -6828,9 +6550,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWLE _ x (FlagLT_ULT))
@@ -6840,9 +6560,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWLE _ x (FlagLT_UGT))
@@ -6852,9 +6570,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -6883,9 +6599,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWLS y _ (FlagGT_UGT))
@@ -6895,9 +6609,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWLS _ x (FlagGT_ULT))
@@ -6907,9 +6619,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWLS _ x (FlagLT_ULT))
@@ -6919,9 +6629,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWLS y _ (FlagLT_UGT))
@@ -6931,9 +6639,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -6962,9 +6668,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWLT y _ (FlagGT_UGT))
@@ -6974,9 +6678,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWLT y _ (FlagGT_ULT))
@@ -6986,9 +6688,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWLT _ x (FlagLT_ULT))
@@ -6998,9 +6698,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWLT _ x (FlagLT_UGT))
@@ -7010,9 +6708,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -7041,9 +6737,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool {
if v_2.Op != OpAMD64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CMOVWNE _ x (FlagGT_UGT))
@@ -7053,9 +6747,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWNE _ x (FlagGT_ULT))
@@ -7065,9 +6757,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool {
if v_2.Op != OpAMD64FlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWNE _ x (FlagLT_ULT))
@@ -7077,9 +6767,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWNE _ x (FlagLT_UGT))
@@ -7089,9 +6777,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool {
if v_2.Op != OpAMD64FlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -7338,8 +7024,7 @@ func rewriteValueAMD64_OpAMD64CMPBconst(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, OpAMD64CMPBconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(c, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -7724,8 +7409,7 @@ func rewriteValueAMD64_OpAMD64CMPLconst(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, OpAMD64CMPLconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(c, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -8290,8 +7974,7 @@ func rewriteValueAMD64_OpAMD64CMPQconst(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, OpAMD64CMPQconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(c, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -8661,8 +8344,7 @@ func rewriteValueAMD64_OpAMD64CMPWconst(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, OpAMD64CMPWconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(c, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -9964,8 +9646,7 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVBQSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -9988,8 +9669,7 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVBQSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -10012,8 +9692,7 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVBQSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -10036,8 +9715,7 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVBQSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -10142,8 +9820,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVBload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -10166,8 +9843,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVBload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -10190,8 +9866,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVBload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -10214,8 +9889,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVBload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -10229,9 +9903,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool {
if !(zeroUpper56Bits(x, 3)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBQZX x:(MOVBloadidx1 [off] {sym} ptr idx mem))
@@ -10252,8 +9924,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpAMD64MOVBloadidx1, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg3(ptr, idx, mem)
@@ -12279,8 +11950,7 @@ func rewriteValueAMD64_OpAMD64MOVLQSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVLQSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -12303,8 +11973,7 @@ func rewriteValueAMD64_OpAMD64MOVLQSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVLQSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -12431,8 +12100,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVLload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -12455,8 +12123,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVLload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -12470,9 +12137,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool {
if !(zeroUpper32Bits(x, 3)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVLQZX x:(MOVLloadidx1 [off] {sym} ptr idx mem))
@@ -12493,8 +12158,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg3(ptr, idx, mem)
@@ -12518,8 +12182,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx4, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg3(ptr, idx, mem)
@@ -12640,8 +12303,7 @@ func rewriteValueAMD64_OpAMD64MOVLf2i(v *Value) bool {
}
b = b.Func.Entry
v0 := b.NewValue0(v.Pos, OpArg, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
return true
@@ -12667,8 +12329,7 @@ func rewriteValueAMD64_OpAMD64MOVLi2f(v *Value) bool {
}
b = b.Func.Entry
v0 := b.NewValue0(v.Pos, OpArg, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
return true
@@ -15152,8 +14813,7 @@ func rewriteValueAMD64_OpAMD64MOVQf2i(v *Value) bool {
}
b = b.Func.Entry
v0 := b.NewValue0(v.Pos, OpArg, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
return true
@@ -15179,8 +14839,7 @@ func rewriteValueAMD64_OpAMD64MOVQi2f(v *Value) bool {
}
b = b.Func.Entry
v0 := b.NewValue0(v.Pos, OpArg, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
return true
@@ -15210,9 +14869,7 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value) bool {
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVQload [off1] {sym} (ADDQconst [off2] ptr) mem)
@@ -18082,8 +17739,7 @@ func rewriteValueAMD64_OpAMD64MOVWQSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVWQSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -18106,8 +17762,7 @@ func rewriteValueAMD64_OpAMD64MOVWQSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVWQSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -18130,8 +17785,7 @@ func rewriteValueAMD64_OpAMD64MOVWQSX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVWQSXload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -18247,8 +17901,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVWload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -18271,8 +17924,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVWload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -18295,8 +17947,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpAMD64MOVWload, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -18310,9 +17961,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool {
if !(zeroUpper48Bits(x, 3)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWQZX x:(MOVWloadidx1 [off] {sym} ptr idx mem))
@@ -18333,8 +17982,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg3(ptr, idx, mem)
@@ -18358,8 +18006,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx2, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg3(ptr, idx, mem)
@@ -20132,9 +19779,7 @@ func rewriteValueAMD64_OpAMD64MULLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MULLconst [ 3] x)
@@ -20587,9 +20232,7 @@ func rewriteValueAMD64_OpAMD64MULQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MULQconst [ 3] x)
@@ -21163,9 +20806,7 @@ func rewriteValueAMD64_OpAMD64NEGL(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (NEGL s:(SUBL x y))
@@ -21207,9 +20848,7 @@ func rewriteValueAMD64_OpAMD64NEGQ(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (NEGQ s:(SUBQ x y))
@@ -22050,9 +21689,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORL x0:(MOVBload [i0] {s} p mem) sh:(SHLLconst [8] x1:(MOVBload [i1] {s} p mem)))
@@ -22086,8 +21723,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpAMD64MOVWload, typ.UInt16)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -22126,8 +21762,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpAMD64MOVLload, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -22184,8 +21819,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x0.Pos, OpAMD64ORL, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpAMD64SHLLconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(x0.Pos, OpAMD64MOVWload, typ.UInt16)
@@ -22237,8 +21871,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -22286,8 +21919,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -22353,8 +21985,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpAMD64ORL, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpAMD64SHLLconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, typ.UInt16)
@@ -22401,8 +22032,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpAMD64ROLWconst, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = 8
v1 := b.NewValue0(x0.Pos, OpAMD64MOVWload, typ.UInt16)
v1.AuxInt = i0
@@ -22452,8 +22082,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpAMD64BSWAPL, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpAMD64MOVLload, typ.UInt32)
v1.AuxInt = i0
v1.Aux = s
@@ -22512,8 +22141,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x1.Pos, OpAMD64ORL, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpAMD64SHLLconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(x1.Pos, OpAMD64ROLWconst, typ.UInt16)
@@ -22568,8 +22196,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64ROLWconst, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = 8
v1 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, typ.UInt16)
v1.AuxInt = i0
@@ -22628,8 +22255,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64BSWAPL, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32)
v1.AuxInt = i0
v1.Aux = s
@@ -22697,8 +22323,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpAMD64ORL, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpAMD64SHLLconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(v.Pos, OpAMD64ROLWconst, typ.UInt16)
@@ -22797,9 +22422,7 @@ func rewriteValueAMD64_OpAMD64ORLconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORLconst [c] _)
@@ -23330,9 +22953,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORQ x0:(MOVBload [i0] {s} p mem) sh:(SHLQconst [8] x1:(MOVBload [i1] {s} p mem)))
@@ -23366,8 +22987,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpAMD64MOVWload, typ.UInt16)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -23406,8 +23026,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpAMD64MOVLload, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -23446,8 +23065,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpAMD64MOVQload, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -23504,8 +23122,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x0.Pos, OpAMD64ORQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpAMD64SHLQconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(x0.Pos, OpAMD64MOVWload, typ.UInt16)
@@ -23568,8 +23185,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x0.Pos, OpAMD64ORQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpAMD64SHLQconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(x0.Pos, OpAMD64MOVLload, typ.UInt32)
@@ -23621,8 +23237,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -23670,8 +23285,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -23719,8 +23333,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64MOVQloadidx1, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -23786,8 +23399,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpAMD64ORQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpAMD64SHLQconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, typ.UInt16)
@@ -23859,8 +23471,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpAMD64ORQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpAMD64SHLQconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32)
@@ -23907,8 +23518,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpAMD64ROLWconst, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = 8
v1 := b.NewValue0(x0.Pos, OpAMD64MOVWload, typ.UInt16)
v1.AuxInt = i0
@@ -23958,8 +23568,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpAMD64BSWAPL, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpAMD64MOVLload, typ.UInt32)
v1.AuxInt = i0
v1.Aux = s
@@ -24008,8 +23617,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpAMD64BSWAPQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpAMD64MOVQload, typ.UInt64)
v1.AuxInt = i0
v1.Aux = s
@@ -24068,8 +23676,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x1.Pos, OpAMD64ORQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpAMD64SHLQconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(x1.Pos, OpAMD64ROLWconst, typ.UInt16)
@@ -24143,8 +23750,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x1.Pos, OpAMD64ORQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpAMD64SHLQconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(x1.Pos, OpAMD64BSWAPL, typ.UInt32)
@@ -24198,8 +23804,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64ROLWconst, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = 8
v1 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, typ.UInt16)
v1.AuxInt = i0
@@ -24258,8 +23863,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64BSWAPL, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32)
v1.AuxInt = i0
v1.Aux = s
@@ -24317,8 +23921,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpAMD64BSWAPQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpAMD64MOVQloadidx1, typ.UInt64)
v1.AuxInt = i0
v1.Aux = s
@@ -24386,8 +23989,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpAMD64ORQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpAMD64SHLQconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(v.Pos, OpAMD64ROLWconst, typ.UInt16)
@@ -24470,8 +24072,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpAMD64ORQ, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpAMD64SHLQconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(v.Pos, OpAMD64BSWAPL, typ.UInt32)
@@ -24567,9 +24168,7 @@ func rewriteValueAMD64_OpAMD64ORQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORQconst [-1] _)
@@ -24847,9 +24446,7 @@ func rewriteValueAMD64_OpAMD64ROLBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -24932,9 +24529,7 @@ func rewriteValueAMD64_OpAMD64ROLLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -25017,9 +24612,7 @@ func rewriteValueAMD64_OpAMD64ROLQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -25102,9 +24695,7 @@ func rewriteValueAMD64_OpAMD64ROLWconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -25369,9 +24960,7 @@ func rewriteValueAMD64_OpAMD64SARBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SARBconst [c] (MOVQconst [d]))
@@ -25593,9 +25182,7 @@ func rewriteValueAMD64_OpAMD64SARLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SARLconst [c] (MOVQconst [d]))
@@ -25817,9 +25404,7 @@ func rewriteValueAMD64_OpAMD64SARQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SARQconst [c] (MOVQconst [d]))
@@ -25876,9 +25461,7 @@ func rewriteValueAMD64_OpAMD64SARWconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SARWconst [c] (MOVQconst [d]))
@@ -30170,9 +29753,7 @@ func rewriteValueAMD64_OpAMD64SHLLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SHLLconst [d] (MOVLconst [c]))
@@ -30406,9 +29987,7 @@ func rewriteValueAMD64_OpAMD64SHLQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SHLQconst [d] (MOVQconst [c]))
@@ -30515,9 +30094,7 @@ func rewriteValueAMD64_OpAMD64SHRBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -30739,9 +30316,7 @@ func rewriteValueAMD64_OpAMD64SHRLconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -30963,9 +30538,7 @@ func rewriteValueAMD64_OpAMD64SHRQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -31048,9 +30621,7 @@ func rewriteValueAMD64_OpAMD64SHRWconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -31133,9 +30704,7 @@ func rewriteValueAMD64_OpAMD64SUBLconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SUBLconst [c] x)
@@ -31380,9 +30949,7 @@ func rewriteValueAMD64_OpAMD64SUBQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SUBQconst [c] x)
@@ -31797,8 +31364,7 @@ func rewriteValueAMD64_OpAMD64TESTB(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, OpAMD64CMPBconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(0, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -31866,8 +31432,7 @@ func rewriteValueAMD64_OpAMD64TESTL(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, OpAMD64CMPLconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(0, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -31949,8 +31514,7 @@ func rewriteValueAMD64_OpAMD64TESTQ(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, OpAMD64CMPQconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(0, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -32028,8 +31592,7 @@ func rewriteValueAMD64_OpAMD64TESTW(v *Value) bool {
}
b = l.Block
v0 := b.NewValue0(l.Pos, OpAMD64CMPWconstload, types.TypeFlags)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = makeValAndOff(0, off)
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -32549,9 +32112,7 @@ func rewriteValueAMD64_OpAMD64XORLconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (XORLconst [c] (MOVLconst [d]))
@@ -32916,9 +32477,7 @@ func rewriteValueAMD64_OpAMD64XORQconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (XORQconst [c] (MOVQconst [d]))
@@ -35955,9 +35514,7 @@ func rewriteValueAMD64_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -38272,9 +37829,7 @@ func rewriteValueAMD64_OpSelect1(v *Value) bool {
break
}
x := v_0_0_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Select1 (AddTupleFirst32 _ tuple))
@@ -38438,9 +37993,7 @@ func rewriteValueAMD64_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] destptr mem)
diff --git a/src/cmd/compile/internal/ssa/rewriteARM.go b/src/cmd/compile/internal/ssa/rewriteARM.go
index 5be3e34dcb..bf1cf2d183 100644
--- a/src/cmd/compile/internal/ssa/rewriteARM.go
+++ b/src/cmd/compile/internal/ssa/rewriteARM.go
@@ -1938,9 +1938,7 @@ func rewriteValueARM_OpARMADDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDconst [c] x)
@@ -2440,9 +2438,7 @@ func rewriteValueARM_OpARMAND(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (AND x (MVN y))
@@ -2534,9 +2530,7 @@ func rewriteValueARM_OpARMANDconst(v *Value) bool {
if !(int32(c) == -1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDconst [c] x)
@@ -2644,9 +2638,7 @@ func rewriteValueARM_OpARMANDshiftLL(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -2737,9 +2729,7 @@ func rewriteValueARM_OpARMANDshiftRA(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -2830,9 +2820,7 @@ func rewriteValueARM_OpARMANDshiftRL(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -3025,9 +3013,7 @@ func rewriteValueARM_OpARMBICconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (BICconst [c] _)
@@ -3723,9 +3709,7 @@ func rewriteValueARM_OpARMCMOVWHSconst(v *Value) bool {
if v_1.Op != OpARMFlagLT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWHSconst _ (FlagLT_UGT) [c])
@@ -3746,9 +3730,7 @@ func rewriteValueARM_OpARMCMOVWHSconst(v *Value) bool {
if v_1.Op != OpARMFlagGT_ULT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWHSconst _ (FlagGT_UGT) [c])
@@ -3810,9 +3792,7 @@ func rewriteValueARM_OpARMCMOVWLSconst(v *Value) bool {
if v_1.Op != OpARMFlagLT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWLSconst _ (FlagGT_ULT) [c])
@@ -3833,9 +3813,7 @@ func rewriteValueARM_OpARMCMOVWLSconst(v *Value) bool {
if v_1.Op != OpARMFlagGT_UGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CMOVWLSconst x (InvertFlags flags) [c])
@@ -5779,9 +5757,7 @@ func rewriteValueARM_OpARMMOVDload(v *Value) bool {
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -5928,9 +5904,7 @@ func rewriteValueARM_OpARMMOVFload(v *Value) bool {
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -6747,9 +6721,7 @@ func rewriteValueARM_OpARMMOVWload(v *Value) bool {
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWload [0] {sym} (ADD ptr idx) mem)
@@ -6879,9 +6851,7 @@ func rewriteValueARM_OpARMMOVWloadidx(v *Value) bool {
if !(isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWloadidx ptr (MOVWconst [c]) mem)
@@ -7028,9 +6998,7 @@ func rewriteValueARM_OpARMMOVWloadshiftLL(v *Value) bool {
if !(c == d && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWloadshiftLL ptr (MOVWconst [c]) [d] mem)
@@ -7074,9 +7042,7 @@ func rewriteValueARM_OpARMMOVWloadshiftRA(v *Value) bool {
if !(c == d && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWloadshiftRA ptr (MOVWconst [c]) [d] mem)
@@ -7120,9 +7086,7 @@ func rewriteValueARM_OpARMMOVWloadshiftRL(v *Value) bool {
if !(c == d && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWloadshiftRL ptr (MOVWconst [c]) [d] mem)
@@ -7575,9 +7539,7 @@ func rewriteValueARM_OpARMMUL(v *Value) bool {
if v_1.Op != OpARMMOVWconst || v_1.AuxInt != 1 {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -7783,9 +7745,7 @@ func rewriteValueARM_OpARMMULA(v *Value) bool {
break
}
a := v_2
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MULA x (MOVWconst [1]) a)
@@ -7976,9 +7936,7 @@ func rewriteValueARM_OpARMMULA(v *Value) bool {
break
}
a := v_2
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MULA (MOVWconst [1]) x a)
@@ -8241,9 +8199,7 @@ func rewriteValueARM_OpARMMULS(v *Value) bool {
break
}
a := v_2
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MULS x (MOVWconst [1]) a)
@@ -8434,9 +8390,7 @@ func rewriteValueARM_OpARMMULS(v *Value) bool {
break
}
a := v_2
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MULS (MOVWconst [1]) x a)
@@ -9084,9 +9038,7 @@ func rewriteValueARM_OpARMOR(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -9100,9 +9052,7 @@ func rewriteValueARM_OpARMORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORconst [c] _)
@@ -9244,9 +9194,7 @@ func rewriteValueARM_OpARMORshiftLL(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -9337,9 +9285,7 @@ func rewriteValueARM_OpARMORshiftRA(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -9446,9 +9392,7 @@ func rewriteValueARM_OpARMORshiftRL(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -11952,9 +11896,7 @@ func rewriteValueARM_OpARMSUBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SUBconst [c] x)
@@ -13253,9 +13195,7 @@ func rewriteValueARM_OpARMXORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (XORconst [c] (MOVWconst [d]))
@@ -15168,9 +15108,7 @@ func rewriteValueARM_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -16402,9 +16340,7 @@ func rewriteValueARM_OpSelect0(v *Value) bool {
if v_0_1.Op != OpARMMOVWconst || v_0_1.AuxInt != 1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Select0 (CALLudiv x (MOVWconst [c])))
@@ -16637,9 +16573,7 @@ func rewriteValueARM_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] ptr mem)
diff --git a/src/cmd/compile/internal/ssa/rewriteARM64.go b/src/cmd/compile/internal/ssa/rewriteARM64.go
index dd3a8b922b..a6b13497ac 100644
--- a/src/cmd/compile/internal/ssa/rewriteARM64.go
+++ b/src/cmd/compile/internal/ssa/rewriteARM64.go
@@ -1613,9 +1613,7 @@ func rewriteValueARM64_OpARM64ADDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDconst [c] (MOVDconst [d]))
@@ -1915,9 +1913,7 @@ func rewriteValueARM64_OpARM64AND(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (AND x (MVN y))
@@ -2022,9 +2018,7 @@ func rewriteValueARM64_OpARM64ANDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDconst [c] (MOVDconst [d]))
@@ -2179,9 +2173,7 @@ func rewriteValueARM64_OpARM64ANDshiftLL(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -2235,9 +2227,7 @@ func rewriteValueARM64_OpARM64ANDshiftRA(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -2291,9 +2281,7 @@ func rewriteValueARM64_OpARM64ANDshiftRL(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -3504,9 +3492,7 @@ func rewriteValueARM64_OpARM64CSEL(v *Value) bool {
if !(ccARM64Eval(cc, flag) > 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CSEL {cc} _ y flag)
@@ -3519,9 +3505,7 @@ func rewriteValueARM64_OpARM64CSEL(v *Value) bool {
if !(ccARM64Eval(cc, flag) < 0) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (CSEL {cc} x y (CMPWconst [0] boolval))
@@ -3591,9 +3575,7 @@ func rewriteValueARM64_OpARM64CSEL0(v *Value) bool {
if !(ccARM64Eval(cc, flag) > 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (CSEL0 {cc} _ flag)
@@ -4094,8 +4076,7 @@ func rewriteValueARM64_OpARM64FMOVDfpgp(v *Value) bool {
sym := v_0.Aux
b = b.Func.Entry
v0 := b.NewValue0(v.Pos, OpArg, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
return true
@@ -4116,8 +4097,7 @@ func rewriteValueARM64_OpARM64FMOVDgpfp(v *Value) bool {
sym := v_0.Aux
b = b.Func.Entry
v0 := b.NewValue0(v.Pos, OpArg, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
return true
@@ -5474,9 +5454,7 @@ func rewriteValueARM64_OpARM64MADD(v *Value) bool {
if v_2.Op != OpARM64MOVDconst || v_2.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MADD a x (MOVDconst [1]))
@@ -5652,9 +5630,7 @@ func rewriteValueARM64_OpARM64MADD(v *Value) bool {
if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MADD a (MOVDconst [1]) x)
@@ -5880,9 +5856,7 @@ func rewriteValueARM64_OpARM64MADDW(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MADDW a x (MOVDconst [c]))
@@ -6073,9 +6047,7 @@ func rewriteValueARM64_OpARM64MADDW(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MADDW a (MOVDconst [c]) x)
@@ -6284,9 +6256,7 @@ func rewriteValueARM64_OpARM64MNEG(v *Value) bool {
if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != -1 {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -6521,9 +6491,7 @@ func rewriteValueARM64_OpARM64MNEGW(v *Value) bool {
if !(int32(c) == -1) {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -13868,9 +13836,7 @@ func rewriteValueARM64_OpARM64MSUB(v *Value) bool {
if v_2.Op != OpARM64MOVDconst || v_2.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MSUB a x (MOVDconst [1]))
@@ -14046,9 +14012,7 @@ func rewriteValueARM64_OpARM64MSUB(v *Value) bool {
if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MSUB a (MOVDconst [1]) x)
@@ -14274,9 +14238,7 @@ func rewriteValueARM64_OpARM64MSUBW(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MSUBW a x (MOVDconst [c]))
@@ -14467,9 +14429,7 @@ func rewriteValueARM64_OpARM64MSUBW(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (MSUBW a (MOVDconst [c]) x)
@@ -14720,9 +14680,7 @@ func rewriteValueARM64_OpARM64MUL(v *Value) bool {
if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != 1 {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -14972,9 +14930,7 @@ func rewriteValueARM64_OpARM64MULW(v *Value) bool {
if !(int32(c) == 1) {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -15506,9 +15462,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (OR x (MVN y))
@@ -16005,8 +15959,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3)
v0 := b.NewValue0(x3.Pos, OpARM64MOVWUload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.Aux = s
v1 := b.NewValue0(x3.Pos, OpOffPtr, p.Type)
v1.AuxInt = i0
@@ -16097,8 +16050,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3)
v0 := b.NewValue0(x2.Pos, OpARM64MOVWUloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr0, idx0, mem)
return true
}
@@ -16186,8 +16138,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3)
v0 := b.NewValue0(v.Pos, OpARM64MOVWUloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr, idx, mem)
return true
}
@@ -16359,8 +16310,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
v0 := b.NewValue0(x7.Pos, OpARM64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.Aux = s
v1 := b.NewValue0(x7.Pos, OpOffPtr, p.Type)
v1.AuxInt = i0
@@ -16519,8 +16469,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
v0 := b.NewValue0(x6.Pos, OpARM64MOVDloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr0, idx0, mem)
return true
}
@@ -16692,8 +16641,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpARM64MOVDloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr, idx, mem)
return true
}
@@ -16781,8 +16729,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3)
v0 := b.NewValue0(x3.Pos, OpARM64REVW, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x3.Pos, OpARM64MOVWUload, t)
v1.Aux = s
v2 := b.NewValue0(x3.Pos, OpOffPtr, p.Type)
@@ -16875,8 +16822,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3)
v0 := b.NewValue0(x3.Pos, OpARM64REVW, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x3.Pos, OpARM64MOVWUloadidx, t)
v1.AddArg3(ptr0, idx0, mem)
v0.AddArg(v1)
@@ -16966,8 +16912,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3)
v0 := b.NewValue0(v.Pos, OpARM64REVW, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpARM64MOVWUloadidx, t)
v1.AddArg3(ptr, idx, mem)
v0.AddArg(v1)
@@ -17141,8 +17086,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
v0 := b.NewValue0(x7.Pos, OpARM64REV, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x7.Pos, OpARM64MOVDload, t)
v1.Aux = s
v2 := b.NewValue0(x7.Pos, OpOffPtr, p.Type)
@@ -17303,8 +17247,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
v0 := b.NewValue0(x7.Pos, OpARM64REV, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x7.Pos, OpARM64MOVDloadidx, t)
v1.AddArg3(ptr0, idx0, mem)
v0.AddArg(v1)
@@ -17478,8 +17421,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpARM64REV, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpARM64MOVDloadidx, t)
v1.AddArg3(ptr, idx, mem)
v0.AddArg(v1)
@@ -17692,9 +17634,7 @@ func rewriteValueARM64_OpARM64ORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORconst [-1] _)
@@ -17803,9 +17743,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: ( ORshiftLL [c] (SRLconst x [64-c]) x)
@@ -17951,8 +17889,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpARM64MOVHUload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.Aux = s
v1 := b.NewValue0(x1.Pos, OpOffPtr, p.Type)
v1.AuxInt = i0
@@ -18004,8 +17941,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpARM64MOVHUloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr0, idx0, mem)
return true
}
@@ -18048,8 +17984,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpARM64MOVHUloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr, idx, mem)
return true
}
@@ -18108,8 +18043,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x2.Pos, OpARM64MOVWUload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.Aux = s
v1 := b.NewValue0(x2.Pos, OpOffPtr, p.Type)
v1.AuxInt = i0
@@ -18175,8 +18109,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x2.Pos, OpARM64MOVWUloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr0, idx0, mem)
return true
}
@@ -18236,8 +18169,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(v.Pos, OpARM64MOVWUloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr, idx, mem)
return true
}
@@ -18295,8 +18227,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x2.Pos, OpARM64MOVWUloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x2.Pos, OpARM64SLLconst, idx0.Type)
v1.AuxInt = 1
v1.AddArg(idx0)
@@ -18400,8 +18331,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4)
v0 := b.NewValue0(x4.Pos, OpARM64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.Aux = s
v1 := b.NewValue0(x4.Pos, OpOffPtr, p.Type)
v1.AuxInt = i0
@@ -18501,8 +18431,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4)
v0 := b.NewValue0(x4.Pos, OpARM64MOVDloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr0, idx0, mem)
return true
}
@@ -18596,8 +18525,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4)
v0 := b.NewValue0(x4.Pos, OpARM64MOVDloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x4.Pos, OpARM64SLLconst, idx0.Type)
v1.AuxInt = 2
v1.AddArg(idx0)
@@ -18700,8 +18628,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4)
v0 := b.NewValue0(v.Pos, OpARM64MOVDloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AddArg3(ptr, idx, mem)
return true
}
@@ -18743,8 +18670,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpARM64REV16W, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpARM64MOVHUload, t)
v1.AuxInt = i0
v1.Aux = s
@@ -18796,8 +18722,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpARM64REV16W, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpARM64MOVHUloadidx, t)
v1.AddArg3(ptr0, idx0, mem)
v0.AddArg(v1)
@@ -18842,8 +18767,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpARM64REV16W, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpARM64MOVHUloadidx, t)
v1.AddArg3(ptr, idx, mem)
v0.AddArg(v1)
@@ -18908,8 +18832,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x2.Pos, OpARM64REVW, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x2.Pos, OpARM64MOVWUload, t)
v1.Aux = s
v2 := b.NewValue0(x2.Pos, OpOffPtr, p.Type)
@@ -18981,8 +18904,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x1.Pos, OpARM64REVW, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpARM64MOVWUloadidx, t)
v1.AddArg3(ptr0, idx0, mem)
v0.AddArg(v1)
@@ -19048,8 +18970,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(v.Pos, OpARM64REVW, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpARM64MOVWUloadidx, t)
v1.AddArg3(ptr, idx, mem)
v0.AddArg(v1)
@@ -19156,8 +19077,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4)
v0 := b.NewValue0(x4.Pos, OpARM64REV, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x4.Pos, OpARM64MOVDload, t)
v1.Aux = s
v2 := b.NewValue0(x4.Pos, OpOffPtr, p.Type)
@@ -19263,8 +19183,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4)
v0 := b.NewValue0(x3.Pos, OpARM64REV, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x3.Pos, OpARM64MOVDloadidx, t)
v1.AddArg3(ptr0, idx0, mem)
v0.AddArg(v1)
@@ -19372,8 +19291,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4)
v0 := b.NewValue0(v.Pos, OpARM64REV, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpARM64MOVDloadidx, t)
v1.AddArg3(ptr, idx, mem)
v0.AddArg(v1)
@@ -19430,9 +19348,7 @@ func rewriteValueARM64_OpARM64ORshiftRA(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
return false
@@ -19486,9 +19402,7 @@ func rewriteValueARM64_OpARM64ORshiftRL(v *Value) bool {
if x != y.Args[0] || !(c == d) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: ( ORshiftRL [c] (SLLconst x [64-c]) x)
@@ -20455,9 +20369,7 @@ func rewriteValueARM64_OpARM64SUBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SUBconst [c] (MOVDconst [d]))
@@ -21035,9 +20947,7 @@ func rewriteValueARM64_OpARM64UDIV(v *Value) bool {
if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != 1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (UDIV x (MOVDconst [c]))
@@ -21089,9 +20999,7 @@ func rewriteValueARM64_OpARM64UDIVW(v *Value) bool {
if !(uint32(c) == 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (UDIVW x (MOVDconst [c]))
@@ -21666,9 +21574,7 @@ func rewriteValueARM64_OpARM64XORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (XORconst [-1] x)
@@ -23648,9 +23554,7 @@ func rewriteValueARM64_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -25446,9 +25350,7 @@ func rewriteValueARM64_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] ptr mem)
diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS.go b/src/cmd/compile/internal/ssa/rewriteMIPS.go
index 58dc71bd04..e036885a16 100644
--- a/src/cmd/compile/internal/ssa/rewriteMIPS.go
+++ b/src/cmd/compile/internal/ssa/rewriteMIPS.go
@@ -2094,9 +2094,7 @@ func rewriteValueMIPS_OpMIPSADDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDconst [c] (MOVWconst [d]))
@@ -2168,9 +2166,7 @@ func rewriteValueMIPS_OpMIPSAND(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (AND (SGTUconst [1] x) (SGTUconst [1] y))
@@ -2215,9 +2211,7 @@ func rewriteValueMIPS_OpMIPSANDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDconst [c] (MOVWconst [d]))
@@ -2259,9 +2253,7 @@ func rewriteValueMIPS_OpMIPSCMOVZ(v *Value) bool {
if v_2.Op != OpMIPSMOVWconst || v_2.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = f.Type
- v.AddArg(f)
+ v.copyOf(f)
return true
}
// match: (CMOVZ a _ (MOVWconst [c]))
@@ -2276,9 +2268,7 @@ func rewriteValueMIPS_OpMIPSCMOVZ(v *Value) bool {
if !(c != 0) {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
// match: (CMOVZ a (MOVWconst [0]) c)
@@ -2320,9 +2310,7 @@ func rewriteValueMIPS_OpMIPSCMOVZzero(v *Value) bool {
if !(c != 0) {
break
}
- v.reset(OpCopy)
- v.Type = a.Type
- v.AddArg(a)
+ v.copyOf(a)
return true
}
return false
@@ -2484,8 +2472,7 @@ func rewriteValueMIPS_OpMIPSMOVBUreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpMIPSMOVBUload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -2632,8 +2619,7 @@ func rewriteValueMIPS_OpMIPSMOVBreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpMIPSMOVBload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -2936,9 +2922,7 @@ func rewriteValueMIPS_OpMIPSMOVDload(v *Value) bool {
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -3060,9 +3044,7 @@ func rewriteValueMIPS_OpMIPSMOVFload(v *Value) bool {
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -3257,8 +3239,7 @@ func rewriteValueMIPS_OpMIPSMOVHUreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpMIPSMOVHUload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -3451,8 +3432,7 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpMIPSMOVHload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -3721,9 +3701,7 @@ func rewriteValueMIPS_OpMIPSMOVWload(v *Value) bool {
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -3913,9 +3891,7 @@ func rewriteValueMIPS_OpMIPSMUL(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -4053,9 +4029,7 @@ func rewriteValueMIPS_OpMIPSOR(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (OR (SGTUzero x) (SGTUzero y))
@@ -4089,9 +4063,7 @@ func rewriteValueMIPS_OpMIPSORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORconst [-1] _)
@@ -4712,9 +4684,7 @@ func rewriteValueMIPS_OpMIPSSUBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SUBconst [c] (MOVWconst [d]))
@@ -4800,9 +4770,7 @@ func rewriteValueMIPS_OpMIPSXORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (XORconst [-1] x)
@@ -4977,9 +4945,7 @@ func rewriteValueMIPS_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -6699,9 +6665,7 @@ func rewriteValueMIPS_OpSelect1(v *Value) bool {
continue
}
x := v_0_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -6962,9 +6926,7 @@ func rewriteValueMIPS_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] ptr mem)
diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS64.go b/src/cmd/compile/internal/ssa/rewriteMIPS64.go
index 346fa6f28e..4413c535d6 100644
--- a/src/cmd/compile/internal/ssa/rewriteMIPS64.go
+++ b/src/cmd/compile/internal/ssa/rewriteMIPS64.go
@@ -2327,9 +2327,7 @@ func rewriteValueMIPS64_OpMIPS64ADDVconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDVconst [c] (MOVVconst [d]))
@@ -2412,9 +2410,7 @@ func rewriteValueMIPS64_OpMIPS64AND(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -2438,9 +2434,7 @@ func rewriteValueMIPS64_OpMIPS64ANDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDconst [c] (MOVVconst [d]))
@@ -4290,9 +4284,7 @@ func rewriteValueMIPS64_OpMIPS64OR(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -4306,9 +4298,7 @@ func rewriteValueMIPS64_OpMIPS64ORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORconst [-1] _)
@@ -4867,9 +4857,7 @@ func rewriteValueMIPS64_OpMIPS64SUBVconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SUBVconst [c] (MOVVconst [d]))
@@ -4967,9 +4955,7 @@ func rewriteValueMIPS64_OpMIPS64XORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (XORconst [-1] x)
@@ -5190,9 +5176,7 @@ func rewriteValueMIPS64_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -7104,9 +7088,7 @@ func rewriteValueMIPS64_OpSelect1(v *Value) bool {
if v_0_1.Op != OpMIPS64MOVVconst || v_0_1.AuxInt != 1 {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -7149,9 +7131,7 @@ func rewriteValueMIPS64_OpSelect1(v *Value) bool {
if v_0_1.Op != OpMIPS64MOVVconst || v_0_1.AuxInt != 1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Select1 (DIVVU x (MOVVconst [c])))
@@ -7369,9 +7349,7 @@ func rewriteValueMIPS64_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] ptr mem)
diff --git a/src/cmd/compile/internal/ssa/rewritePPC64.go b/src/cmd/compile/internal/ssa/rewritePPC64.go
index c7b4f44920..279fed4edb 100644
--- a/src/cmd/compile/internal/ssa/rewritePPC64.go
+++ b/src/cmd/compile/internal/ssa/rewritePPC64.go
@@ -3424,9 +3424,7 @@ func rewriteValuePPC64_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -3999,9 +3997,7 @@ func rewriteValuePPC64_OpPPC64ADDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDconst [c] (MOVDaddr [d] {sym} x))
@@ -4094,9 +4090,7 @@ func rewriteValuePPC64_OpPPC64AND(v *Value) bool {
if y.Op != OpPPC64MOVWZreg || !(c&0xFFFFFFFF == 0xFFFFFFFF) {
continue
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
break
@@ -4164,9 +4158,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDconst [0] _)
@@ -4188,9 +4180,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool {
if y.Op != OpPPC64MOVBZreg || !(c&0xFF == 0xFF) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ANDconst [0xFF] y:(MOVBreg _))
@@ -4203,9 +4193,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool {
if y.Op != OpPPC64MOVBreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ANDconst [c] y:(MOVHZreg _))
@@ -4217,9 +4205,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool {
if y.Op != OpPPC64MOVHZreg || !(c&0xFFFF == 0xFFFF) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ANDconst [0xFFFF] y:(MOVHreg _))
@@ -4232,9 +4218,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool {
if y.Op != OpPPC64MOVHreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ANDconst [c] (MOVBreg x))
@@ -5464,9 +5448,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ISEL [2] _ y (FlagLT))
@@ -5479,9 +5461,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagLT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ISEL [2] _ y (FlagGT))
@@ -5494,9 +5474,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ISEL [6] _ y (FlagEQ))
@@ -5509,9 +5487,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ISEL [6] x _ (FlagLT))
@@ -5524,9 +5500,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagLT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ISEL [6] x _ (FlagGT))
@@ -5539,9 +5513,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ISEL [0] _ y (FlagEQ))
@@ -5554,9 +5526,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ISEL [0] _ y (FlagGT))
@@ -5569,9 +5539,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ISEL [0] x _ (FlagLT))
@@ -5584,9 +5552,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagLT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ISEL [5] _ x (FlagEQ))
@@ -5599,9 +5565,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ISEL [5] _ x (FlagLT))
@@ -5614,9 +5578,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagLT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ISEL [5] y _ (FlagGT))
@@ -5629,9 +5591,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagGT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ISEL [1] _ y (FlagEQ))
@@ -5644,9 +5604,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ISEL [1] _ y (FlagLT))
@@ -5659,9 +5617,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagLT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ISEL [1] x _ (FlagGT))
@@ -5674,9 +5630,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ISEL [4] x _ (FlagEQ))
@@ -5689,9 +5643,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagEQ {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ISEL [4] x _ (FlagGT))
@@ -5704,9 +5656,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagGT {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ISEL [4] _ y (FlagLT))
@@ -5719,9 +5669,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool {
if v_2.Op != OpPPC64FlagLT {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (ISEL [n] x y (InvertFlags bool))
@@ -6173,8 +6121,7 @@ func rewriteValuePPC64_OpPPC64MFVSRD(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpPPC64MOVDload, typ.Int64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -6311,9 +6258,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool {
if !(uint64(c) <= 0xFF) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVBZreg (SRWconst [c] (MOVBZreg x)))
@@ -6393,9 +6338,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool {
if y.Op != OpPPC64MOVBZreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVBZreg (MOVBreg x))
@@ -6417,9 +6360,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBZreg x:(MOVBZloadidx _ _ _))
@@ -6430,9 +6371,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool {
break
}
_ = x.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBZreg x:(Arg <t>))
@@ -6447,9 +6386,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool {
if !(is8BitInt(t) && !isSigned(t)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBZreg (MOVDconst [c]))
@@ -6481,9 +6418,7 @@ func rewriteValuePPC64_OpPPC64MOVBreg(v *Value) bool {
if !(uint64(c) <= 0x7F) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVBreg (SRAWconst [c] (MOVBreg x)))
@@ -6597,9 +6532,7 @@ func rewriteValuePPC64_OpPPC64MOVBreg(v *Value) bool {
if y.Op != OpPPC64MOVBreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVBreg (MOVBZreg x))
@@ -6625,9 +6558,7 @@ func rewriteValuePPC64_OpPPC64MOVBreg(v *Value) bool {
if !(is8BitInt(t) && isSigned(t)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBreg (MOVDconst [c]))
@@ -8234,9 +8165,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
if !(uint64(c) <= 0xFFFF) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVHZreg (SRWconst [c] (MOVBZreg x)))
@@ -8335,9 +8264,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
if y.Op != OpPPC64MOVHZreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVHZreg y:(MOVBZreg _))
@@ -8347,9 +8274,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
if y.Op != OpPPC64MOVBZreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVHZreg y:(MOVHBRload _ _))
@@ -8360,9 +8285,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
break
}
_ = y.Args[1]
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVHZreg y:(MOVHreg x))
@@ -8385,9 +8308,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg x:(MOVBZloadidx _ _ _))
@@ -8398,9 +8319,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
break
}
_ = x.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg x:(MOVHZload _ _))
@@ -8411,9 +8330,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg x:(MOVHZloadidx _ _ _))
@@ -8424,9 +8341,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
break
}
_ = x.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg x:(Arg <t>))
@@ -8441,9 +8356,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool {
if !((is8BitInt(t) || is16BitInt(t)) && !isSigned(t)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg (MOVDconst [c]))
@@ -8588,9 +8501,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool {
if !(uint64(c) <= 0x7FFF) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVHreg (SRAWconst [c] (MOVBreg x)))
@@ -8723,9 +8634,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool {
if y.Op != OpPPC64MOVHreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVHreg y:(MOVBreg _))
@@ -8735,9 +8644,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool {
if y.Op != OpPPC64MOVBreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVHreg y:(MOVHZreg x))
@@ -8760,9 +8667,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg x:(MOVHloadidx _ _ _))
@@ -8773,9 +8678,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool {
break
}
_ = x.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg x:(Arg <t>))
@@ -8790,9 +8693,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool {
if !((is8BitInt(t) || is16BitInt(t)) && isSigned(t)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg (MOVDconst [c]))
@@ -9356,9 +9257,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if !(uint64(c) <= 0xFFFFFFFF) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWZreg y:(AND (MOVDconst [c]) _))
@@ -9380,9 +9279,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if !(uint64(c) <= 0xFFFFFFFF) {
continue
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
break
@@ -9485,9 +9382,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if y.Op != OpPPC64MOVWZreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWZreg y:(MOVHZreg _))
@@ -9497,9 +9392,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if y.Op != OpPPC64MOVHZreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWZreg y:(MOVBZreg _))
@@ -9509,9 +9402,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if y.Op != OpPPC64MOVBZreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWZreg y:(MOVHBRload _ _))
@@ -9522,9 +9413,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
break
}
_ = y.Args[1]
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWZreg y:(MOVWBRload _ _))
@@ -9535,9 +9424,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
break
}
_ = y.Args[1]
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWZreg y:(MOVWreg x))
@@ -9560,9 +9447,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVBZloadidx _ _ _))
@@ -9573,9 +9458,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
break
}
_ = x.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVHZload _ _))
@@ -9586,9 +9469,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVHZloadidx _ _ _))
@@ -9599,9 +9480,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
break
}
_ = x.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVWZload _ _))
@@ -9612,9 +9491,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVWZloadidx _ _ _))
@@ -9625,9 +9502,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
break
}
_ = x.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(Arg <t>))
@@ -9642,9 +9517,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool {
if !((is8BitInt(t) || is16BitInt(t) || is32BitInt(t)) && !isSigned(t)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg (MOVDconst [c]))
@@ -9789,9 +9662,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if !(uint64(c) <= 0xFFFF) {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWreg y:(AND (MOVDconst [c]) _))
@@ -9813,9 +9684,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if !(uint64(c) <= 0x7FFFFFFF) {
continue
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
break
@@ -9935,9 +9804,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if y.Op != OpPPC64MOVWreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWreg y:(MOVHreg _))
@@ -9947,9 +9814,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if y.Op != OpPPC64MOVHreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWreg y:(MOVBreg _))
@@ -9959,9 +9824,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if y.Op != OpPPC64MOVBreg {
break
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
// match: (MOVWreg y:(MOVWZreg x))
@@ -9984,9 +9847,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVHloadidx _ _ _))
@@ -9997,9 +9858,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
break
}
_ = x.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVWload _ _))
@@ -10010,9 +9869,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVWloadidx _ _ _))
@@ -10023,9 +9880,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
break
}
_ = x.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(Arg <t>))
@@ -10040,9 +9895,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool {
if !((is8BitInt(t) || is16BitInt(t) || is32BitInt(t)) && isSigned(t)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg (MOVDconst [c]))
@@ -10343,8 +10196,7 @@ func rewriteValuePPC64_OpPPC64MTVSRD(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpPPC64FMOVDload, typ.Float64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = off
v0.Aux = sym
v0.AddArg2(ptr, mem)
@@ -10637,8 +10489,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpPPC64MOVHZload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -10678,8 +10529,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpPPC64MOVHZload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -10719,8 +10569,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpPPC64MOVHBRload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpPPC64MOVDaddr, typ.Uintptr)
v1.AuxInt = i0
v1.Aux = s
@@ -10762,8 +10611,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpPPC64MOVHBRload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpPPC64MOVDaddr, typ.Uintptr)
v1.AuxInt = i0
v1.Aux = s
@@ -10811,8 +10659,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpPPC64SLDconst, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = n1
v1 := b.NewValue0(x1.Pos, OpPPC64MOVHBRload, t)
v2 := b.NewValue0(x1.Pos, OpPPC64MOVDaddr, typ.Uintptr)
@@ -10863,8 +10710,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpPPC64SLDconst, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = n1
v1 := b.NewValue0(x1.Pos, OpPPC64MOVHBRload, t)
v2 := b.NewValue0(x1.Pos, OpPPC64MOVDaddr, typ.Uintptr)
@@ -10933,8 +10779,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x0.Pos, OpPPC64MOVWZload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -10999,8 +10844,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x0.Pos, OpPPC64MOVWZload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -11066,8 +10910,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x0.Pos, OpPPC64MOVWBRload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpPPC64MOVDaddr, typ.Uintptr)
v1.AuxInt = i0
v1.Aux = s
@@ -11135,8 +10978,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x0.Pos, OpPPC64MOVWBRload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpPPC64MOVDaddr, typ.Uintptr)
v1.AuxInt = i0
v1.Aux = s
@@ -11204,8 +11046,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x2.Pos, OpPPC64MOVWBRload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x2.Pos, OpPPC64MOVDaddr, typ.Uintptr)
v1.AuxInt = i0
v1.Aux = s
@@ -11273,8 +11114,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x2.Pos, OpPPC64MOVWBRload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x2.Pos, OpPPC64MOVDaddr, typ.Uintptr)
v1.AuxInt = i0
v1.Aux = s
@@ -11346,8 +11186,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x0.Pos, OpPPC64SLDconst, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = 32
v1 := b.NewValue0(x0.Pos, OpPPC64MOVWBRload, t)
v2 := b.NewValue0(x0.Pos, OpPPC64MOVDaddr, typ.Uintptr)
@@ -11422,8 +11261,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2)
v0 := b.NewValue0(x0.Pos, OpPPC64SLDconst, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = 32
v1 := b.NewValue0(x0.Pos, OpPPC64MOVWBRload, t)
v2 := b.NewValue0(x0.Pos, OpPPC64MOVDaddr, typ.Uintptr)
@@ -11541,8 +11379,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(x0.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -11658,8 +11495,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x0, x1, x2, x3, x4)
v0 := b.NewValue0(x4.Pos, OpPPC64MOVDBRload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x4.Pos, OpPPC64MOVDaddr, typ.Uintptr)
v1.AuxInt = i0
v1.Aux = s
@@ -11777,8 +11613,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x3, x4, x5, x6, x7)
v0 := b.NewValue0(x3.Pos, OpPPC64MOVDBRload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x3.Pos, OpPPC64MOVDaddr, typ.Uintptr)
v1.AuxInt = i0
v1.Aux = s
@@ -11896,8 +11731,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool {
}
b = mergePoint(b, x3, x4, x5, x6, x7)
v0 := b.NewValue0(x3.Pos, OpPPC64MOVDBRload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x3.Pos, OpPPC64MOVDaddr, typ.Uintptr)
v1.AuxInt = i0
v1.Aux = s
@@ -11922,9 +11756,7 @@ func rewriteValuePPC64_OpPPC64ORN(v *Value) bool {
if v_1.Op != OpPPC64MOVDconst || v_1.AuxInt != -1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -11962,9 +11794,7 @@ func rewriteValuePPC64_OpPPC64ORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -12223,9 +12053,7 @@ func rewriteValuePPC64_OpPPC64XORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -15075,9 +14903,7 @@ func rewriteValuePPC64_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] destptr mem)
diff --git a/src/cmd/compile/internal/ssa/rewriteRISCV64.go b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
index e40fe69930..f20f744456 100644
--- a/src/cmd/compile/internal/ssa/rewriteRISCV64.go
+++ b/src/cmd/compile/internal/ssa/rewriteRISCV64.go
@@ -1864,9 +1864,7 @@ func rewriteValueRISCV64_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -2289,9 +2287,7 @@ func rewriteValueRISCV64_OpRISCV64ADDI(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -4081,9 +4077,7 @@ func rewriteValueRISCV64_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] ptr mem)
diff --git a/src/cmd/compile/internal/ssa/rewriteS390X.go b/src/cmd/compile/internal/ssa/rewriteS390X.go
index 7a78dfdac7..874bac1fde 100644
--- a/src/cmd/compile/internal/ssa/rewriteS390X.go
+++ b/src/cmd/compile/internal/ssa/rewriteS390X.go
@@ -3097,9 +3097,7 @@ func rewriteValueS390X_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -5450,9 +5448,7 @@ func rewriteValueS390X_OpS390XADDWconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDWconst [c] (MOVDconst [d]))
@@ -5604,9 +5600,7 @@ func rewriteValueS390X_OpS390XADDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ADDconst [c] (MOVDconst [d]))
@@ -5849,9 +5843,7 @@ func rewriteValueS390X_OpS390XAND(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (AND <t> x g:(MOVDload [off] {sym} ptr mem))
@@ -5909,9 +5901,7 @@ func rewriteValueS390X_OpS390XANDW(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDW <t> x g:(MOVWload [off] {sym} ptr mem))
@@ -6029,9 +6019,7 @@ func rewriteValueS390X_OpS390XANDWconst(v *Value) bool {
if !(int32(c) == -1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDWconst [c] (MOVDconst [d]))
@@ -6132,9 +6120,7 @@ func rewriteValueS390X_OpS390XANDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ANDconst [c] (MOVDconst [d]))
@@ -7285,9 +7271,7 @@ func rewriteValueS390X_OpS390XFMOVDload(v *Value) bool {
if !(isSamePtr(ptr1, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (FMOVDload [off1] {sym} (ADDconst [off2] ptr) mem)
@@ -7610,9 +7594,7 @@ func rewriteValueS390X_OpS390XFMOVSload(v *Value) bool {
if !(isSamePtr(ptr1, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (FMOVSload [off1] {sym} (ADDconst [off2] ptr) mem)
@@ -8094,8 +8076,7 @@ func rewriteValueS390X_OpS390XLDGR(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpS390XLNDFR, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x.Pos, OpS390XLDGR, t)
v2 := b.NewValue0(x.Pos, OpS390XMOVDload, t1)
v2.AuxInt = off
@@ -8112,9 +8093,7 @@ func rewriteValueS390X_OpS390XLDGR(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -8162,9 +8141,7 @@ func rewriteValueS390X_OpS390XLGDR(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -8197,9 +8174,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool {
if v_2.Op != OpS390XFlagEQ || !(c.(s390x.CCMask)&s390x.Equal != 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (LOCGR {c} _ x (FlagLT))
@@ -8211,9 +8186,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool {
if v_2.Op != OpS390XFlagLT || !(c.(s390x.CCMask)&s390x.Less != 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (LOCGR {c} _ x (FlagGT))
@@ -8225,9 +8198,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool {
if v_2.Op != OpS390XFlagGT || !(c.(s390x.CCMask)&s390x.Greater != 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (LOCGR {c} _ x (FlagOV))
@@ -8239,9 +8210,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool {
if v_2.Op != OpS390XFlagOV || !(c.(s390x.CCMask)&s390x.Unordered != 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (LOCGR {c} x _ (FlagEQ))
@@ -8253,9 +8222,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool {
if v_2.Op != OpS390XFlagEQ || !(c.(s390x.CCMask)&s390x.Equal == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (LOCGR {c} x _ (FlagLT))
@@ -8267,9 +8234,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool {
if v_2.Op != OpS390XFlagLT || !(c.(s390x.CCMask)&s390x.Less == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (LOCGR {c} x _ (FlagGT))
@@ -8281,9 +8246,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool {
if v_2.Op != OpS390XFlagGT || !(c.(s390x.CCMask)&s390x.Greater == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (LOCGR {c} x _ (FlagOV))
@@ -8295,9 +8258,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool {
if v_2.Op != OpS390XFlagOV || !(c.(s390x.CCMask)&s390x.Unordered == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -8311,9 +8272,7 @@ func rewriteValueS390X_OpS390XLoweredRound32F(v *Value) bool {
if x.Op != OpS390XFMOVSconst {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -8327,9 +8286,7 @@ func rewriteValueS390X_OpS390XLoweredRound64F(v *Value) bool {
if x.Op != OpS390XFMOVDconst {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -8620,9 +8577,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBZreg x:(MOVBZloadidx _ _ _))
@@ -8637,9 +8592,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBZreg <t> x:(MOVBload [o] {s} p mem))
@@ -8660,8 +8613,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpS390XMOVBZload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg2(p, mem)
@@ -8686,8 +8638,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpS390XMOVBZloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg3(p, i, mem)
@@ -8705,9 +8656,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool {
if !(!t.IsSigned() && t.Size() == 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBZreg (MOVDconst [c]))
@@ -8743,9 +8692,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool {
if !(int64(uint8(c)) == c && int64(uint8(d)) == d && (!x.Type.IsSigned() || x.Type.Size() > 1)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBZreg (ANDWconst [m] x))
@@ -9051,9 +8998,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBreg x:(MOVBloadidx _ _ _))
@@ -9068,9 +9013,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBreg <t> x:(MOVBZload [o] {s} p mem))
@@ -9091,8 +9034,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpS390XMOVBload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg2(p, mem)
@@ -9117,8 +9059,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpS390XMOVBloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg3(p, i, mem)
@@ -9136,9 +9077,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool {
if !(t.IsSigned() && t.Size() == 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVBreg (MOVDconst [c]))
@@ -10085,9 +10024,7 @@ func rewriteValueS390X_OpS390XMOVDload(v *Value) bool {
if !(isSamePtr(ptr1, ptr2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVDload [off] {sym} ptr1 (FMOVDstore [off] {sym} ptr2 x _))
@@ -11111,9 +11048,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg x:(MOVBZloadidx _ _ _))
@@ -11128,9 +11063,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg x:(MOVHZload _ _))
@@ -11145,9 +11078,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg x:(MOVHZloadidx _ _ _))
@@ -11162,9 +11093,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg <t> x:(MOVHload [o] {s} p mem))
@@ -11185,8 +11114,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpS390XMOVHZload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg2(p, mem)
@@ -11211,8 +11139,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg3(p, i, mem)
@@ -11230,9 +11157,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool {
if !(!t.IsSigned() && t.Size() <= 2) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHZreg (MOVDconst [c]))
@@ -11534,9 +11459,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg x:(MOVBloadidx _ _ _))
@@ -11551,9 +11474,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg x:(MOVHload _ _))
@@ -11568,9 +11489,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg x:(MOVHloadidx _ _ _))
@@ -11585,9 +11504,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg x:(MOVBZload _ _))
@@ -11602,9 +11519,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg x:(MOVBZloadidx _ _ _))
@@ -11619,9 +11534,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg <t> x:(MOVHZload [o] {s} p mem))
@@ -11642,8 +11555,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpS390XMOVHload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg2(p, mem)
@@ -11668,8 +11580,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpS390XMOVHloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg3(p, i, mem)
@@ -11687,9 +11598,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool {
if !(t.IsSigned() && t.Size() <= 2) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVHreg (MOVDconst [c]))
@@ -12672,9 +12581,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVBZloadidx _ _ _))
@@ -12689,9 +12596,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVHZload _ _))
@@ -12706,9 +12611,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVHZloadidx _ _ _))
@@ -12723,9 +12626,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVWZload _ _))
@@ -12740,9 +12641,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 4) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg x:(MOVWZloadidx _ _ _))
@@ -12757,9 +12656,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 4) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg <t> x:(MOVWload [o] {s} p mem))
@@ -12780,8 +12677,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpS390XMOVWZload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg2(p, mem)
@@ -12806,8 +12702,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpS390XMOVWZloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg3(p, i, mem)
@@ -12825,9 +12720,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool {
if !(!t.IsSigned() && t.Size() <= 4) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWZreg (MOVDconst [c]))
@@ -13097,9 +12990,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVBloadidx _ _ _))
@@ -13114,9 +13005,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVHload _ _))
@@ -13131,9 +13020,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVHloadidx _ _ _))
@@ -13148,9 +13035,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVWload _ _))
@@ -13165,9 +13050,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVWloadidx _ _ _))
@@ -13182,9 +13065,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(x.Type.IsSigned() || x.Type.Size() == 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVBZload _ _))
@@ -13199,9 +13080,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVBZloadidx _ _ _))
@@ -13216,9 +13095,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 1) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVHZload _ _))
@@ -13233,9 +13110,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg x:(MOVHZloadidx _ _ _))
@@ -13250,9 +13125,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(!x.Type.IsSigned() || x.Type.Size() > 2) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg <t> x:(MOVWZload [o] {s} p mem))
@@ -13273,8 +13146,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(x.Pos, OpS390XMOVWload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg2(p, mem)
@@ -13299,8 +13171,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpS390XMOVWloadidx, t)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = o
v0.Aux = s
v0.AddArg3(p, i, mem)
@@ -13318,9 +13189,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool {
if !(t.IsSigned() && t.Size() <= 4) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MOVWreg (MOVDconst [c]))
@@ -13924,9 +13793,7 @@ func rewriteValueS390X_OpS390XMULLDconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MULLDconst [c] x)
@@ -14171,9 +14038,7 @@ func rewriteValueS390X_OpS390XMULLWconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (MULLWconst [c] x)
@@ -14591,9 +14456,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (OR <t> x g:(MOVDload [off] {sym} ptr mem))
@@ -14654,8 +14517,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpS390XMOVHZload, typ.UInt16)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -14694,8 +14556,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpS390XMOVWZload, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -14734,8 +14595,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpS390XMOVDload, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -14792,8 +14652,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x1.Pos, OpS390XOR, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpS390XSLDconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(x1.Pos, OpS390XMOVHZload, typ.UInt16)
@@ -14856,8 +14715,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x1.Pos, OpS390XOR, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpS390XSLDconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(x1.Pos, OpS390XMOVWZload, typ.UInt32)
@@ -14909,8 +14767,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, typ.UInt16)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -14958,8 +14815,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVWZloadidx, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -15007,8 +14863,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVDloadidx, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -15074,8 +14929,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpS390XOR, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpS390XSLDconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, typ.UInt16)
@@ -15147,8 +15001,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpS390XOR, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpS390XSLDconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(v.Pos, OpS390XMOVWZloadidx, typ.UInt32)
@@ -15195,8 +15048,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpS390XMOVHZreg, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpS390XMOVHBRload, typ.UInt16)
v1.AuxInt = i0
v1.Aux = s
@@ -15245,8 +15097,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpS390XMOVWZreg, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpS390XMOVWBRload, typ.UInt32)
v1.AuxInt = i0
v1.Aux = s
@@ -15295,8 +15146,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpS390XMOVDBRload, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -15353,8 +15203,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x0.Pos, OpS390XOR, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpS390XSLDconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(x0.Pos, OpS390XMOVHZreg, typ.UInt64)
@@ -15427,8 +15276,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x0.Pos, OpS390XOR, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpS390XSLDconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(x0.Pos, OpS390XMOVWZreg, typ.UInt64)
@@ -15482,8 +15330,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVHZreg, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpS390XMOVHBRloadidx, typ.Int16)
v1.AuxInt = i0
v1.Aux = s
@@ -15541,8 +15388,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVWZreg, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpS390XMOVWBRloadidx, typ.Int32)
v1.AuxInt = i0
v1.Aux = s
@@ -15600,8 +15446,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVDBRloadidx, typ.Int64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -15667,8 +15512,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpS390XOR, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpS390XSLDconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(v.Pos, OpS390XMOVHZreg, typ.UInt64)
@@ -15750,8 +15594,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpS390XOR, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpS390XSLDconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(v.Pos, OpS390XMOVWZreg, typ.UInt64)
@@ -15823,9 +15666,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORW <t> x g:(MOVWload [off] {sym} ptr mem))
@@ -15913,8 +15754,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpS390XMOVHZload, typ.UInt16)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -15953,8 +15793,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x0.Pos, OpS390XMOVWZload, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -16011,8 +15850,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x1.Pos, OpS390XORW, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpS390XSLWconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(x1.Pos, OpS390XMOVHZload, typ.UInt16)
@@ -16064,8 +15902,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, typ.UInt16)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -16113,8 +15950,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVWZloadidx, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -16180,8 +16016,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpS390XORW, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpS390XSLWconst, v.Type)
v1.AuxInt = j1
v2 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, typ.UInt16)
@@ -16228,8 +16063,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpS390XMOVHZreg, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x1.Pos, OpS390XMOVHBRload, typ.UInt16)
v1.AuxInt = i0
v1.Aux = s
@@ -16278,8 +16112,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(x1.Pos, OpS390XMOVWBRload, typ.UInt32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg2(p, mem)
@@ -16336,8 +16169,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(x0.Pos, OpS390XORW, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(x0.Pos, OpS390XSLWconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(x0.Pos, OpS390XMOVHZreg, typ.UInt64)
@@ -16391,8 +16223,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVHZreg, typ.UInt64)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpS390XMOVHBRloadidx, typ.Int16)
v1.AuxInt = i0
v1.Aux = s
@@ -16450,8 +16281,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1)
v0 := b.NewValue0(v.Pos, OpS390XMOVWBRloadidx, typ.Int32)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v0.AuxInt = i0
v0.Aux = s
v0.AddArg3(p, idx, mem)
@@ -16517,8 +16347,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool {
}
b = mergePoint(b, x0, x1, y)
v0 := b.NewValue0(v.Pos, OpS390XORW, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpS390XSLWconst, v.Type)
v1.AuxInt = j0
v2 := b.NewValue0(v.Pos, OpS390XMOVHZreg, typ.UInt64)
@@ -16549,9 +16378,7 @@ func rewriteValueS390X_OpS390XORWconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORWconst [c] _)
@@ -16640,9 +16467,7 @@ func rewriteValueS390X_OpS390XORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ORconst [-1] _)
@@ -17984,9 +17809,7 @@ func rewriteValueS390X_OpS390XSUBWconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SUBWconst [c] x)
@@ -18060,9 +17883,7 @@ func rewriteValueS390X_OpS390XSUBconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SUBconst [c] x)
@@ -18465,9 +18286,7 @@ func rewriteValueS390X_OpS390XXORWconst(v *Value) bool {
if !(int32(c) == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (XORWconst [c] (MOVDconst [d]))
@@ -18544,9 +18363,7 @@ func rewriteValueS390X_OpS390XXORconst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (XORconst [c] (MOVDconst [d]))
@@ -19064,9 +18881,7 @@ func rewriteValueS390X_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] destptr mem)
diff --git a/src/cmd/compile/internal/ssa/rewriteWasm.go b/src/cmd/compile/internal/ssa/rewriteWasm.go
index 81acd7e7c4..4b100b6c32 100644
--- a/src/cmd/compile/internal/ssa/rewriteWasm.go
+++ b/src/cmd/compile/internal/ssa/rewriteWasm.go
@@ -1853,9 +1853,7 @@ func rewriteValueWasm_OpMove(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Move [1] dst src mem)
@@ -3099,9 +3097,7 @@ func rewriteValueWasm_OpSignExt16to32(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SignExt16to32 x)
@@ -3143,9 +3139,7 @@ func rewriteValueWasm_OpSignExt16to64(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SignExt16to64 x)
@@ -3187,9 +3181,7 @@ func rewriteValueWasm_OpSignExt32to64(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SignExt32to64 x)
@@ -3231,9 +3223,7 @@ func rewriteValueWasm_OpSignExt8to16(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SignExt8to16 x)
@@ -3275,9 +3265,7 @@ func rewriteValueWasm_OpSignExt8to32(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SignExt8to32 x)
@@ -3319,9 +3307,7 @@ func rewriteValueWasm_OpSignExt8to64(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (SignExt8to64 x)
@@ -3596,9 +3582,7 @@ func rewriteValueWasm_OpWasmI64AddConst(v *Value) bool {
break
}
x := v_0
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (I64AddConst [off] (LoweredAddr {sym} [off2] base))
@@ -4350,9 +4334,7 @@ func rewriteValueWasm_OpZero(v *Value) bool {
break
}
mem := v_1
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero [1] destptr mem)
@@ -4610,9 +4592,7 @@ func rewriteValueWasm_OpZeroExt16to32(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ZeroExt16to32 x)
@@ -4638,9 +4618,7 @@ func rewriteValueWasm_OpZeroExt16to64(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ZeroExt16to64 x)
@@ -4666,9 +4644,7 @@ func rewriteValueWasm_OpZeroExt32to64(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ZeroExt32to64 x)
@@ -4694,9 +4670,7 @@ func rewriteValueWasm_OpZeroExt8to16(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ZeroExt8to16 x)
@@ -4722,9 +4696,7 @@ func rewriteValueWasm_OpZeroExt8to32(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ZeroExt8to32 x)
@@ -4750,9 +4722,7 @@ func rewriteValueWasm_OpZeroExt8to64(v *Value) bool {
break
}
_ = x.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ZeroExt8to64 x)
diff --git a/src/cmd/compile/internal/ssa/rewritedec.go b/src/cmd/compile/internal/ssa/rewritedec.go
index a031fca4ad..08ed1fd129 100644
--- a/src/cmd/compile/internal/ssa/rewritedec.go
+++ b/src/cmd/compile/internal/ssa/rewritedec.go
@@ -41,9 +41,7 @@ func rewriteValuedec_OpComplexImag(v *Value) bool {
break
}
imag := v_0.Args[1]
- v.reset(OpCopy)
- v.Type = imag.Type
- v.AddArg(imag)
+ v.copyOf(imag)
return true
}
return false
@@ -58,9 +56,7 @@ func rewriteValuedec_OpComplexReal(v *Value) bool {
}
_ = v_0.Args[1]
real := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = real.Type
- v.AddArg(real)
+ v.copyOf(real)
return true
}
return false
@@ -74,9 +70,7 @@ func rewriteValuedec_OpIData(v *Value) bool {
break
}
data := v_0.Args[1]
- v.reset(OpCopy)
- v.Type = data.Type
- v.AddArg(data)
+ v.copyOf(data)
return true
}
return false
@@ -91,9 +85,7 @@ func rewriteValuedec_OpITab(v *Value) bool {
}
_ = v_0.Args[1]
itab := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = itab.Type
- v.AddArg(itab)
+ v.copyOf(itab)
return true
}
return false
@@ -225,9 +217,7 @@ func rewriteValuedec_OpSliceCap(v *Value) bool {
break
}
cap := v_0.Args[2]
- v.reset(OpCopy)
- v.Type = cap.Type
- v.AddArg(cap)
+ v.copyOf(cap)
return true
}
return false
@@ -242,9 +232,7 @@ func rewriteValuedec_OpSliceLen(v *Value) bool {
}
_ = v_0.Args[2]
len := v_0.Args[1]
- v.reset(OpCopy)
- v.Type = len.Type
- v.AddArg(len)
+ v.copyOf(len)
return true
}
return false
@@ -259,9 +247,7 @@ func rewriteValuedec_OpSlicePtr(v *Value) bool {
}
_ = v_0.Args[2]
ptr := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = ptr.Type
- v.AddArg(ptr)
+ v.copyOf(ptr)
return true
}
return false
@@ -406,9 +392,7 @@ func rewriteValuedec_OpStringLen(v *Value) bool {
break
}
len := v_0.Args[1]
- v.reset(OpCopy)
- v.Type = len.Type
- v.AddArg(len)
+ v.copyOf(len)
return true
}
return false
@@ -423,9 +407,7 @@ func rewriteValuedec_OpStringPtr(v *Value) bool {
}
_ = v_0.Args[1]
ptr := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = ptr.Type
- v.AddArg(ptr)
+ v.copyOf(ptr)
return true
}
return false
diff --git a/src/cmd/compile/internal/ssa/rewritedec64.go b/src/cmd/compile/internal/ssa/rewritedec64.go
index 3beaf8e99f..08a045ccac 100644
--- a/src/cmd/compile/internal/ssa/rewritedec64.go
+++ b/src/cmd/compile/internal/ssa/rewritedec64.go
@@ -441,9 +441,7 @@ func rewriteValuedec64_OpInt64Hi(v *Value) bool {
}
_ = v_0.Args[1]
hi := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = hi.Type
- v.AddArg(hi)
+ v.copyOf(hi)
return true
}
return false
@@ -457,9 +455,7 @@ func rewriteValuedec64_OpInt64Lo(v *Value) bool {
break
}
lo := v_0.Args[1]
- v.reset(OpCopy)
- v.Type = lo.Type
- v.AddArg(lo)
+ v.copyOf(lo)
return true
}
return false
@@ -2174,9 +2170,7 @@ func rewriteValuedec64_OpTrunc64to32(v *Value) bool {
break
}
lo := v_0.Args[1]
- v.reset(OpCopy)
- v.Type = lo.Type
- v.AddArg(lo)
+ v.copyOf(lo)
return true
}
return false
diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go
index 5a9dd7ed5b..0089df46b9 100644
--- a/src/cmd/compile/internal/ssa/rewritegeneric.go
+++ b/src/cmd/compile/internal/ssa/rewritegeneric.go
@@ -508,9 +508,7 @@ func rewriteValuegeneric_OpAdd16(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -763,9 +761,7 @@ func rewriteValuegeneric_OpAdd32(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -1041,9 +1037,7 @@ func rewriteValuegeneric_OpAdd64(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -1319,9 +1313,7 @@ func rewriteValuegeneric_OpAdd8(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -1627,9 +1619,7 @@ func rewriteValuegeneric_OpAnd16(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (And16 (Const16 [-1]) x)
@@ -1640,9 +1630,7 @@ func rewriteValuegeneric_OpAnd16(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -1829,9 +1817,7 @@ func rewriteValuegeneric_OpAnd32(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (And32 (Const32 [-1]) x)
@@ -1842,9 +1828,7 @@ func rewriteValuegeneric_OpAnd32(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -2031,9 +2015,7 @@ func rewriteValuegeneric_OpAnd64(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (And64 (Const64 [-1]) x)
@@ -2044,9 +2026,7 @@ func rewriteValuegeneric_OpAnd64(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -2233,9 +2213,7 @@ func rewriteValuegeneric_OpAnd8(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (And8 (Const8 [-1]) x)
@@ -2246,9 +2224,7 @@ func rewriteValuegeneric_OpAnd8(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -2361,9 +2337,7 @@ func rewriteValuegeneric_OpArraySelect(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (ArraySelect [0] (IData x))
@@ -2388,9 +2362,7 @@ func rewriteValuegeneric_OpCom16(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Com16 (Const16 [c]))
@@ -2435,9 +2407,7 @@ func rewriteValuegeneric_OpCom32(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Com32 (Const32 [c]))
@@ -2482,9 +2452,7 @@ func rewriteValuegeneric_OpCom64(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Com64 (Const64 [c]))
@@ -2529,9 +2497,7 @@ func rewriteValuegeneric_OpCom8(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Com8 (Const8 [c]))
@@ -2755,9 +2721,7 @@ func rewriteValuegeneric_OpConvert(v *Value) bool {
if mem != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = ptr.Type
- v.AddArg(ptr)
+ v.copyOf(ptr)
return true
}
return false
@@ -6803,9 +6767,7 @@ func rewriteValuegeneric_OpEqB(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -8894,9 +8856,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
if !(isSamePtr(p1, p2) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Load <t1> p1 (Store {t2} p2 _ (Store {t3} p3 x _)))
@@ -8922,9 +8882,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
if !(isSamePtr(p1, p3) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p3, sizeof(t3), p2, sizeof(t2))) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Load <t1> p1 (Store {t2} p2 _ (Store {t3} p3 _ (Store {t4} p4 x _))))
@@ -8957,9 +8915,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
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
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Load <t1> p1 (Store {t2} p2 _ (Store {t3} p3 _ (Store {t4} p4 _ (Store {t5} p5 x _)))))
@@ -8999,9 +8955,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
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
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Load <t1> p1 (Store {t2} p2 (Const64 [x]) _))
@@ -9129,8 +9083,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
}
b = mem.Block
v0 := b.NewValue0(v.Pos, OpLoad, t1)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpOffPtr, op.Type)
v1.AuxInt = o1
v1.AddArg(p3)
@@ -9173,8 +9126,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
}
b = mem.Block
v0 := b.NewValue0(v.Pos, OpLoad, t1)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpOffPtr, op.Type)
v1.AuxInt = o1
v1.AddArg(p4)
@@ -9224,8 +9176,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
}
b = mem.Block
v0 := b.NewValue0(v.Pos, OpLoad, t1)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpOffPtr, op.Type)
v1.AuxInt = o1
v1.AddArg(p5)
@@ -9282,8 +9233,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool {
}
b = mem.Block
v0 := b.NewValue0(v.Pos, OpLoad, t1)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpOffPtr, op.Type)
v1.AuxInt = o1
v1.AddArg(p6)
@@ -9686,9 +9636,7 @@ func rewriteValuegeneric_OpLsh16x64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Lsh16x64 (Const16 [0]) _)
@@ -9903,9 +9851,7 @@ func rewriteValuegeneric_OpLsh32x64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Lsh32x64 (Const32 [0]) _)
@@ -10120,9 +10066,7 @@ func rewriteValuegeneric_OpLsh64x64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Lsh64x64 (Const64 [0]) _)
@@ -10337,9 +10281,7 @@ func rewriteValuegeneric_OpLsh8x64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Lsh8x64 (Const8 [0]) _)
@@ -10831,9 +10773,7 @@ func rewriteValuegeneric_OpMod64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != -1<<63 || !(isNonNegative(n)) {
break
}
- v.reset(OpCopy)
- v.Type = n.Type
- v.AddArg(n)
+ v.copyOf(n)
return true
}
// match: (Mod64 <t> n (Const64 [c]))
@@ -12451,9 +12391,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool {
if !(isSamePtr(dst, src)) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
return false
@@ -12489,9 +12427,7 @@ func rewriteValuegeneric_OpMul16(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -12633,9 +12569,7 @@ func rewriteValuegeneric_OpMul32(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -12809,9 +12743,7 @@ func rewriteValuegeneric_OpMul32F(v *Value) bool {
if v_1.Op != OpConst32F || v_1.AuxInt != auxFrom64F(1) {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -12877,9 +12809,7 @@ func rewriteValuegeneric_OpMul64(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -13053,9 +12983,7 @@ func rewriteValuegeneric_OpMul64F(v *Value) bool {
if v_1.Op != OpConst64F || v_1.AuxInt != auxFrom64F(1) {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -13121,9 +13049,7 @@ func rewriteValuegeneric_OpMul8(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -13267,9 +13193,7 @@ func rewriteValuegeneric_OpNeg16(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Neg16 <t> (Com16 x))
@@ -13321,9 +13245,7 @@ func rewriteValuegeneric_OpNeg32(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Neg32 <t> (Com32 x))
@@ -13394,9 +13316,7 @@ func rewriteValuegeneric_OpNeg64(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Neg64 <t> (Com64 x))
@@ -13467,9 +13387,7 @@ func rewriteValuegeneric_OpNeg8(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Neg8 <t> (Com8 x))
@@ -14311,9 +14229,7 @@ func rewriteValuegeneric_OpNeqB(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -14792,9 +14708,7 @@ func rewriteValuegeneric_OpNilCheck(v *Value) bool {
if mem != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (NilCheck (Load (OffPtr [c] (SP)) (StaticCall {sym} _)) _)
@@ -15285,9 +15199,7 @@ func rewriteValuegeneric_OpOffPtr(v *Value) bool {
if !(v.Type.Compare(p.Type) == types.CMPeq) {
break
}
- v.reset(OpCopy)
- v.Type = p.Type
- v.AddArg(p)
+ v.copyOf(p)
return true
}
return false
@@ -15321,9 +15233,7 @@ func rewriteValuegeneric_OpOr16(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Or16 (Const16 [0]) x)
@@ -15334,9 +15244,7 @@ func rewriteValuegeneric_OpOr16(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -15503,9 +15411,7 @@ func rewriteValuegeneric_OpOr32(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Or32 (Const32 [0]) x)
@@ -15516,9 +15422,7 @@ func rewriteValuegeneric_OpOr32(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -15685,9 +15589,7 @@ func rewriteValuegeneric_OpOr64(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Or64 (Const64 [0]) x)
@@ -15698,9 +15600,7 @@ func rewriteValuegeneric_OpOr64(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -15867,9 +15767,7 @@ func rewriteValuegeneric_OpOr8(v *Value) bool {
if x != v_1 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Or8 (Const8 [0]) x)
@@ -15880,9 +15778,7 @@ func rewriteValuegeneric_OpOr8(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -16150,9 +16046,7 @@ func rewriteValuegeneric_OpRotateLeft16(v *Value) bool {
if !(c%16 == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -16172,9 +16066,7 @@ func rewriteValuegeneric_OpRotateLeft32(v *Value) bool {
if !(c%32 == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -16194,9 +16086,7 @@ func rewriteValuegeneric_OpRotateLeft64(v *Value) bool {
if !(c%64 == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -16216,9 +16106,7 @@ func rewriteValuegeneric_OpRotateLeft8(v *Value) bool {
if !(c%8 == 0) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -16232,9 +16120,7 @@ func rewriteValuegeneric_OpRound32F(v *Value) bool {
if x.Op != OpConst32F {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -16248,9 +16134,7 @@ func rewriteValuegeneric_OpRound64F(v *Value) bool {
if x.Op != OpConst64F {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -16344,9 +16228,7 @@ func rewriteValuegeneric_OpRsh16Ux64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Rsh16Ux64 (Const16 [0]) _)
@@ -16600,9 +16482,7 @@ func rewriteValuegeneric_OpRsh16x64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Rsh16x64 (Const16 [0]) _)
@@ -16783,9 +16663,7 @@ func rewriteValuegeneric_OpRsh32Ux64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Rsh32Ux64 (Const32 [0]) _)
@@ -17057,9 +16935,7 @@ func rewriteValuegeneric_OpRsh32x64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Rsh32x64 (Const32 [0]) _)
@@ -17258,9 +17134,7 @@ func rewriteValuegeneric_OpRsh64Ux64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Rsh64Ux64 (Const64 [0]) _)
@@ -17550,9 +17424,7 @@ func rewriteValuegeneric_OpRsh64x64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Rsh64x64 (Const64 [0]) _)
@@ -17769,9 +17641,7 @@ func rewriteValuegeneric_OpRsh8Ux64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Rsh8Ux64 (Const8 [0]) _)
@@ -18006,9 +17876,7 @@ func rewriteValuegeneric_OpRsh8x64(v *Value) bool {
if v_1.Op != OpConst64 || v_1.AuxInt != 0 {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Rsh8x64 (Const8 [0]) _)
@@ -18155,9 +18023,7 @@ func rewriteValuegeneric_OpSignExt16to32(v *Value) bool {
if !(s >= 16) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -18195,9 +18061,7 @@ func rewriteValuegeneric_OpSignExt16to64(v *Value) bool {
if !(s >= 48) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -18235,9 +18099,7 @@ func rewriteValuegeneric_OpSignExt32to64(v *Value) bool {
if !(s >= 32) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -18275,9 +18137,7 @@ func rewriteValuegeneric_OpSignExt8to16(v *Value) bool {
if !(s >= 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -18315,9 +18175,7 @@ func rewriteValuegeneric_OpSignExt8to32(v *Value) bool {
if !(s >= 24) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -18355,9 +18213,7 @@ func rewriteValuegeneric_OpSignExt8to64(v *Value) bool {
if !(s >= 56) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -18666,9 +18522,7 @@ func rewriteValuegeneric_OpStaticCall(v *Value) bool {
if !(needRaceCleanup(sym, v)) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -18695,9 +18549,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
if mem != v_2 || !(isSamePtr(p1, p2) && t2.Size() == sizeof(t1)) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store {t1} p1 (Load <t2> p2 oldmem) mem:(Store {t3} p3 _ oldmem))
@@ -18722,9 +18574,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
if oldmem != mem.Args[2] || !(isSamePtr(p1, p2) && t2.Size() == sizeof(t1) && disjoint(p1, sizeof(t1), p3, sizeof(t3))) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store {t1} p1 (Load <t2> p2 oldmem) mem:(Store {t3} p3 _ (Store {t4} p4 _ oldmem)))
@@ -18756,9 +18606,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
if oldmem != mem_2.Args[2] || !(isSamePtr(p1, p2) && t2.Size() == sizeof(t1) && disjoint(p1, sizeof(t1), p3, sizeof(t3)) && disjoint(p1, sizeof(t1), p4, sizeof(t4))) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store {t1} p1 (Load <t2> p2 oldmem) mem:(Store {t3} p3 _ (Store {t4} p4 _ (Store {t5} p5 _ oldmem))))
@@ -18797,9 +18645,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
if oldmem != mem_2_2.Args[2] || !(isSamePtr(p1, p2) && t2.Size() == sizeof(t1) && disjoint(p1, sizeof(t1), p3, sizeof(t3)) && disjoint(p1, sizeof(t1), p4, sizeof(t4)) && disjoint(p1, sizeof(t1), p5, sizeof(t5))) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store {t} (OffPtr [o] p1) x mem:(Zero [n] p2 _))
@@ -18823,9 +18669,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
if !(isConstZero(x) && o >= 0 && sizeof(t)+o <= n && isSamePtr(p1, p2)) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store {t1} op:(OffPtr [o1] p1) x mem:(Store {t2} p2 _ (Zero [n] p3 _)))
@@ -18857,9 +18701,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p3) && disjoint(op, sizeof(t1), p2, sizeof(t2))) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store {t1} op:(OffPtr [o1] p1) x mem:(Store {t2} p2 _ (Store {t3} p3 _ (Zero [n] p4 _))))
@@ -18898,9 +18740,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
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
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store {t1} op:(OffPtr [o1] p1) x mem:(Store {t2} p2 _ (Store {t3} p3 _ (Store {t4} p4 _ (Zero [n] p5 _)))))
@@ -18946,9 +18786,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
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
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store _ (StructMake0) mem)
@@ -18958,9 +18796,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store dst (StructMake1 <t> f0) mem)
@@ -19131,9 +18967,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
break
}
mem := v_2
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store dst (ArrayMake1 e) mem)
@@ -19171,9 +19005,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
if mem != v_2 || !(isConstZero(x) && mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store (OffPtr (Load (OffPtr [c] (SP)) mem)) x mem)
@@ -19201,9 +19033,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool {
if mem != v_2 || !(isConstZero(x) && mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Store {t1} op1:(OffPtr [o1] p1) d1 m2:(Store {t2} op2:(OffPtr [0] p2) d2 m3:(Move [n] p3 _ mem)))
@@ -19613,9 +19443,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [0] (StructMake2 x _))
@@ -19626,9 +19454,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
}
_ = v_0.Args[1]
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [1] (StructMake2 _ x))
@@ -19638,9 +19464,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
break
}
x := v_0.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [0] (StructMake3 x _ _))
@@ -19651,9 +19475,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
}
_ = v_0.Args[2]
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [1] (StructMake3 _ x _))
@@ -19664,9 +19486,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
}
_ = v_0.Args[2]
x := v_0.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [2] (StructMake3 _ _ x))
@@ -19676,9 +19496,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
break
}
x := v_0.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [0] (StructMake4 x _ _ _))
@@ -19689,9 +19507,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
}
_ = v_0.Args[3]
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [1] (StructMake4 _ x _ _))
@@ -19702,9 +19518,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
}
_ = v_0.Args[3]
x := v_0.Args[1]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [2] (StructMake4 _ _ x _))
@@ -19715,9 +19529,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
}
_ = v_0.Args[3]
x := v_0.Args[2]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [3] (StructMake4 _ _ _ x))
@@ -19727,9 +19539,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
break
}
x := v_0.Args[3]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (StructSelect [i] x:(Load <t> ptr mem))
@@ -19749,8 +19559,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool {
}
b = x.Block
v0 := b.NewValue0(v.Pos, OpLoad, v.Type)
- v.reset(OpCopy)
- v.AddArg(v0)
+ v.copyOf(v0)
v1 := b.NewValue0(v.Pos, OpOffPtr, v.Type.PtrTo())
v1.AuxInt = t.FieldOff(int(i))
v1.AddArg(ptr)
@@ -19867,9 +19676,7 @@ func rewriteValuegeneric_OpSub16(v *Value) bool {
if x != v_1 {
continue
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
break
@@ -19889,9 +19696,7 @@ func rewriteValuegeneric_OpSub16(v *Value) bool {
if y != v_1 {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -20089,9 +19894,7 @@ func rewriteValuegeneric_OpSub32(v *Value) bool {
if x != v_1 {
continue
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
break
@@ -20111,9 +19914,7 @@ func rewriteValuegeneric_OpSub32(v *Value) bool {
if y != v_1 {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -20331,9 +20132,7 @@ func rewriteValuegeneric_OpSub64(v *Value) bool {
if x != v_1 {
continue
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
break
@@ -20353,9 +20152,7 @@ func rewriteValuegeneric_OpSub64(v *Value) bool {
if y != v_1 {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -20573,9 +20370,7 @@ func rewriteValuegeneric_OpSub8(v *Value) bool {
if x != v_1 {
continue
}
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
break
@@ -20595,9 +20390,7 @@ func rewriteValuegeneric_OpSub8(v *Value) bool {
if y != v_1 {
continue
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -20718,9 +20511,7 @@ func rewriteValuegeneric_OpTrunc16to8(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc16to8 (SignExt8to16 x))
@@ -20730,9 +20521,7 @@ func rewriteValuegeneric_OpTrunc16to8(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc16to8 (And16 (Const16 [y]) x))
@@ -20793,9 +20582,7 @@ func rewriteValuegeneric_OpTrunc32to16(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc32to16 (SignExt8to32 x))
@@ -20816,9 +20603,7 @@ func rewriteValuegeneric_OpTrunc32to16(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc32to16 (And32 (Const32 [y]) x))
@@ -20868,9 +20653,7 @@ func rewriteValuegeneric_OpTrunc32to8(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc32to8 (SignExt8to32 x))
@@ -20880,9 +20663,7 @@ func rewriteValuegeneric_OpTrunc32to8(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc32to8 (And32 (Const32 [y]) x))
@@ -20943,9 +20724,7 @@ func rewriteValuegeneric_OpTrunc64to16(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc64to16 (SignExt8to64 x))
@@ -20966,9 +20745,7 @@ func rewriteValuegeneric_OpTrunc64to16(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc64to16 (And64 (Const64 [y]) x))
@@ -21040,9 +20817,7 @@ func rewriteValuegeneric_OpTrunc64to32(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc64to32 (SignExt8to64 x))
@@ -21074,9 +20849,7 @@ func rewriteValuegeneric_OpTrunc64to32(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc64to32 (And64 (Const64 [y]) x))
@@ -21126,9 +20899,7 @@ func rewriteValuegeneric_OpTrunc64to8(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc64to8 (SignExt8to64 x))
@@ -21138,9 +20909,7 @@ func rewriteValuegeneric_OpTrunc64to8(v *Value) bool {
break
}
x := v_0.Args[0]
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
// match: (Trunc64to8 (And64 (Const64 [y]) x))
@@ -21211,9 +20980,7 @@ func rewriteValuegeneric_OpXor16(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -21234,9 +21001,7 @@ func rewriteValuegeneric_OpXor16(v *Value) bool {
continue
}
y := v_1_1
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
}
@@ -21346,9 +21111,7 @@ func rewriteValuegeneric_OpXor32(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -21369,9 +21132,7 @@ func rewriteValuegeneric_OpXor32(v *Value) bool {
continue
}
y := v_1_1
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
}
@@ -21481,9 +21242,7 @@ func rewriteValuegeneric_OpXor64(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -21504,9 +21263,7 @@ func rewriteValuegeneric_OpXor64(v *Value) bool {
continue
}
y := v_1_1
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
}
@@ -21616,9 +21373,7 @@ func rewriteValuegeneric_OpXor8(v *Value) bool {
continue
}
x := v_1
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
break
@@ -21639,9 +21394,7 @@ func rewriteValuegeneric_OpXor8(v *Value) bool {
continue
}
y := v_1_1
- v.reset(OpCopy)
- v.Type = y.Type
- v.AddArg(y)
+ v.copyOf(y)
return true
}
}
@@ -21732,9 +21485,7 @@ func rewriteValuegeneric_OpZero(v *Value) bool {
if v_0_0_0.Op != OpSP || mem != v_1 || !(mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize) {
break
}
- v.reset(OpCopy)
- v.Type = mem.Type
- v.AddArg(mem)
+ v.copyOf(mem)
return true
}
// match: (Zero {t1} [n] p1 store:(Store {t2} (OffPtr [o2] p2) _ mem))
@@ -21852,9 +21603,7 @@ func rewriteValuegeneric_OpZeroExt16to32(v *Value) bool {
if !(s >= 16) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -21892,9 +21641,7 @@ func rewriteValuegeneric_OpZeroExt16to64(v *Value) bool {
if !(s >= 48) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -21932,9 +21679,7 @@ func rewriteValuegeneric_OpZeroExt32to64(v *Value) bool {
if !(s >= 32) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -21972,9 +21717,7 @@ func rewriteValuegeneric_OpZeroExt8to16(v *Value) bool {
if !(s >= 8) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -22012,9 +21755,7 @@ func rewriteValuegeneric_OpZeroExt8to32(v *Value) bool {
if !(s >= 24) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
@@ -22052,9 +21793,7 @@ func rewriteValuegeneric_OpZeroExt8to64(v *Value) bool {
if !(s >= 56) {
break
}
- v.reset(OpCopy)
- v.Type = x.Type
- v.AddArg(x)
+ v.copyOf(x)
return true
}
return false
diff --git a/src/cmd/compile/internal/ssa/value.go b/src/cmd/compile/internal/ssa/value.go
index 8c5834d530..e5246779fc 100644
--- a/src/cmd/compile/internal/ssa/value.go
+++ b/src/cmd/compile/internal/ssa/value.go
@@ -310,17 +310,29 @@ func (v *Value) resetArgs() {
v.Args = v.argstorage[:0]
}
+// reset is called from most rewrite rules.
+// Allowing it to be inlined increases the size
+// of cmd/compile by almost 10%, and slows it down.
+//go:noinline
func (v *Value) reset(op Op) {
v.Op = op
- if op != OpCopy && notStmtBoundary(op) {
- // Special case for OpCopy because of how it is used in rewrite
- v.Pos = v.Pos.WithNotStmt()
- }
v.resetArgs()
v.AuxInt = 0
v.Aux = nil
}
+// copyOf is called from rewrite rules.
+// It modifies v to be (Copy a).
+//go:noinline
+func (v *Value) copyOf(a *Value) {
+ v.Op = OpCopy
+ v.resetArgs()
+ v.AddArg(a)
+ v.AuxInt = 0
+ v.Aux = nil
+ v.Type = a.Type
+}
+
// copyInto makes a new value identical to v and adds it to the end of b.
// unlike copyIntoWithXPos this does not check for v.Pos being a statement.
func (v *Value) copyInto(b *Block) *Value {
diff --git a/src/cmd/compile/internal/ssa/writebarrier.go b/src/cmd/compile/internal/ssa/writebarrier.go
index d246fb333c..cebfbb8c9d 100644
--- a/src/cmd/compile/internal/ssa/writebarrier.go
+++ b/src/cmd/compile/internal/ssa/writebarrier.go
@@ -347,6 +347,7 @@ func writebarrier(f *Func) {
bEnd.Values = append(bEnd.Values, last)
last.Block = bEnd
last.reset(OpPhi)
+ last.Pos = last.Pos.WithNotStmt()
last.Type = types.TypeMem
last.AddArg(memThen)
last.AddArg(memElse)