}
// match: (SUB a p:(ADDconst [c] m:(MUL _ _)))
// cond: p.Uses==1 && m.Uses==1
- // result: (ADDconst [c] (SUB <v.Type> a m))
+ // result: (SUBconst [c] (SUB <v.Type> a m))
for {
a := v_0
p := v_1
if m.Op != OpARM64MUL || !(p.Uses == 1 && m.Uses == 1) {
break
}
- v.reset(OpARM64ADDconst)
+ v.reset(OpARM64SUBconst)
v.AuxInt = int64ToAuxInt(c)
v0 := b.NewValue0(v.Pos, OpARM64SUB, v.Type)
v0.AddArg2(a, m)
}
// match: (SUB a p:(ADDconst [c] m:(MULW _ _)))
// cond: p.Uses==1 && m.Uses==1
- // result: (ADDconst [c] (SUB <v.Type> a m))
+ // result: (SUBconst [c] (SUB <v.Type> a m))
for {
a := v_0
p := v_1
if m.Op != OpARM64MULW || !(p.Uses == 1 && m.Uses == 1) {
break
}
- v.reset(OpARM64ADDconst)
+ v.reset(OpARM64SUBconst)
v.AuxInt = int64ToAuxInt(c)
v0 := b.NewValue0(v.Pos, OpARM64SUB, v.Type)
v0.AddArg2(a, m)
}
// match: (SUB a p:(ADDconst [c] m:(MNEG _ _)))
// cond: p.Uses==1 && m.Uses==1
- // result: (ADDconst [c] (SUB <v.Type> a m))
+ // result: (SUBconst [c] (SUB <v.Type> a m))
for {
a := v_0
p := v_1
if m.Op != OpARM64MNEG || !(p.Uses == 1 && m.Uses == 1) {
break
}
- v.reset(OpARM64ADDconst)
+ v.reset(OpARM64SUBconst)
v.AuxInt = int64ToAuxInt(c)
v0 := b.NewValue0(v.Pos, OpARM64SUB, v.Type)
v0.AddArg2(a, m)
}
// match: (SUB a p:(ADDconst [c] m:(MNEGW _ _)))
// cond: p.Uses==1 && m.Uses==1
- // result: (ADDconst [c] (SUB <v.Type> a m))
+ // result: (SUBconst [c] (SUB <v.Type> a m))
for {
a := v_0
p := v_1
if m.Op != OpARM64MNEGW || !(p.Uses == 1 && m.Uses == 1) {
break
}
- v.reset(OpARM64ADDconst)
+ v.reset(OpARM64SUBconst)
v.AuxInt = int64ToAuxInt(c)
v0 := b.NewValue0(v.Pos, OpARM64SUB, v.Type)
v0.AddArg2(a, m)
}
// match: (SUB a p:(SUBconst [c] m:(MUL _ _)))
// cond: p.Uses==1 && m.Uses==1
- // result: (SUBconst [c] (SUB <v.Type> a m))
+ // result: (ADDconst [c] (SUB <v.Type> a m))
for {
a := v_0
p := v_1
if m.Op != OpARM64MUL || !(p.Uses == 1 && m.Uses == 1) {
break
}
- v.reset(OpARM64SUBconst)
+ v.reset(OpARM64ADDconst)
v.AuxInt = int64ToAuxInt(c)
v0 := b.NewValue0(v.Pos, OpARM64SUB, v.Type)
v0.AddArg2(a, m)
}
// match: (SUB a p:(SUBconst [c] m:(MULW _ _)))
// cond: p.Uses==1 && m.Uses==1
- // result: (SUBconst [c] (SUB <v.Type> a m))
+ // result: (ADDconst [c] (SUB <v.Type> a m))
for {
a := v_0
p := v_1
if m.Op != OpARM64MULW || !(p.Uses == 1 && m.Uses == 1) {
break
}
- v.reset(OpARM64SUBconst)
+ v.reset(OpARM64ADDconst)
v.AuxInt = int64ToAuxInt(c)
v0 := b.NewValue0(v.Pos, OpARM64SUB, v.Type)
v0.AddArg2(a, m)
}
// match: (SUB a p:(SUBconst [c] m:(MNEG _ _)))
// cond: p.Uses==1 && m.Uses==1
- // result: (SUBconst [c] (SUB <v.Type> a m))
+ // result: (ADDconst [c] (SUB <v.Type> a m))
for {
a := v_0
p := v_1
if m.Op != OpARM64MNEG || !(p.Uses == 1 && m.Uses == 1) {
break
}
- v.reset(OpARM64SUBconst)
+ v.reset(OpARM64ADDconst)
v.AuxInt = int64ToAuxInt(c)
v0 := b.NewValue0(v.Pos, OpARM64SUB, v.Type)
v0.AddArg2(a, m)
}
// match: (SUB a p:(SUBconst [c] m:(MNEGW _ _)))
// cond: p.Uses==1 && m.Uses==1
- // result: (SUBconst [c] (SUB <v.Type> a m))
+ // result: (ADDconst [c] (SUB <v.Type> a m))
for {
a := v_0
p := v_1
if m.Op != OpARM64MNEGW || !(p.Uses == 1 && m.Uses == 1) {
break
}
- v.reset(OpARM64SUBconst)
+ v.reset(OpARM64ADDconst)
v.AuxInt = int64ToAuxInt(c)
v0 := b.NewValue0(v.Pos, OpARM64SUB, v.Type)
v0.AddArg2(a, m)