v_1 := v.Args[1]
v_0 := v.Args[0]
// match: (VMOVDQUload128 [off1] {sym} x:(ADDQconst [off2] ptr) mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1
+ // cond: is32Bit(int64(off1)+int64(off2))
// result: (VMOVDQUload128 [off1+off2] {sym} ptr mem)
for {
off1 := auxIntToInt32(v.AuxInt)
off2 := auxIntToInt32(x.AuxInt)
ptr := x.Args[0]
mem := v_1
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1) {
+ if !(is32Bit(int64(off1) + int64(off2))) {
break
}
v.reset(OpAMD64VMOVDQUload128)
return true
}
// match: (VMOVDQUload128 [off1] {sym1} x:(LEAQ [off2] {sym2} base) mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)
+ // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)
// result: (VMOVDQUload128 [off1+off2] {mergeSym(sym1, sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
sym2 := auxToSym(x.Aux)
base := x.Args[0]
mem := v_1
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)) {
+ if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) {
break
}
v.reset(OpAMD64VMOVDQUload128)
v_1 := v.Args[1]
v_0 := v.Args[0]
// match: (VMOVDQUload256 [off1] {sym} x:(ADDQconst [off2] ptr) mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1
+ // cond: is32Bit(int64(off1)+int64(off2))
// result: (VMOVDQUload256 [off1+off2] {sym} ptr mem)
for {
off1 := auxIntToInt32(v.AuxInt)
off2 := auxIntToInt32(x.AuxInt)
ptr := x.Args[0]
mem := v_1
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1) {
+ if !(is32Bit(int64(off1) + int64(off2))) {
break
}
v.reset(OpAMD64VMOVDQUload256)
return true
}
// match: (VMOVDQUload256 [off1] {sym1} x:(LEAQ [off2] {sym2} base) mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)
+ // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)
// result: (VMOVDQUload256 [off1+off2] {mergeSym(sym1, sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
sym2 := auxToSym(x.Aux)
base := x.Args[0]
mem := v_1
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)) {
+ if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) {
break
}
v.reset(OpAMD64VMOVDQUload256)
v_1 := v.Args[1]
v_0 := v.Args[0]
// match: (VMOVDQUload512 [off1] {sym} x:(ADDQconst [off2] ptr) mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1
+ // cond: is32Bit(int64(off1)+int64(off2))
// result: (VMOVDQUload512 [off1+off2] {sym} ptr mem)
for {
off1 := auxIntToInt32(v.AuxInt)
off2 := auxIntToInt32(x.AuxInt)
ptr := x.Args[0]
mem := v_1
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1) {
+ if !(is32Bit(int64(off1) + int64(off2))) {
break
}
v.reset(OpAMD64VMOVDQUload512)
return true
}
// match: (VMOVDQUload512 [off1] {sym1} x:(LEAQ [off2] {sym2} base) mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)
+ // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)
// result: (VMOVDQUload512 [off1+off2] {mergeSym(sym1, sym2)} base mem)
for {
off1 := auxIntToInt32(v.AuxInt)
sym2 := auxToSym(x.Aux)
base := x.Args[0]
mem := v_1
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)) {
+ if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) {
break
}
v.reset(OpAMD64VMOVDQUload512)
v_1 := v.Args[1]
v_0 := v.Args[0]
// match: (VMOVDQUstore128 [off1] {sym} x:(ADDQconst [off2] ptr) val mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1
+ // cond: is32Bit(int64(off1)+int64(off2))
// result: (VMOVDQUstore128 [off1+off2] {sym} ptr val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
ptr := x.Args[0]
val := v_1
mem := v_2
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1) {
+ if !(is32Bit(int64(off1) + int64(off2))) {
break
}
v.reset(OpAMD64VMOVDQUstore128)
return true
}
// match: (VMOVDQUstore128 [off1] {sym1} x:(LEAQ [off2] {sym2} base) val mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)
+ // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)
// result: (VMOVDQUstore128 [off1+off2] {mergeSym(sym1, sym2)} base val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
base := x.Args[0]
val := v_1
mem := v_2
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)) {
+ if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) {
break
}
v.reset(OpAMD64VMOVDQUstore128)
v_1 := v.Args[1]
v_0 := v.Args[0]
// match: (VMOVDQUstore256 [off1] {sym} x:(ADDQconst [off2] ptr) val mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1
+ // cond: is32Bit(int64(off1)+int64(off2))
// result: (VMOVDQUstore256 [off1+off2] {sym} ptr val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
ptr := x.Args[0]
val := v_1
mem := v_2
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1) {
+ if !(is32Bit(int64(off1) + int64(off2))) {
break
}
v.reset(OpAMD64VMOVDQUstore256)
return true
}
// match: (VMOVDQUstore256 [off1] {sym1} x:(LEAQ [off2] {sym2} base) val mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)
+ // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)
// result: (VMOVDQUstore256 [off1+off2] {mergeSym(sym1, sym2)} base val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
base := x.Args[0]
val := v_1
mem := v_2
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)) {
+ if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) {
break
}
v.reset(OpAMD64VMOVDQUstore256)
v_1 := v.Args[1]
v_0 := v.Args[0]
// match: (VMOVDQUstore512 [off1] {sym} x:(ADDQconst [off2] ptr) val mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1
+ // cond: is32Bit(int64(off1)+int64(off2))
// result: (VMOVDQUstore512 [off1+off2] {sym} ptr val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
ptr := x.Args[0]
val := v_1
mem := v_2
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1) {
+ if !(is32Bit(int64(off1) + int64(off2))) {
break
}
v.reset(OpAMD64VMOVDQUstore512)
return true
}
// match: (VMOVDQUstore512 [off1] {sym1} x:(LEAQ [off2] {sym2} base) val mem)
- // cond: is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)
+ // cond: is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)
// result: (VMOVDQUstore512 [off1+off2] {mergeSym(sym1, sym2)} base val mem)
for {
off1 := auxIntToInt32(v.AuxInt)
base := x.Args[0]
val := v_1
mem := v_2
- if !(is32Bit(int64(off1)+int64(off2)) && x.Uses == 1 && canMergeSym(sym1, sym2)) {
+ if !(is32Bit(int64(off1)+int64(off2)) && canMergeSym(sym1, sym2)) {
break
}
v.reset(OpAMD64VMOVDQUstore512)