case OpPPC64MOVBreg:
return rewriteValuePPC64_OpPPC64MOVBreg_0(v)
case OpPPC64MOVBstore:
- return rewriteValuePPC64_OpPPC64MOVBstore_0(v)
+ return rewriteValuePPC64_OpPPC64MOVBstore_0(v) || rewriteValuePPC64_OpPPC64MOVBstore_10(v)
case OpPPC64MOVBstorezero:
return rewriteValuePPC64_OpPPC64MOVBstorezero_0(v)
case OpPPC64MOVDload:
case OpPPC64NotEqual:
return rewriteValuePPC64_OpPPC64NotEqual_0(v)
case OpPPC64OR:
- return rewriteValuePPC64_OpPPC64OR_0(v) || rewriteValuePPC64_OpPPC64OR_10(v) || rewriteValuePPC64_OpPPC64OR_20(v) || rewriteValuePPC64_OpPPC64OR_30(v) || rewriteValuePPC64_OpPPC64OR_40(v) || rewriteValuePPC64_OpPPC64OR_50(v) || rewriteValuePPC64_OpPPC64OR_60(v) || rewriteValuePPC64_OpPPC64OR_70(v) || rewriteValuePPC64_OpPPC64OR_80(v) || rewriteValuePPC64_OpPPC64OR_90(v) || rewriteValuePPC64_OpPPC64OR_100(v) || rewriteValuePPC64_OpPPC64OR_110(v) || rewriteValuePPC64_OpPPC64OR_120(v) || rewriteValuePPC64_OpPPC64OR_130(v) || rewriteValuePPC64_OpPPC64OR_140(v)
+ return rewriteValuePPC64_OpPPC64OR_0(v) || rewriteValuePPC64_OpPPC64OR_10(v) || rewriteValuePPC64_OpPPC64OR_20(v) || rewriteValuePPC64_OpPPC64OR_30(v)
case OpPPC64ORN:
return rewriteValuePPC64_OpPPC64ORN_0(v)
case OpPPC64ORconst:
func rewriteValuePPC64_OpPPC64MOVBstore_0(v *Value) bool {
b := v.Block
_ = b
- config := b.Func.Config
- _ = config
+ typ := &b.Func.Config.Types
+ _ = typ
// match: (MOVBstore [off1] {sym} (ADDconst [off2] x) val mem)
// cond: is16Bit(off1+off2)
// result: (MOVBstore [off1+off2] {sym} x val mem)
v.AddArg(mem)
return true
}
- // match: (MOVBstore [i1] {s} p (SRWconst (MOVHZreg w) [8]) x0:(MOVBstore [i0] {s} p w mem))
- // cond: !config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)
- // result: (MOVHstore [i0] {s} p w mem)
+ // match: (MOVBstore [off] {sym} ptr (MOVHreg x) mem)
+ // cond:
+ // result: (MOVBstore [off] {sym} ptr x mem)
for {
- i1 := v.AuxInt
- s := v.Aux
+ off := v.AuxInt
+ sym := v.Aux
_ = v.Args[2]
- p := v.Args[0]
+ ptr := v.Args[0]
v_1 := v.Args[1]
- if v_1.Op != OpPPC64SRWconst {
- break
- }
- if v_1.AuxInt != 8 {
+ if v_1.Op != OpPPC64MOVHreg {
break
}
- v_1_0 := v_1.Args[0]
- if v_1_0.Op != OpPPC64MOVHZreg {
+ x := v_1.Args[0]
+ mem := v.Args[2]
+ v.reset(OpPPC64MOVBstore)
+ v.AuxInt = off
+ v.Aux = sym
+ v.AddArg(ptr)
+ v.AddArg(x)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [off] {sym} ptr (MOVHZreg x) mem)
+ // cond:
+ // result: (MOVBstore [off] {sym} ptr x mem)
+ for {
+ off := v.AuxInt
+ sym := v.Aux
+ _ = v.Args[2]
+ ptr := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64MOVHZreg {
break
}
- w := v_1_0.Args[0]
- x0 := v.Args[2]
- if x0.Op != OpPPC64MOVBstore {
+ x := v_1.Args[0]
+ mem := v.Args[2]
+ v.reset(OpPPC64MOVBstore)
+ v.AuxInt = off
+ v.Aux = sym
+ v.AddArg(ptr)
+ v.AddArg(x)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [off] {sym} ptr (MOVWreg x) mem)
+ // cond:
+ // result: (MOVBstore [off] {sym} ptr x mem)
+ for {
+ off := v.AuxInt
+ sym := v.Aux
+ _ = v.Args[2]
+ ptr := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64MOVWreg {
break
}
- i0 := x0.AuxInt
- if x0.Aux != s {
+ x := v_1.Args[0]
+ mem := v.Args[2]
+ v.reset(OpPPC64MOVBstore)
+ v.AuxInt = off
+ v.Aux = sym
+ v.AddArg(ptr)
+ v.AddArg(x)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [off] {sym} ptr (MOVWZreg x) mem)
+ // cond:
+ // result: (MOVBstore [off] {sym} ptr x mem)
+ for {
+ off := v.AuxInt
+ sym := v.Aux
+ _ = v.Args[2]
+ ptr := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64MOVWZreg {
break
}
- _ = x0.Args[2]
- if p != x0.Args[0] {
+ x := v_1.Args[0]
+ mem := v.Args[2]
+ v.reset(OpPPC64MOVBstore)
+ v.AuxInt = off
+ v.Aux = sym
+ v.AddArg(ptr)
+ v.AddArg(x)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [off] {sym} ptr (SRWconst (MOVHreg x) [c]) mem)
+ // cond: c <= 8
+ // result: (MOVBstore [off] {sym} ptr (SRWconst <typ.UInt32> x [c]) mem)
+ for {
+ off := v.AuxInt
+ sym := v.Aux
+ _ = v.Args[2]
+ ptr := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64SRWconst {
break
}
- if w != x0.Args[1] {
+ c := v_1.AuxInt
+ v_1_0 := v_1.Args[0]
+ if v_1_0.Op != OpPPC64MOVHreg {
break
}
- mem := x0.Args[2]
- if !(!config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)) {
+ x := v_1_0.Args[0]
+ mem := v.Args[2]
+ if !(c <= 8) {
break
}
- v.reset(OpPPC64MOVHstore)
- v.AuxInt = i0
- v.Aux = s
- v.AddArg(p)
- v.AddArg(w)
+ v.reset(OpPPC64MOVBstore)
+ v.AuxInt = off
+ v.Aux = sym
+ v.AddArg(ptr)
+ v0 := b.NewValue0(v.Pos, OpPPC64SRWconst, typ.UInt32)
+ v0.AuxInt = c
+ v0.AddArg(x)
+ v.AddArg(v0)
v.AddArg(mem)
return true
}
- // match: (MOVBstore [i3] {s} p (SRWconst w [24]) x0:(MOVBstore [i2] {s} p (SRWconst w [16]) x1:(MOVBstore [i1] {s} p (SRWconst w [8]) x2:(MOVBstore [i0] {s} p w mem))))
- // cond: !config.BigEndian && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && clobber(x0) && clobber(x1) && clobber(x2)
- // result: (MOVWstore [i0] {s} p w mem)
+ return false
+}
+func rewriteValuePPC64_OpPPC64MOVBstore_10(v *Value) bool {
+ b := v.Block
+ _ = b
+ config := b.Func.Config
+ _ = config
+ typ := &b.Func.Config.Types
+ _ = typ
+ // match: (MOVBstore [off] {sym} ptr (SRWconst (MOVHZreg x) [c]) mem)
+ // cond: c <= 8
+ // result: (MOVBstore [off] {sym} ptr (SRWconst <typ.UInt32> x [c]) mem)
for {
- i3 := v.AuxInt
- s := v.Aux
+ off := v.AuxInt
+ sym := v.Aux
_ = v.Args[2]
- p := v.Args[0]
+ ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64SRWconst {
break
}
- if v_1.AuxInt != 24 {
- break
- }
- w := v_1.Args[0]
- x0 := v.Args[2]
- if x0.Op != OpPPC64MOVBstore {
+ c := v_1.AuxInt
+ v_1_0 := v_1.Args[0]
+ if v_1_0.Op != OpPPC64MOVHZreg {
break
}
- i2 := x0.AuxInt
- if x0.Aux != s {
+ x := v_1_0.Args[0]
+ mem := v.Args[2]
+ if !(c <= 8) {
break
}
- _ = x0.Args[2]
- if p != x0.Args[0] {
+ v.reset(OpPPC64MOVBstore)
+ v.AuxInt = off
+ v.Aux = sym
+ v.AddArg(ptr)
+ v0 := b.NewValue0(v.Pos, OpPPC64SRWconst, typ.UInt32)
+ v0.AuxInt = c
+ v0.AddArg(x)
+ v.AddArg(v0)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [off] {sym} ptr (SRWconst (MOVWreg x) [c]) mem)
+ // cond: c <= 24
+ // result: (MOVBstore [off] {sym} ptr (SRWconst <typ.UInt32> x [c]) mem)
+ for {
+ off := v.AuxInt
+ sym := v.Aux
+ _ = v.Args[2]
+ ptr := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64SRWconst {
break
}
- x0_1 := x0.Args[1]
- if x0_1.Op != OpPPC64SRWconst {
+ c := v_1.AuxInt
+ v_1_0 := v_1.Args[0]
+ if v_1_0.Op != OpPPC64MOVWreg {
break
}
- if x0_1.AuxInt != 16 {
+ x := v_1_0.Args[0]
+ mem := v.Args[2]
+ if !(c <= 24) {
break
}
- if w != x0_1.Args[0] {
+ v.reset(OpPPC64MOVBstore)
+ v.AuxInt = off
+ v.Aux = sym
+ v.AddArg(ptr)
+ v0 := b.NewValue0(v.Pos, OpPPC64SRWconst, typ.UInt32)
+ v0.AuxInt = c
+ v0.AddArg(x)
+ v.AddArg(v0)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [off] {sym} ptr (SRWconst (MOVWZreg x) [c]) mem)
+ // cond: c <= 24
+ // result: (MOVBstore [off] {sym} ptr (SRWconst <typ.UInt32> x [c]) mem)
+ for {
+ off := v.AuxInt
+ sym := v.Aux
+ _ = v.Args[2]
+ ptr := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64SRWconst {
break
}
- x1 := x0.Args[2]
- if x1.Op != OpPPC64MOVBstore {
+ c := v_1.AuxInt
+ v_1_0 := v_1.Args[0]
+ if v_1_0.Op != OpPPC64MOVWZreg {
break
}
- i1 := x1.AuxInt
- if x1.Aux != s {
+ x := v_1_0.Args[0]
+ mem := v.Args[2]
+ if !(c <= 24) {
break
}
- _ = x1.Args[2]
- if p != x1.Args[0] {
+ v.reset(OpPPC64MOVBstore)
+ v.AuxInt = off
+ v.Aux = sym
+ v.AddArg(ptr)
+ v0 := b.NewValue0(v.Pos, OpPPC64SRWconst, typ.UInt32)
+ v0.AuxInt = c
+ v0.AddArg(x)
+ v.AddArg(v0)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [i1] {s} p (SRWconst w [24]) x0:(MOVBstore [i0] {s} p (SRWconst w [16]) mem))
+ // cond: !config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)
+ // result: (MOVHstore [i0] {s} p (SRWconst <typ.UInt16> w [16]) mem)
+ for {
+ i1 := v.AuxInt
+ s := v.Aux
+ _ = v.Args[2]
+ p := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64SRWconst {
break
}
- x1_1 := x1.Args[1]
- if x1_1.Op != OpPPC64SRWconst {
+ if v_1.AuxInt != 24 {
break
}
- if x1_1.AuxInt != 8 {
+ w := v_1.Args[0]
+ x0 := v.Args[2]
+ if x0.Op != OpPPC64MOVBstore {
break
}
- if w != x1_1.Args[0] {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- x2 := x1.Args[2]
- if x2.Op != OpPPC64MOVBstore {
+ _ = x0.Args[2]
+ if p != x0.Args[0] {
break
}
- i0 := x2.AuxInt
- if x2.Aux != s {
+ x0_1 := x0.Args[1]
+ if x0_1.Op != OpPPC64SRWconst {
break
}
- _ = x2.Args[2]
- if p != x2.Args[0] {
+ if x0_1.AuxInt != 16 {
break
}
- if w != x2.Args[1] {
+ if w != x0_1.Args[0] {
break
}
- mem := x2.Args[2]
- if !(!config.BigEndian && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && clobber(x0) && clobber(x1) && clobber(x2)) {
+ mem := x0.Args[2]
+ if !(!config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)) {
break
}
- v.reset(OpPPC64MOVWstore)
+ v.reset(OpPPC64MOVHstore)
v.AuxInt = i0
v.Aux = s
v.AddArg(p)
- v.AddArg(w)
+ v0 := b.NewValue0(v.Pos, OpPPC64SRWconst, typ.UInt16)
+ v0.AuxInt = 16
+ v0.AddArg(w)
+ v.AddArg(v0)
v.AddArg(mem)
return true
}
- // match: (MOVBstore [i7] {s} p (SRDconst w [56]) x0:(MOVBstore [i6] {s} p (SRDconst w [48]) x1:(MOVBstore [i5] {s} p (SRDconst w [40]) x2:(MOVBstore [i4] {s} p (SRDconst w [32]) x3:(MOVBstore [i3] {s} p (SRDconst w [24]) x4:(MOVBstore [i2] {s} p (SRDconst w [16]) x5:(MOVBstore [i1] {s} p (SRDconst w [8]) x6:(MOVBstore [i0] {s} p w mem))))))))
- // cond: !config.BigEndian && i0%4 == 0 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6)
- // result: (MOVDstore [i0] {s} p w mem)
+ // match: (MOVBstore [i1] {s} p (SRDconst w [24]) x0:(MOVBstore [i0] {s} p (SRDconst w [16]) mem))
+ // cond: !config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)
+ // result: (MOVHstore [i0] {s} p (SRWconst <typ.UInt16> w [16]) mem)
for {
- i7 := v.AuxInt
+ i1 := v.AuxInt
s := v.Aux
_ = v.Args[2]
p := v.Args[0]
if v_1.Op != OpPPC64SRDconst {
break
}
- if v_1.AuxInt != 56 {
+ if v_1.AuxInt != 24 {
break
}
w := v_1.Args[0]
if x0.Op != OpPPC64MOVBstore {
break
}
- i6 := x0.AuxInt
+ i0 := x0.AuxInt
if x0.Aux != s {
break
}
if x0_1.Op != OpPPC64SRDconst {
break
}
- if x0_1.AuxInt != 48 {
+ if x0_1.AuxInt != 16 {
break
}
if w != x0_1.Args[0] {
break
}
- x1 := x0.Args[2]
- if x1.Op != OpPPC64MOVBstore {
+ mem := x0.Args[2]
+ if !(!config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)) {
break
}
- i5 := x1.AuxInt
- if x1.Aux != s {
+ v.reset(OpPPC64MOVHstore)
+ v.AuxInt = i0
+ v.Aux = s
+ v.AddArg(p)
+ v0 := b.NewValue0(v.Pos, OpPPC64SRWconst, typ.UInt16)
+ v0.AuxInt = 16
+ v0.AddArg(w)
+ v.AddArg(v0)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [i1] {s} p (SRWconst w [8]) x0:(MOVBstore [i0] {s} p w mem))
+ // cond: !config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)
+ // result: (MOVHstore [i0] {s} p w mem)
+ for {
+ i1 := v.AuxInt
+ s := v.Aux
+ _ = v.Args[2]
+ p := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64SRWconst {
break
}
- _ = x1.Args[2]
- if p != x1.Args[0] {
+ if v_1.AuxInt != 8 {
break
}
- x1_1 := x1.Args[1]
- if x1_1.Op != OpPPC64SRDconst {
+ w := v_1.Args[0]
+ x0 := v.Args[2]
+ if x0.Op != OpPPC64MOVBstore {
break
}
- if x1_1.AuxInt != 40 {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- if w != x1_1.Args[0] {
+ _ = x0.Args[2]
+ if p != x0.Args[0] {
break
}
- x2 := x1.Args[2]
- if x2.Op != OpPPC64MOVBstore {
+ if w != x0.Args[1] {
break
}
- i4 := x2.AuxInt
- if x2.Aux != s {
+ mem := x0.Args[2]
+ if !(!config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)) {
break
}
- _ = x2.Args[2]
- if p != x2.Args[0] {
+ v.reset(OpPPC64MOVHstore)
+ v.AuxInt = i0
+ v.Aux = s
+ v.AddArg(p)
+ v.AddArg(w)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [i1] {s} p (SRDconst w [8]) x0:(MOVBstore [i0] {s} p w mem))
+ // cond: !config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)
+ // result: (MOVHstore [i0] {s} p w mem)
+ for {
+ i1 := v.AuxInt
+ s := v.Aux
+ _ = v.Args[2]
+ p := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64SRDconst {
break
}
- x2_1 := x2.Args[1]
- if x2_1.Op != OpPPC64SRDconst {
+ if v_1.AuxInt != 8 {
break
}
- if x2_1.AuxInt != 32 {
+ w := v_1.Args[0]
+ x0 := v.Args[2]
+ if x0.Op != OpPPC64MOVBstore {
break
}
- if w != x2_1.Args[0] {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- x3 := x2.Args[2]
- if x3.Op != OpPPC64MOVBstore {
+ _ = x0.Args[2]
+ if p != x0.Args[0] {
break
}
- i3 := x3.AuxInt
- if x3.Aux != s {
+ if w != x0.Args[1] {
break
}
- _ = x3.Args[2]
- if p != x3.Args[0] {
+ mem := x0.Args[2]
+ if !(!config.BigEndian && x0.Uses == 1 && i1 == i0+1 && clobber(x0)) {
break
}
- x3_1 := x3.Args[1]
- if x3_1.Op != OpPPC64SRDconst {
+ v.reset(OpPPC64MOVHstore)
+ v.AuxInt = i0
+ v.Aux = s
+ v.AddArg(p)
+ v.AddArg(w)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVBstore [i7] {s} p (SRDconst w [56]) x0:(MOVBstore [i6] {s} p (SRDconst w [48]) x1:(MOVBstore [i5] {s} p (SRDconst w [40]) x2:(MOVBstore [i4] {s} p (SRDconst w [32]) x3:(MOVWstore [i0] {s} p w mem)))))
+ // cond: !config.BigEndian && i0%4 == 0 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3)
+ // result: (MOVDstore [i0] {s} p w mem)
+ for {
+ i7 := v.AuxInt
+ s := v.Aux
+ _ = v.Args[2]
+ p := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64SRDconst {
break
}
- if x3_1.AuxInt != 24 {
+ if v_1.AuxInt != 56 {
break
}
- if w != x3_1.Args[0] {
+ w := v_1.Args[0]
+ x0 := v.Args[2]
+ if x0.Op != OpPPC64MOVBstore {
break
}
- x4 := x3.Args[2]
- if x4.Op != OpPPC64MOVBstore {
+ i6 := x0.AuxInt
+ if x0.Aux != s {
break
}
- i2 := x4.AuxInt
- if x4.Aux != s {
+ _ = x0.Args[2]
+ if p != x0.Args[0] {
break
}
- _ = x4.Args[2]
- if p != x4.Args[0] {
+ x0_1 := x0.Args[1]
+ if x0_1.Op != OpPPC64SRDconst {
break
}
- x4_1 := x4.Args[1]
- if x4_1.Op != OpPPC64SRDconst {
+ if x0_1.AuxInt != 48 {
break
}
- if x4_1.AuxInt != 16 {
+ if w != x0_1.Args[0] {
break
}
- if w != x4_1.Args[0] {
+ x1 := x0.Args[2]
+ if x1.Op != OpPPC64MOVBstore {
break
}
- x5 := x4.Args[2]
- if x5.Op != OpPPC64MOVBstore {
+ i5 := x1.AuxInt
+ if x1.Aux != s {
break
}
- i1 := x5.AuxInt
- if x5.Aux != s {
+ _ = x1.Args[2]
+ if p != x1.Args[0] {
break
}
- _ = x5.Args[2]
- if p != x5.Args[0] {
+ x1_1 := x1.Args[1]
+ if x1_1.Op != OpPPC64SRDconst {
break
}
- x5_1 := x5.Args[1]
- if x5_1.Op != OpPPC64SRDconst {
+ if x1_1.AuxInt != 40 {
break
}
- if x5_1.AuxInt != 8 {
+ if w != x1_1.Args[0] {
break
}
- if w != x5_1.Args[0] {
+ x2 := x1.Args[2]
+ if x2.Op != OpPPC64MOVBstore {
break
}
- x6 := x5.Args[2]
- if x6.Op != OpPPC64MOVBstore {
+ i4 := x2.AuxInt
+ if x2.Aux != s {
break
}
- i0 := x6.AuxInt
- if x6.Aux != s {
+ _ = x2.Args[2]
+ if p != x2.Args[0] {
break
}
- _ = x6.Args[2]
- if p != x6.Args[0] {
+ x2_1 := x2.Args[1]
+ if x2_1.Op != OpPPC64SRDconst {
+ break
+ }
+ if x2_1.AuxInt != 32 {
+ break
+ }
+ if w != x2_1.Args[0] {
+ break
+ }
+ x3 := x2.Args[2]
+ if x3.Op != OpPPC64MOVWstore {
+ break
+ }
+ i0 := x3.AuxInt
+ if x3.Aux != s {
+ break
+ }
+ _ = x3.Args[2]
+ if p != x3.Args[0] {
break
}
- if w != x6.Args[1] {
+ if w != x3.Args[1] {
break
}
- mem := x6.Args[2]
- if !(!config.BigEndian && i0%4 == 0 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6)) {
+ mem := x3.Args[2]
+ if !(!config.BigEndian && i0%4 == 0 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3)) {
break
}
v.reset(OpPPC64MOVDstore)
return false
}
func rewriteValuePPC64_OpPPC64MOVHstore_0(v *Value) bool {
+ b := v.Block
+ _ = b
+ config := b.Func.Config
+ _ = config
// match: (MOVHstore [off1] {sym} (ADDconst [off2] x) val mem)
// cond: is16Bit(off1+off2)
// result: (MOVHstore [off1+off2] {sym} x val mem)
v.AddArg(mem)
return true
}
- return false
-}
-func rewriteValuePPC64_OpPPC64MOVHstorezero_0(v *Value) bool {
- // match: (MOVHstorezero [off1] {sym} (ADDconst [off2] x) mem)
- // cond: is16Bit(off1+off2)
- // result: (MOVHstorezero [off1+off2] {sym} x mem)
+ // match: (MOVHstore [off] {sym} ptr (MOVWreg x) mem)
+ // cond:
+ // result: (MOVHstore [off] {sym} ptr x mem)
for {
- off1 := v.AuxInt
+ off := v.AuxInt
sym := v.Aux
- _ = v.Args[1]
- v_0 := v.Args[0]
- if v_0.Op != OpPPC64ADDconst {
- break
- }
- off2 := v_0.AuxInt
- x := v_0.Args[0]
- mem := v.Args[1]
- if !(is16Bit(off1 + off2)) {
+ _ = v.Args[2]
+ ptr := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64MOVWreg {
break
}
- v.reset(OpPPC64MOVHstorezero)
- v.AuxInt = off1 + off2
+ x := v_1.Args[0]
+ mem := v.Args[2]
+ v.reset(OpPPC64MOVHstore)
+ v.AuxInt = off
v.Aux = sym
+ v.AddArg(ptr)
v.AddArg(x)
v.AddArg(mem)
return true
}
- // match: (MOVHstorezero [off1] {sym1} p:(MOVDaddr [off2] {sym2} x) mem)
- // cond: canMergeSym(sym1,sym2) && (x.Op != OpSB || p.Uses == 1)
- // result: (MOVHstorezero [off1+off2] {mergeSym(sym1,sym2)} x mem)
+ // match: (MOVHstore [off] {sym} ptr (MOVWZreg x) mem)
+ // cond:
+ // result: (MOVHstore [off] {sym} ptr x mem)
for {
- off1 := v.AuxInt
- sym1 := v.Aux
- _ = v.Args[1]
- p := v.Args[0]
- if p.Op != OpPPC64MOVDaddr {
- break
- }
- off2 := p.AuxInt
- sym2 := p.Aux
- x := p.Args[0]
- mem := v.Args[1]
- if !(canMergeSym(sym1, sym2) && (x.Op != OpSB || p.Uses == 1)) {
+ off := v.AuxInt
+ sym := v.Aux
+ _ = v.Args[2]
+ ptr := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64MOVWZreg {
break
}
- v.reset(OpPPC64MOVHstorezero)
- v.AuxInt = off1 + off2
- v.Aux = mergeSym(sym1, sym2)
+ x := v_1.Args[0]
+ mem := v.Args[2]
+ v.reset(OpPPC64MOVHstore)
+ v.AuxInt = off
+ v.Aux = sym
+ v.AddArg(ptr)
v.AddArg(x)
v.AddArg(mem)
return true
}
- return false
-}
-func rewriteValuePPC64_OpPPC64MOVWZload_0(v *Value) bool {
- // match: (MOVWZload [off1] {sym1} p:(MOVDaddr [off2] {sym2} ptr) mem)
- // cond: canMergeSym(sym1,sym2) && (ptr.Op != OpSB || p.Uses == 1)
- // result: (MOVWZload [off1+off2] {mergeSym(sym1,sym2)} ptr mem)
+ // match: (MOVHstore [i1] {s} p (SRWconst w [16]) x0:(MOVHstore [i0] {s} p w mem))
+ // cond: !config.BigEndian && x0.Uses == 1 && i1 == i0+2 && clobber(x0)
+ // result: (MOVWstore [i0] {s} p w mem)
for {
- off1 := v.AuxInt
- sym1 := v.Aux
- _ = v.Args[1]
+ i1 := v.AuxInt
+ s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
- if p.Op != OpPPC64MOVDaddr {
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64SRWconst {
break
}
- off2 := p.AuxInt
- sym2 := p.Aux
- ptr := p.Args[0]
- mem := v.Args[1]
- if !(canMergeSym(sym1, sym2) && (ptr.Op != OpSB || p.Uses == 1)) {
+ if v_1.AuxInt != 16 {
break
}
- v.reset(OpPPC64MOVWZload)
- v.AuxInt = off1 + off2
- v.Aux = mergeSym(sym1, sym2)
- v.AddArg(ptr)
- v.AddArg(mem)
- return true
- }
- // match: (MOVWZload [off1] {sym} (ADDconst [off2] x) mem)
- // cond: is16Bit(off1+off2)
- // result: (MOVWZload [off1+off2] {sym} x mem)
- for {
- off1 := v.AuxInt
- sym := v.Aux
- _ = v.Args[1]
- v_0 := v.Args[0]
- if v_0.Op != OpPPC64ADDconst {
+ w := v_1.Args[0]
+ x0 := v.Args[2]
+ if x0.Op != OpPPC64MOVHstore {
break
}
- off2 := v_0.AuxInt
- x := v_0.Args[0]
- mem := v.Args[1]
- if !(is16Bit(off1 + off2)) {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
+ break
+ }
+ _ = x0.Args[2]
+ if p != x0.Args[0] {
+ break
+ }
+ if w != x0.Args[1] {
+ break
+ }
+ mem := x0.Args[2]
+ if !(!config.BigEndian && x0.Uses == 1 && i1 == i0+2 && clobber(x0)) {
+ break
+ }
+ v.reset(OpPPC64MOVWstore)
+ v.AuxInt = i0
+ v.Aux = s
+ v.AddArg(p)
+ v.AddArg(w)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVHstore [i1] {s} p (SRDconst w [16]) x0:(MOVHstore [i0] {s} p w mem))
+ // cond: !config.BigEndian && x0.Uses == 1 && i1 == i0+2 && clobber(x0)
+ // result: (MOVWstore [i0] {s} p w mem)
+ for {
+ i1 := v.AuxInt
+ s := v.Aux
+ _ = v.Args[2]
+ p := v.Args[0]
+ v_1 := v.Args[1]
+ if v_1.Op != OpPPC64SRDconst {
+ break
+ }
+ if v_1.AuxInt != 16 {
+ break
+ }
+ w := v_1.Args[0]
+ x0 := v.Args[2]
+ if x0.Op != OpPPC64MOVHstore {
+ break
+ }
+ i0 := x0.AuxInt
+ if x0.Aux != s {
+ break
+ }
+ _ = x0.Args[2]
+ if p != x0.Args[0] {
+ break
+ }
+ if w != x0.Args[1] {
+ break
+ }
+ mem := x0.Args[2]
+ if !(!config.BigEndian && x0.Uses == 1 && i1 == i0+2 && clobber(x0)) {
+ break
+ }
+ v.reset(OpPPC64MOVWstore)
+ v.AuxInt = i0
+ v.Aux = s
+ v.AddArg(p)
+ v.AddArg(w)
+ v.AddArg(mem)
+ return true
+ }
+ return false
+}
+func rewriteValuePPC64_OpPPC64MOVHstorezero_0(v *Value) bool {
+ // match: (MOVHstorezero [off1] {sym} (ADDconst [off2] x) mem)
+ // cond: is16Bit(off1+off2)
+ // result: (MOVHstorezero [off1+off2] {sym} x mem)
+ for {
+ off1 := v.AuxInt
+ sym := v.Aux
+ _ = v.Args[1]
+ v_0 := v.Args[0]
+ if v_0.Op != OpPPC64ADDconst {
+ break
+ }
+ off2 := v_0.AuxInt
+ x := v_0.Args[0]
+ mem := v.Args[1]
+ if !(is16Bit(off1 + off2)) {
+ break
+ }
+ v.reset(OpPPC64MOVHstorezero)
+ v.AuxInt = off1 + off2
+ v.Aux = sym
+ v.AddArg(x)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVHstorezero [off1] {sym1} p:(MOVDaddr [off2] {sym2} x) mem)
+ // cond: canMergeSym(sym1,sym2) && (x.Op != OpSB || p.Uses == 1)
+ // result: (MOVHstorezero [off1+off2] {mergeSym(sym1,sym2)} x mem)
+ for {
+ off1 := v.AuxInt
+ sym1 := v.Aux
+ _ = v.Args[1]
+ p := v.Args[0]
+ if p.Op != OpPPC64MOVDaddr {
+ break
+ }
+ off2 := p.AuxInt
+ sym2 := p.Aux
+ x := p.Args[0]
+ mem := v.Args[1]
+ if !(canMergeSym(sym1, sym2) && (x.Op != OpSB || p.Uses == 1)) {
+ break
+ }
+ v.reset(OpPPC64MOVHstorezero)
+ v.AuxInt = off1 + off2
+ v.Aux = mergeSym(sym1, sym2)
+ v.AddArg(x)
+ v.AddArg(mem)
+ return true
+ }
+ return false
+}
+func rewriteValuePPC64_OpPPC64MOVWZload_0(v *Value) bool {
+ // match: (MOVWZload [off1] {sym1} p:(MOVDaddr [off2] {sym2} ptr) mem)
+ // cond: canMergeSym(sym1,sym2) && (ptr.Op != OpSB || p.Uses == 1)
+ // result: (MOVWZload [off1+off2] {mergeSym(sym1,sym2)} ptr mem)
+ for {
+ off1 := v.AuxInt
+ sym1 := v.Aux
+ _ = v.Args[1]
+ p := v.Args[0]
+ if p.Op != OpPPC64MOVDaddr {
+ break
+ }
+ off2 := p.AuxInt
+ sym2 := p.Aux
+ ptr := p.Args[0]
+ mem := v.Args[1]
+ if !(canMergeSym(sym1, sym2) && (ptr.Op != OpSB || p.Uses == 1)) {
+ break
+ }
+ v.reset(OpPPC64MOVWZload)
+ v.AuxInt = off1 + off2
+ v.Aux = mergeSym(sym1, sym2)
+ v.AddArg(ptr)
+ v.AddArg(mem)
+ return true
+ }
+ // match: (MOVWZload [off1] {sym} (ADDconst [off2] x) mem)
+ // cond: is16Bit(off1+off2)
+ // result: (MOVWZload [off1+off2] {sym} x mem)
+ for {
+ off1 := v.AuxInt
+ sym := v.Aux
+ _ = v.Args[1]
+ v_0 := v.Args[0]
+ if v_0.Op != OpPPC64ADDconst {
+ break
+ }
+ off2 := v_0.AuxInt
+ x := v_0.Args[0]
+ mem := v.Args[1]
+ if !(is16Bit(off1 + off2)) {
break
}
v.reset(OpPPC64MOVWZload)
v0.AddArg(mem)
return true
}
+ // match: (OR <t> x0:(MOVBZload [i0] {s} p mem) o1:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))
+ // cond: !config.BigEndian && i1 == i0+1 && x0.Uses ==1 && x1.Uses == 1 && o1.Uses == 1 && mergePoint(b, x0, x1) != nil && clobber(x0) && clobber(x1) && clobber(o1)
+ // result: @mergePoint(b,x0,x1) (MOVHZload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ x0 := v.Args[0]
+ if x0.Op != OpPPC64MOVBZload {
+ break
+ }
+ i0 := x0.AuxInt
+ s := x0.Aux
+ _ = x0.Args[1]
+ p := x0.Args[0]
+ mem := x0.Args[1]
+ o1 := v.Args[1]
+ if o1.Op != OpPPC64SLDconst {
+ break
+ }
+ if o1.AuxInt != 8 {
+ break
+ }
+ x1 := o1.Args[0]
+ if x1.Op != OpPPC64MOVBZload {
+ break
+ }
+ i1 := x1.AuxInt
+ if x1.Aux != s {
+ break
+ }
+ _ = x1.Args[1]
+ if p != x1.Args[0] {
+ break
+ }
+ if mem != x1.Args[1] {
+ break
+ }
+ if !(!config.BigEndian && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && o1.Uses == 1 && mergePoint(b, x0, x1) != nil && clobber(x0) && clobber(x1) && clobber(o1)) {
+ break
+ }
+ b = mergePoint(b, x0, x1)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVHZload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> o1:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))
+ // cond: !config.BigEndian && i1 == i0+1 && x0.Uses ==1 && x1.Uses == 1 && o1.Uses == 1 && mergePoint(b, x0, x1) != nil && clobber(x0) && clobber(x1) && clobber(o1)
+ // result: @mergePoint(b,x0,x1) (MOVHZload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ o1 := v.Args[0]
+ if o1.Op != OpPPC64SLDconst {
+ break
+ }
+ if o1.AuxInt != 8 {
+ break
+ }
+ x1 := o1.Args[0]
+ if x1.Op != OpPPC64MOVBZload {
+ break
+ }
+ i1 := x1.AuxInt
+ s := x1.Aux
+ _ = x1.Args[1]
+ p := x1.Args[0]
+ mem := x1.Args[1]
+ x0 := v.Args[1]
+ if x0.Op != OpPPC64MOVBZload {
+ break
+ }
+ i0 := x0.AuxInt
+ if x0.Aux != s {
+ break
+ }
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
+ break
+ }
+ if mem != x0.Args[1] {
+ break
+ }
+ if !(!config.BigEndian && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && o1.Uses == 1 && mergePoint(b, x0, x1) != nil && clobber(x0) && clobber(x1) && clobber(o1)) {
+ break
+ }
+ b = mergePoint(b, x0, x1)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVHZload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
// match: (OR <t> s1:(SLWconst x2:(MOVBZload [i3] {s} p mem) [24]) o0:(OR <t> s0:(SLWconst x1:(MOVBZload [i2] {s} p mem) [16]) x0:(MOVHZload [i0] {s} p mem)))
// cond: !config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses ==1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0)
// result: @mergePoint(b,x0,x1,x2) (MOVWZload <t> {s} [i0] p mem)
v0.AddArg(mem)
return true
}
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))))))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
+ return false
+}
+func rewriteValuePPC64_OpPPC64OR_20(v *Value) bool {
+ b := v.Block
+ _ = b
+ config := b.Func.Config
+ _ = config
+ // match: (OR <t> s1:(SLDconst x2:(MOVBZload [i3] {s} p mem) [24]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i2] {s} p mem) [16]) x0:(MOVHZload [i0] {s} p mem)))
+ // cond: !config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses ==1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0)
+ // result: @mergePoint(b,x0,x1,x2) (MOVWZload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ s1 := v.Args[0]
+ if s1.Op != OpPPC64SLDconst {
break
}
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
+ if s1.AuxInt != 24 {
break
}
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
+ x2 := s1.Args[0]
+ if x2.Op != OpPPC64MOVBZload {
break
}
- if o5.Type != t {
+ i3 := x2.AuxInt
+ s := x2.Aux
+ _ = x2.Args[1]
+ p := x2.Args[0]
+ mem := x2.Args[1]
+ o0 := v.Args[1]
+ if o0.Op != OpPPC64OR {
break
}
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
+ if o0.Type != t {
break
}
- if s5.AuxInt != 48 {
+ _ = o0.Args[1]
+ s0 := o0.Args[0]
+ if s0.Op != OpPPC64SLDconst {
break
}
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
+ if s0.AuxInt != 16 {
break
}
- i6 := x6.AuxInt
- if x6.Aux != s {
+ x1 := s0.Args[0]
+ if x1.Op != OpPPC64MOVBZload {
break
}
- _ = x6.Args[1]
- if p != x6.Args[0] {
+ i2 := x1.AuxInt
+ if x1.Aux != s {
break
}
- if mem != x6.Args[1] {
+ _ = x1.Args[1]
+ if p != x1.Args[0] {
break
}
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
+ if mem != x1.Args[1] {
break
}
- if o4.Type != t {
+ x0 := o0.Args[1]
+ if x0.Op != OpPPC64MOVHZload {
break
}
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- if s4.AuxInt != 40 {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
+ if mem != x0.Args[1] {
break
}
- i5 := x5.AuxInt
- if x5.Aux != s {
+ if !(!config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0)) {
break
}
- _ = x5.Args[1]
- if p != x5.Args[0] {
+ b = mergePoint(b, x0, x1, x2)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVWZload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> s1:(SLDconst x2:(MOVBZload [i3] {s} p mem) [24]) o0:(OR <t> x0:(MOVHZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i2] {s} p mem) [16])))
+ // cond: !config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses ==1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0)
+ // result: @mergePoint(b,x0,x1,x2) (MOVWZload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ s1 := v.Args[0]
+ if s1.Op != OpPPC64SLDconst {
break
}
- if mem != x5.Args[1] {
+ if s1.AuxInt != 24 {
break
}
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
+ x2 := s1.Args[0]
+ if x2.Op != OpPPC64MOVBZload {
break
}
- if o3.Type != t {
+ i3 := x2.AuxInt
+ s := x2.Aux
+ _ = x2.Args[1]
+ p := x2.Args[0]
+ mem := x2.Args[1]
+ o0 := v.Args[1]
+ if o0.Op != OpPPC64OR {
break
}
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
+ if o0.Type != t {
break
}
- if s3.AuxInt != 32 {
+ _ = o0.Args[1]
+ x0 := o0.Args[0]
+ if x0.Op != OpPPC64MOVHZload {
break
}
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- i4 := x4.AuxInt
- if x4.Aux != s {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- _ = x4.Args[1]
- if p != x4.Args[0] {
+ if mem != x0.Args[1] {
break
}
- if mem != x4.Args[1] {
+ s0 := o0.Args[1]
+ if s0.Op != OpPPC64SLDconst {
break
}
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
+ if s0.AuxInt != 16 {
break
}
- if o2.Type != t {
+ x1 := s0.Args[0]
+ if x1.Op != OpPPC64MOVBZload {
break
}
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
+ i2 := x1.AuxInt
+ if x1.Aux != s {
break
}
- if s2.AuxInt != 24 {
+ _ = x1.Args[1]
+ if p != x1.Args[0] {
break
}
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
+ if mem != x1.Args[1] {
break
}
- i3 := x3.AuxInt
- if x3.Aux != s {
+ if !(!config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0)) {
break
}
- _ = x3.Args[1]
- if p != x3.Args[0] {
+ b = mergePoint(b, x0, x1, x2)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVWZload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i2] {s} p mem) [16]) x0:(MOVHZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i3] {s} p mem) [24]))
+ // cond: !config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses ==1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0)
+ // result: @mergePoint(b,x0,x1,x2) (MOVWZload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ o0 := v.Args[0]
+ if o0.Op != OpPPC64OR {
break
}
- if mem != x3.Args[1] {
+ if o0.Type != t {
+ break
+ }
+ _ = o0.Args[1]
+ s0 := o0.Args[0]
+ if s0.Op != OpPPC64SLDconst {
+ break
+ }
+ if s0.AuxInt != 16 {
+ break
+ }
+ x1 := s0.Args[0]
+ if x1.Op != OpPPC64MOVBZload {
+ break
+ }
+ i2 := x1.AuxInt
+ s := x1.Aux
+ _ = x1.Args[1]
+ p := x1.Args[0]
+ mem := x1.Args[1]
+ x0 := o0.Args[1]
+ if x0.Op != OpPPC64MOVHZload {
+ break
+ }
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- if o1.Type != t {
+ if mem != x0.Args[1] {
break
}
- _ = o1.Args[1]
- s1 := o1.Args[0]
+ s1 := v.Args[1]
if s1.Op != OpPPC64SLDconst {
break
}
- if s1.AuxInt != 16 {
+ if s1.AuxInt != 24 {
break
}
x2 := s1.Args[0]
if x2.Op != OpPPC64MOVBZload {
break
}
- i2 := x2.AuxInt
+ i3 := x2.AuxInt
if x2.Aux != s {
break
}
if mem != x2.Args[1] {
break
}
- o0 := o1.Args[1]
+ if !(!config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0)) {
+ break
+ }
+ b = mergePoint(b, x0, x1, x2)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVWZload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> o0:(OR <t> x0:(MOVHZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i2] {s} p mem) [16])) s1:(SLDconst x2:(MOVBZload [i3] {s} p mem) [24]))
+ // cond: !config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses ==1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0)
+ // result: @mergePoint(b,x0,x1,x2) (MOVWZload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ o0 := v.Args[0]
if o0.Op != OpPPC64OR {
break
}
break
}
_ = o0.Args[1]
- s0 := o0.Args[0]
+ x0 := o0.Args[0]
+ if x0.Op != OpPPC64MOVHZload {
+ break
+ }
+ i0 := x0.AuxInt
+ s := x0.Aux
+ _ = x0.Args[1]
+ p := x0.Args[0]
+ mem := x0.Args[1]
+ s0 := o0.Args[1]
if s0.Op != OpPPC64SLDconst {
break
}
- if s0.AuxInt != 8 {
+ if s0.AuxInt != 16 {
break
}
x1 := s0.Args[0]
if x1.Op != OpPPC64MOVBZload {
break
}
- i1 := x1.AuxInt
+ i2 := x1.AuxInt
if x1.Aux != s {
break
}
if mem != x1.Args[1] {
break
}
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
+ s1 := v.Args[1]
+ if s1.Op != OpPPC64SLDconst {
break
}
- i0 := x0.AuxInt
- if x0.Aux != s {
+ if s1.AuxInt != 24 {
break
}
- _ = x0.Args[1]
- if p != x0.Args[0] {
+ x2 := s1.Args[0]
+ if x2.Op != OpPPC64MOVBZload {
break
}
- if mem != x0.Args[1] {
+ i3 := x2.AuxInt
+ if x2.Aux != s {
+ break
+ }
+ _ = x2.Args[1]
+ if p != x2.Args[0] {
+ break
+ }
+ if mem != x2.Args[1] {
break
}
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ if !(!config.BigEndian && i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && o0.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && mergePoint(b, x0, x1, x2) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(s0) && clobber(s1) && clobber(o0)) {
break
}
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
+ b = mergePoint(b, x0, x1, x2)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVWZload, t)
v.reset(OpCopy)
v.AddArg(v0)
v0.AuxInt = i0
v0.AddArg(mem)
return true
}
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))))))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem)))))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
for {
t := v.Type
_ = v.Args[1]
if mem != x4.Args[1] {
break
}
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
+ x0 := o3.Args[1]
+ if x0.Op != OpPPC64MOVWZload {
break
}
- if o2.Type != t {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- if s2.AuxInt != 24 {
+ if mem != x0.Args[1] {
break
}
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
+ b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
v.reset(OpCopy)
v.AddArg(v0)
v0.AddArg(mem)
return true
}
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_20(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> x0:(MOVWZload {s} [i0] p mem) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
for {
t := v.Type
_ = v.Args[1]
break
}
_ = o3.Args[1]
- s3 := o3.Args[0]
+ x0 := o3.Args[0]
+ if x0.Op != OpPPC64MOVWZload {
+ break
+ }
+ i0 := x0.AuxInt
+ if x0.Aux != s {
+ break
+ }
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
+ break
+ }
+ if mem != x0.Args[1] {
+ break
+ }
+ s3 := o3.Args[1]
if s3.Op != OpPPC64SLDconst {
break
}
if mem != x4.Args[1] {
break
}
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- if o2.Type != t {
+ b = mergePoint(b, x0, x4, x5, x6, x7)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem)) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ s6 := v.Args[0]
+ if s6.Op != OpPPC64SLDconst {
break
}
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
+ if s6.AuxInt != 56 {
break
}
- if s2.AuxInt != 24 {
+ x7 := s6.Args[0]
+ if x7.Op != OpPPC64MOVBZload {
break
}
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
+ i7 := x7.AuxInt
+ s := x7.Aux
+ _ = x7.Args[1]
+ p := x7.Args[0]
+ mem := x7.Args[1]
+ o5 := v.Args[1]
+ if o5.Op != OpPPC64OR {
break
}
- i3 := x3.AuxInt
- if x3.Aux != s {
+ if o5.Type != t {
break
}
- _ = x3.Args[1]
- if p != x3.Args[0] {
+ _ = o5.Args[1]
+ s5 := o5.Args[0]
+ if s5.Op != OpPPC64SLDconst {
+ break
+ }
+ if s5.AuxInt != 48 {
break
}
- if mem != x3.Args[1] {
+ x6 := s5.Args[0]
+ if x6.Op != OpPPC64MOVBZload {
break
}
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
+ i6 := x6.AuxInt
+ if x6.Aux != s {
break
}
- if o1.Type != t {
+ _ = x6.Args[1]
+ if p != x6.Args[0] {
break
}
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
+ if mem != x6.Args[1] {
break
}
- if o0.Type != t {
+ o4 := o5.Args[1]
+ if o4.Op != OpPPC64OR {
break
}
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
+ if o4.Type != t {
break
}
- if s0.AuxInt != 8 {
+ _ = o4.Args[1]
+ o3 := o4.Args[0]
+ if o3.Op != OpPPC64OR {
break
}
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
+ if o3.Type != t {
break
}
- i1 := x1.AuxInt
- if x1.Aux != s {
+ _ = o3.Args[1]
+ s3 := o3.Args[0]
+ if s3.Op != OpPPC64SLDconst {
break
}
- _ = x1.Args[1]
- if p != x1.Args[0] {
+ if s3.AuxInt != 32 {
break
}
- if mem != x1.Args[1] {
+ x4 := s3.Args[0]
+ if x4.Op != OpPPC64MOVBZload {
break
}
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
+ i4 := x4.AuxInt
+ if x4.Aux != s {
+ break
+ }
+ _ = x4.Args[1]
+ if p != x4.Args[0] {
+ break
+ }
+ if mem != x4.Args[1] {
+ break
+ }
+ x0 := o3.Args[1]
+ if x0.Op != OpPPC64MOVWZload {
break
}
i0 := x0.AuxInt
if mem != x0.Args[1] {
break
}
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
+ s4 := o4.Args[1]
+ if s4.Op != OpPPC64SLDconst {
break
}
- if s1.AuxInt != 16 {
+ if s4.AuxInt != 40 {
break
}
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
+ x5 := s4.Args[0]
+ if x5.Op != OpPPC64MOVBZload {
break
}
- i2 := x2.AuxInt
- if x2.Aux != s {
+ i5 := x5.AuxInt
+ if x5.Aux != s {
break
}
- _ = x2.Args[1]
- if p != x2.Args[0] {
+ _ = x5.Args[1]
+ if p != x5.Args[0] {
break
}
- if mem != x2.Args[1] {
+ if mem != x5.Args[1] {
break
}
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
+ b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
v.reset(OpCopy)
v.AddArg(v0)
v0.AddArg(mem)
return true
}
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> x0:(MOVWZload {s} [i0] p mem) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
for {
t := v.Type
_ = v.Args[1]
break
}
_ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
+ o3 := o4.Args[0]
+ if o3.Op != OpPPC64OR {
break
}
- i5 := x5.AuxInt
- if x5.Aux != s {
+ if o3.Type != t {
break
}
- _ = x5.Args[1]
- if p != x5.Args[0] {
+ _ = o3.Args[1]
+ x0 := o3.Args[0]
+ if x0.Op != OpPPC64MOVWZload {
break
}
- if mem != x5.Args[1] {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- if o3.Type != t {
+ if mem != x0.Args[1] {
break
}
- _ = o3.Args[1]
- s3 := o3.Args[0]
+ s3 := o3.Args[1]
if s3.Op != OpPPC64SLDconst {
break
}
if mem != x4.Args[1] {
break
}
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
+ s4 := o4.Args[1]
+ if s4.Op != OpPPC64SLDconst {
break
}
- if s2.AuxInt != 24 {
+ if s4.AuxInt != 40 {
break
}
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
+ x5 := s4.Args[0]
+ if x5.Op != OpPPC64MOVBZload {
break
}
- i3 := x3.AuxInt
- if x3.Aux != s {
+ i5 := x5.AuxInt
+ if x5.Aux != s {
break
}
- _ = x3.Args[1]
- if p != x3.Args[0] {
+ _ = x5.Args[1]
+ if p != x5.Args[0] {
break
}
- if mem != x3.Args[1] {
+ if mem != x5.Args[1] {
break
}
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- if o1.Type != t {
+ b = mergePoint(b, x0, x4, x5, x6, x7)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ s6 := v.Args[0]
+ if s6.Op != OpPPC64SLDconst {
break
}
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
+ if s6.AuxInt != 56 {
break
}
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
+ x7 := s6.Args[0]
+ if x7.Op != OpPPC64MOVBZload {
break
}
i7 := x7.AuxInt
break
}
_ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
+ o4 := o5.Args[0]
if o4.Op != OpPPC64OR {
break
}
if mem != x4.Args[1] {
break
}
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
+ x0 := o3.Args[1]
+ if x0.Op != OpPPC64MOVWZload {
break
}
i0 := x0.AuxInt
if mem != x0.Args[1] {
break
}
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
+ s5 := o5.Args[1]
+ if s5.Op != OpPPC64SLDconst {
break
}
- if s2.AuxInt != 24 {
+ if s5.AuxInt != 48 {
break
}
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
+ x6 := s5.Args[0]
+ if x6.Op != OpPPC64MOVBZload {
break
}
- i3 := x3.AuxInt
- if x3.Aux != s {
+ i6 := x6.AuxInt
+ if x6.Aux != s {
break
}
- _ = x3.Args[1]
- if p != x3.Args[0] {
+ _ = x6.Args[1]
+ if p != x6.Args[0] {
break
}
- if mem != x3.Args[1] {
+ if mem != x6.Args[1] {
break
}
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
+ b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
v.reset(OpCopy)
v.AddArg(v0)
v0.AddArg(mem)
return true
}
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> x0:(MOVWZload {s} [i0] p mem) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
for {
t := v.Type
_ = v.Args[1]
break
}
_ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
+ o4 := o5.Args[0]
if o4.Op != OpPPC64OR {
break
}
break
}
_ = o3.Args[1]
- s3 := o3.Args[0]
+ x0 := o3.Args[0]
+ if x0.Op != OpPPC64MOVWZload {
+ break
+ }
+ i0 := x0.AuxInt
+ if x0.Aux != s {
+ break
+ }
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
+ break
+ }
+ if mem != x0.Args[1] {
+ break
+ }
+ s3 := o3.Args[1]
if s3.Op != OpPPC64SLDconst {
break
}
if mem != x4.Args[1] {
break
}
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
+ s5 := o5.Args[1]
+ if s5.Op != OpPPC64SLDconst {
break
}
- if o2.Type != t {
+ if s5.AuxInt != 48 {
break
}
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
+ x6 := s5.Args[0]
+ if x6.Op != OpPPC64MOVBZload {
break
}
- if o1.Type != t {
+ i6 := x6.AuxInt
+ if x6.Aux != s {
break
}
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
+ _ = x6.Args[1]
+ if p != x6.Args[0] {
break
}
- if s1.AuxInt != 16 {
+ if mem != x6.Args[1] {
break
}
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- i2 := x2.AuxInt
- if x2.Aux != s {
+ b = mergePoint(b, x0, x4, x5, x6, x7)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ return false
+}
+func rewriteValuePPC64_OpPPC64OR_30(v *Value) bool {
+ b := v.Block
+ _ = b
+ config := b.Func.Config
+ _ = config
+ // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem)) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ s6 := v.Args[0]
+ if s6.Op != OpPPC64SLDconst {
break
}
- _ = x2.Args[1]
- if p != x2.Args[0] {
+ if s6.AuxInt != 56 {
break
}
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
+ x7 := s6.Args[0]
+ if x7.Op != OpPPC64MOVBZload {
break
}
i7 := x7.AuxInt
break
}
_ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
+ o4 := o5.Args[0]
if o4.Op != OpPPC64OR {
break
}
break
}
_ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
+ o3 := o4.Args[0]
if o3.Op != OpPPC64OR {
break
}
if mem != x4.Args[1] {
break
}
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
+ x0 := o3.Args[1]
+ if x0.Op != OpPPC64MOVWZload {
break
}
i0 := x0.AuxInt
if x0.Aux != s {
break
}
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_30(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_40(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_50(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_60(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_70(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_80(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- s6 := v.Args[0]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- s := x7.Aux
- _ = x7.Args[1]
- p := x7.Args[0]
- mem := x7.Args[1]
- o5 := v.Args[1]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))))))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))))))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_90(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_100(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_110(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- s5 := o5.Args[0]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- s := x6.Aux
- _ = x6.Args[1]
- p := x6.Args[0]
- mem := x6.Args[1]
- o4 := o5.Args[1]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_120(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- s4 := o4.Args[0]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- s := x5.Aux
- _ = x5.Args[1]
- p := x5.Args[0]
- mem := x5.Args[1]
- o3 := o4.Args[1]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_130(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- s := x4.Aux
- _ = x4.Args[1]
- p := x4.Args[0]
- mem := x4.Args[1]
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- s := x4.Aux
- _ = x4.Args[1]
- p := x4.Args[0]
- mem := x4.Args[1]
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- s := x4.Aux
- _ = x4.Args[1]
- p := x4.Args[0]
- mem := x4.Args[1]
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- s := x4.Aux
- _ = x4.Args[1]
- p := x4.Args[0]
- mem := x4.Args[1]
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- s := x4.Aux
- _ = x4.Args[1]
- p := x4.Args[0]
- mem := x4.Args[1]
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- s := x4.Aux
- _ = x4.Args[1]
- p := x4.Args[0]
- mem := x4.Args[1]
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- s := x4.Aux
- _ = x4.Args[1]
- p := x4.Args[0]
- mem := x4.Args[1]
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]))) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- s3 := o3.Args[0]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- s := x4.Aux
- _ = x4.Args[1]
- p := x4.Args[0]
- mem := x4.Args[1]
- o2 := o3.Args[1]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- s := x3.Aux
- _ = x3.Args[1]
- p := x3.Args[0]
- mem := x3.Args[1]
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
- break
- }
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
- break
- }
- if o3.Type != t {
- break
- }
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- s := x3.Aux
- _ = x3.Args[1]
- p := x3.Args[0]
- mem := x3.Args[1]
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
- break
- }
- i0 := x0.AuxInt
- if x0.Aux != s {
- break
- }
- _ = x0.Args[1]
- if p != x0.Args[0] {
- break
- }
- if mem != x0.Args[1] {
- break
- }
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
- break
- }
- i5 := x5.AuxInt
- if x5.Aux != s {
- break
- }
- _ = x5.Args[1]
- if p != x5.Args[0] {
- break
- }
- if mem != x5.Args[1] {
- break
- }
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
- break
- }
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
- v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
- v.reset(OpCopy)
- v.AddArg(v0)
- v0.AuxInt = i0
- v0.Aux = s
- v0.AddArg(p)
- v0.AddArg(mem)
- return true
- }
- return false
-}
-func rewriteValuePPC64_OpPPC64OR_140(v *Value) bool {
- b := v.Block
- _ = b
- config := b.Func.Config
- _ = config
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
- for {
- t := v.Type
- _ = v.Args[1]
- o5 := v.Args[0]
- if o5.Op != OpPPC64OR {
- break
- }
- if o5.Type != t {
- break
- }
- _ = o5.Args[1]
- o4 := o5.Args[0]
- if o4.Op != OpPPC64OR {
- break
- }
- if o4.Type != t {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- _ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
+ if mem != x0.Args[1] {
break
}
- if o3.Type != t {
+ s4 := o4.Args[1]
+ if s4.Op != OpPPC64SLDconst {
break
}
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
+ if s4.AuxInt != 40 {
break
}
- if o2.Type != t {
+ x5 := s4.Args[0]
+ if x5.Op != OpPPC64MOVBZload {
break
}
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
+ i5 := x5.AuxInt
+ if x5.Aux != s {
break
}
- if s2.AuxInt != 24 {
+ _ = x5.Args[1]
+ if p != x5.Args[0] {
break
}
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
+ if mem != x5.Args[1] {
break
}
- i3 := x3.AuxInt
- s := x3.Aux
- _ = x3.Args[1]
- p := x3.Args[0]
- mem := x3.Args[1]
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
+ s5 := o5.Args[1]
+ if s5.Op != OpPPC64SLDconst {
break
}
- if o1.Type != t {
+ if s5.AuxInt != 48 {
break
}
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
+ x6 := s5.Args[0]
+ if x6.Op != OpPPC64MOVBZload {
break
}
- if o0.Type != t {
+ i6 := x6.AuxInt
+ if x6.Aux != s {
break
}
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
+ _ = x6.Args[1]
+ if p != x6.Args[0] {
break
}
- if s0.AuxInt != 8 {
+ if mem != x6.Args[1] {
break
}
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- i1 := x1.AuxInt
- if x1.Aux != s {
+ b = mergePoint(b, x0, x4, x5, x6, x7)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]) o5:(OR <t> o4:(OR <t> o3:(OR <t> x0:(MOVWZload {s} [i0] p mem) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ s6 := v.Args[0]
+ if s6.Op != OpPPC64SLDconst {
break
}
- _ = x1.Args[1]
- if p != x1.Args[0] {
+ if s6.AuxInt != 56 {
break
}
- if mem != x1.Args[1] {
+ x7 := s6.Args[0]
+ if x7.Op != OpPPC64MOVBZload {
break
}
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
+ i7 := x7.AuxInt
+ s := x7.Aux
+ _ = x7.Args[1]
+ p := x7.Args[0]
+ mem := x7.Args[1]
+ o5 := v.Args[1]
+ if o5.Op != OpPPC64OR {
break
}
- i0 := x0.AuxInt
- if x0.Aux != s {
+ if o5.Type != t {
break
}
- _ = x0.Args[1]
- if p != x0.Args[0] {
+ _ = o5.Args[1]
+ o4 := o5.Args[0]
+ if o4.Op != OpPPC64OR {
break
}
- if mem != x0.Args[1] {
+ if o4.Type != t {
break
}
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
+ _ = o4.Args[1]
+ o3 := o4.Args[0]
+ if o3.Op != OpPPC64OR {
break
}
- if s1.AuxInt != 16 {
+ if o3.Type != t {
break
}
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
+ _ = o3.Args[1]
+ x0 := o3.Args[0]
+ if x0.Op != OpPPC64MOVWZload {
break
}
- i2 := x2.AuxInt
- if x2.Aux != s {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- _ = x2.Args[1]
- if p != x2.Args[0] {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- if mem != x2.Args[1] {
+ if mem != x0.Args[1] {
break
}
s3 := o3.Args[1]
if mem != x6.Args[1] {
break
}
- s6 := v.Args[1]
- if s6.Op != OpPPC64SLDconst {
- break
- }
- if s6.AuxInt != 56 {
- break
- }
- x7 := s6.Args[0]
- if x7.Op != OpPPC64MOVBZload {
- break
- }
- i7 := x7.AuxInt
- if x7.Aux != s {
- break
- }
- _ = x7.Args[1]
- if p != x7.Args[0] {
- break
- }
- if mem != x7.Args[1] {
- break
- }
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
+ b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
v.reset(OpCopy)
v.AddArg(v0)
v0.AddArg(mem)
return true
}
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24]) o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]))) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem)))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
for {
t := v.Type
_ = v.Args[1]
break
}
_ = o5.Args[1]
- o4 := o5.Args[0]
+ s5 := o5.Args[0]
+ if s5.Op != OpPPC64SLDconst {
+ break
+ }
+ if s5.AuxInt != 48 {
+ break
+ }
+ x6 := s5.Args[0]
+ if x6.Op != OpPPC64MOVBZload {
+ break
+ }
+ i6 := x6.AuxInt
+ s := x6.Aux
+ _ = x6.Args[1]
+ p := x6.Args[0]
+ mem := x6.Args[1]
+ o4 := o5.Args[1]
if o4.Op != OpPPC64OR {
break
}
break
}
_ = o4.Args[1]
- o3 := o4.Args[0]
- if o3.Op != OpPPC64OR {
+ s4 := o4.Args[0]
+ if s4.Op != OpPPC64SLDconst {
break
}
- if o3.Type != t {
+ if s4.AuxInt != 40 {
break
}
- _ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
+ x5 := s4.Args[0]
+ if x5.Op != OpPPC64MOVBZload {
break
}
- if o2.Type != t {
+ i5 := x5.AuxInt
+ if x5.Aux != s {
break
}
- _ = o2.Args[1]
- s2 := o2.Args[0]
- if s2.Op != OpPPC64SLDconst {
+ _ = x5.Args[1]
+ if p != x5.Args[0] {
break
}
- if s2.AuxInt != 24 {
+ if mem != x5.Args[1] {
break
}
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
+ o3 := o4.Args[1]
+ if o3.Op != OpPPC64OR {
break
}
- i3 := x3.AuxInt
- s := x3.Aux
- _ = x3.Args[1]
- p := x3.Args[0]
- mem := x3.Args[1]
- o1 := o2.Args[1]
- if o1.Op != OpPPC64OR {
+ if o3.Type != t {
break
}
- if o1.Type != t {
+ _ = o3.Args[1]
+ s3 := o3.Args[0]
+ if s3.Op != OpPPC64SLDconst {
break
}
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
+ if s3.AuxInt != 32 {
break
}
- if o0.Type != t {
+ x4 := s3.Args[0]
+ if x4.Op != OpPPC64MOVBZload {
break
}
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
+ i4 := x4.AuxInt
+ if x4.Aux != s {
+ break
+ }
+ _ = x4.Args[1]
+ if p != x4.Args[0] {
+ break
+ }
+ if mem != x4.Args[1] {
+ break
+ }
+ x0 := o3.Args[1]
+ if x0.Op != OpPPC64MOVWZload {
break
}
i0 := x0.AuxInt
if mem != x0.Args[1] {
break
}
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
+ s6 := v.Args[1]
+ if s6.Op != OpPPC64SLDconst {
break
}
- if s0.AuxInt != 8 {
+ if s6.AuxInt != 56 {
break
}
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
+ x7 := s6.Args[0]
+ if x7.Op != OpPPC64MOVBZload {
break
}
- i1 := x1.AuxInt
- if x1.Aux != s {
+ i7 := x7.AuxInt
+ if x7.Aux != s {
break
}
- _ = x1.Args[1]
- if p != x1.Args[0] {
+ _ = x7.Args[1]
+ if p != x7.Args[0] {
break
}
- if mem != x1.Args[1] {
+ if mem != x7.Args[1] {
break
}
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- if s1.AuxInt != 16 {
+ b = mergePoint(b, x0, x4, x5, x6, x7)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> x0:(MOVWZload {s} [i0] p mem) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ o5 := v.Args[0]
+ if o5.Op != OpPPC64OR {
break
}
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
+ if o5.Type != t {
break
}
- i2 := x2.AuxInt
- if x2.Aux != s {
+ _ = o5.Args[1]
+ s5 := o5.Args[0]
+ if s5.Op != OpPPC64SLDconst {
break
}
- _ = x2.Args[1]
- if p != x2.Args[0] {
+ if s5.AuxInt != 48 {
break
}
- if mem != x2.Args[1] {
+ x6 := s5.Args[0]
+ if x6.Op != OpPPC64MOVBZload {
break
}
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
+ i6 := x6.AuxInt
+ s := x6.Aux
+ _ = x6.Args[1]
+ p := x6.Args[0]
+ mem := x6.Args[1]
+ o4 := o5.Args[1]
+ if o4.Op != OpPPC64OR {
break
}
- if s3.AuxInt != 32 {
+ if o4.Type != t {
break
}
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
+ _ = o4.Args[1]
+ s4 := o4.Args[0]
+ if s4.Op != OpPPC64SLDconst {
break
}
- i4 := x4.AuxInt
- if x4.Aux != s {
+ if s4.AuxInt != 40 {
break
}
- _ = x4.Args[1]
- if p != x4.Args[0] {
+ x5 := s4.Args[0]
+ if x5.Op != OpPPC64MOVBZload {
break
}
- if mem != x4.Args[1] {
+ i5 := x5.AuxInt
+ if x5.Aux != s {
break
}
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
+ _ = x5.Args[1]
+ if p != x5.Args[0] {
+ break
+ }
+ if mem != x5.Args[1] {
+ break
+ }
+ o3 := o4.Args[1]
+ if o3.Op != OpPPC64OR {
break
}
- if s4.AuxInt != 40 {
+ if o3.Type != t {
break
}
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
+ _ = o3.Args[1]
+ x0 := o3.Args[0]
+ if x0.Op != OpPPC64MOVWZload {
break
}
- i5 := x5.AuxInt
- if x5.Aux != s {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- _ = x5.Args[1]
- if p != x5.Args[0] {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- if mem != x5.Args[1] {
+ if mem != x0.Args[1] {
break
}
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
+ s3 := o3.Args[1]
+ if s3.Op != OpPPC64SLDconst {
break
}
- if s5.AuxInt != 48 {
+ if s3.AuxInt != 32 {
break
}
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
+ x4 := s3.Args[0]
+ if x4.Op != OpPPC64MOVBZload {
break
}
- i6 := x6.AuxInt
- if x6.Aux != s {
+ i4 := x4.AuxInt
+ if x4.Aux != s {
break
}
- _ = x6.Args[1]
- if p != x6.Args[0] {
+ _ = x4.Args[1]
+ if p != x4.Args[0] {
break
}
- if mem != x6.Args[1] {
+ if mem != x4.Args[1] {
break
}
s6 := v.Args[1]
if mem != x7.Args[1] {
break
}
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
+ b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
v.reset(OpCopy)
v.AddArg(v0)
v0.AddArg(mem)
return true
}
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem)) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
for {
t := v.Type
_ = v.Args[1]
break
}
_ = o5.Args[1]
- o4 := o5.Args[0]
+ s5 := o5.Args[0]
+ if s5.Op != OpPPC64SLDconst {
+ break
+ }
+ if s5.AuxInt != 48 {
+ break
+ }
+ x6 := s5.Args[0]
+ if x6.Op != OpPPC64MOVBZload {
+ break
+ }
+ i6 := x6.AuxInt
+ s := x6.Aux
+ _ = x6.Args[1]
+ p := x6.Args[0]
+ mem := x6.Args[1]
+ o4 := o5.Args[1]
if o4.Op != OpPPC64OR {
break
}
break
}
_ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- s := x2.Aux
- _ = x2.Args[1]
- p := x2.Args[0]
- mem := x2.Args[1]
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
+ s3 := o3.Args[0]
+ if s3.Op != OpPPC64SLDconst {
break
}
- if s0.AuxInt != 8 {
+ if s3.AuxInt != 32 {
break
}
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
+ x4 := s3.Args[0]
+ if x4.Op != OpPPC64MOVBZload {
break
}
- i1 := x1.AuxInt
- if x1.Aux != s {
+ i4 := x4.AuxInt
+ if x4.Aux != s {
break
}
- _ = x1.Args[1]
- if p != x1.Args[0] {
+ _ = x4.Args[1]
+ if p != x4.Args[0] {
break
}
- if mem != x1.Args[1] {
+ if mem != x4.Args[1] {
break
}
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
+ x0 := o3.Args[1]
+ if x0.Op != OpPPC64MOVWZload {
break
}
i0 := x0.AuxInt
if mem != x0.Args[1] {
break
}
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
- s3 := o3.Args[1]
- if s3.Op != OpPPC64SLDconst {
- break
- }
- if s3.AuxInt != 32 {
- break
- }
- x4 := s3.Args[0]
- if x4.Op != OpPPC64MOVBZload {
- break
- }
- i4 := x4.AuxInt
- if x4.Aux != s {
- break
- }
- _ = x4.Args[1]
- if p != x4.Args[0] {
- break
- }
- if mem != x4.Args[1] {
- break
- }
s4 := o4.Args[1]
if s4.Op != OpPPC64SLDconst {
break
if mem != x5.Args[1] {
break
}
- s5 := o5.Args[1]
- if s5.Op != OpPPC64SLDconst {
- break
- }
- if s5.AuxInt != 48 {
- break
- }
- x6 := s5.Args[0]
- if x6.Op != OpPPC64MOVBZload {
- break
- }
- i6 := x6.AuxInt
- if x6.Aux != s {
- break
- }
- _ = x6.Args[1]
- if p != x6.Args[0] {
- break
- }
- if mem != x6.Args[1] {
- break
- }
s6 := v.Args[1]
if s6.Op != OpPPC64SLDconst {
break
if mem != x7.Args[1] {
break
}
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
+ b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
v.reset(OpCopy)
v.AddArg(v0)
v0.AddArg(mem)
return true
}
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16]) o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]))) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ // match: (OR <t> o5:(OR <t> s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48]) o4:(OR <t> o3:(OR <t> x0:(MOVWZload {s} [i0] p mem) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]))) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
for {
t := v.Type
_ = v.Args[1]
break
}
_ = o5.Args[1]
- o4 := o5.Args[0]
+ s5 := o5.Args[0]
+ if s5.Op != OpPPC64SLDconst {
+ break
+ }
+ if s5.AuxInt != 48 {
+ break
+ }
+ x6 := s5.Args[0]
+ if x6.Op != OpPPC64MOVBZload {
+ break
+ }
+ i6 := x6.AuxInt
+ s := x6.Aux
+ _ = x6.Args[1]
+ p := x6.Args[0]
+ mem := x6.Args[1]
+ o4 := o5.Args[1]
if o4.Op != OpPPC64OR {
break
}
break
}
_ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
+ x0 := o3.Args[0]
+ if x0.Op != OpPPC64MOVWZload {
break
}
- if o2.Type != t {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- if o1.Type != t {
+ if mem != x0.Args[1] {
break
}
- _ = o1.Args[1]
- s1 := o1.Args[0]
- if s1.Op != OpPPC64SLDconst {
+ s3 := o3.Args[1]
+ if s3.Op != OpPPC64SLDconst {
break
}
- if s1.AuxInt != 16 {
+ if s3.AuxInt != 32 {
break
}
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
+ x4 := s3.Args[0]
+ if x4.Op != OpPPC64MOVBZload {
break
}
- i2 := x2.AuxInt
- s := x2.Aux
- _ = x2.Args[1]
- p := x2.Args[0]
- mem := x2.Args[1]
- o0 := o1.Args[1]
- if o0.Op != OpPPC64OR {
+ i4 := x4.AuxInt
+ if x4.Aux != s {
break
}
- if o0.Type != t {
+ _ = x4.Args[1]
+ if p != x4.Args[0] {
break
}
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
+ if mem != x4.Args[1] {
break
}
- i0 := x0.AuxInt
- if x0.Aux != s {
+ s4 := o4.Args[1]
+ if s4.Op != OpPPC64SLDconst {
break
}
- _ = x0.Args[1]
- if p != x0.Args[0] {
+ if s4.AuxInt != 40 {
break
}
- if mem != x0.Args[1] {
+ x5 := s4.Args[0]
+ if x5.Op != OpPPC64MOVBZload {
break
}
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
+ i5 := x5.AuxInt
+ if x5.Aux != s {
break
}
- if s0.AuxInt != 8 {
+ _ = x5.Args[1]
+ if p != x5.Args[0] {
break
}
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
+ if mem != x5.Args[1] {
break
}
- i1 := x1.AuxInt
- if x1.Aux != s {
+ s6 := v.Args[1]
+ if s6.Op != OpPPC64SLDconst {
+ break
+ }
+ if s6.AuxInt != 56 {
+ break
+ }
+ x7 := s6.Args[0]
+ if x7.Op != OpPPC64MOVBZload {
+ break
+ }
+ i7 := x7.AuxInt
+ if x7.Aux != s {
+ break
+ }
+ _ = x7.Args[1]
+ if p != x7.Args[0] {
+ break
+ }
+ if mem != x7.Args[1] {
+ break
+ }
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ break
+ }
+ b = mergePoint(b, x0, x4, x5, x6, x7)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ o5 := v.Args[0]
+ if o5.Op != OpPPC64OR {
break
}
- _ = x1.Args[1]
- if p != x1.Args[0] {
+ if o5.Type != t {
break
}
- if mem != x1.Args[1] {
+ _ = o5.Args[1]
+ o4 := o5.Args[0]
+ if o4.Op != OpPPC64OR {
break
}
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
+ if o4.Type != t {
break
}
- if s2.AuxInt != 24 {
+ _ = o4.Args[1]
+ s4 := o4.Args[0]
+ if s4.Op != OpPPC64SLDconst {
break
}
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
+ if s4.AuxInt != 40 {
break
}
- i3 := x3.AuxInt
- if x3.Aux != s {
+ x5 := s4.Args[0]
+ if x5.Op != OpPPC64MOVBZload {
break
}
- _ = x3.Args[1]
- if p != x3.Args[0] {
+ i5 := x5.AuxInt
+ s := x5.Aux
+ _ = x5.Args[1]
+ p := x5.Args[0]
+ mem := x5.Args[1]
+ o3 := o4.Args[1]
+ if o3.Op != OpPPC64OR {
break
}
- if mem != x3.Args[1] {
+ if o3.Type != t {
break
}
- s3 := o3.Args[1]
+ _ = o3.Args[1]
+ s3 := o3.Args[0]
if s3.Op != OpPPC64SLDconst {
break
}
if mem != x4.Args[1] {
break
}
- s4 := o4.Args[1]
- if s4.Op != OpPPC64SLDconst {
- break
- }
- if s4.AuxInt != 40 {
- break
- }
- x5 := s4.Args[0]
- if x5.Op != OpPPC64MOVBZload {
+ x0 := o3.Args[1]
+ if x0.Op != OpPPC64MOVWZload {
break
}
- i5 := x5.AuxInt
- if x5.Aux != s {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- _ = x5.Args[1]
- if p != x5.Args[0] {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- if mem != x5.Args[1] {
+ if mem != x0.Args[1] {
break
}
s5 := o5.Args[1]
if mem != x7.Args[1] {
break
}
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
+ b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
v.reset(OpCopy)
v.AddArg(v0)
v0.AddArg(mem)
return true
}
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8]) x0:(MOVBZload [i0] {s} p mem)) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ // match: (OR <t> o5:(OR <t> o4:(OR <t> s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40]) o3:(OR <t> x0:(MOVWZload {s} [i0] p mem) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]))) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
for {
t := v.Type
_ = v.Args[1]
break
}
_ = o4.Args[1]
- o3 := o4.Args[0]
+ s4 := o4.Args[0]
+ if s4.Op != OpPPC64SLDconst {
+ break
+ }
+ if s4.AuxInt != 40 {
+ break
+ }
+ x5 := s4.Args[0]
+ if x5.Op != OpPPC64MOVBZload {
+ break
+ }
+ i5 := x5.AuxInt
+ s := x5.Aux
+ _ = x5.Args[1]
+ p := x5.Args[0]
+ mem := x5.Args[1]
+ o3 := o4.Args[1]
if o3.Op != OpPPC64OR {
break
}
break
}
_ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
+ x0 := o3.Args[0]
+ if x0.Op != OpPPC64MOVWZload {
break
}
- if o2.Type != t {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
break
}
- if o1.Type != t {
+ if mem != x0.Args[1] {
break
}
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
+ s3 := o3.Args[1]
+ if s3.Op != OpPPC64SLDconst {
break
}
- if o0.Type != t {
+ if s3.AuxInt != 32 {
break
}
- _ = o0.Args[1]
- s0 := o0.Args[0]
- if s0.Op != OpPPC64SLDconst {
+ x4 := s3.Args[0]
+ if x4.Op != OpPPC64MOVBZload {
break
}
- if s0.AuxInt != 8 {
+ i4 := x4.AuxInt
+ if x4.Aux != s {
break
}
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
+ _ = x4.Args[1]
+ if p != x4.Args[0] {
break
}
- i1 := x1.AuxInt
- s := x1.Aux
- _ = x1.Args[1]
- p := x1.Args[0]
- mem := x1.Args[1]
- x0 := o0.Args[1]
- if x0.Op != OpPPC64MOVBZload {
+ if mem != x4.Args[1] {
break
}
- i0 := x0.AuxInt
- if x0.Aux != s {
+ s5 := o5.Args[1]
+ if s5.Op != OpPPC64SLDconst {
break
}
- _ = x0.Args[1]
- if p != x0.Args[0] {
+ if s5.AuxInt != 48 {
break
}
- if mem != x0.Args[1] {
+ x6 := s5.Args[0]
+ if x6.Op != OpPPC64MOVBZload {
break
}
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
+ i6 := x6.AuxInt
+ if x6.Aux != s {
break
}
- if s1.AuxInt != 16 {
+ _ = x6.Args[1]
+ if p != x6.Args[0] {
break
}
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
+ if mem != x6.Args[1] {
break
}
- i2 := x2.AuxInt
- if x2.Aux != s {
+ s6 := v.Args[1]
+ if s6.Op != OpPPC64SLDconst {
break
}
- _ = x2.Args[1]
- if p != x2.Args[0] {
+ if s6.AuxInt != 56 {
break
}
- if mem != x2.Args[1] {
+ x7 := s6.Args[0]
+ if x7.Op != OpPPC64MOVBZload {
break
}
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
+ i7 := x7.AuxInt
+ if x7.Aux != s {
break
}
- if s2.AuxInt != 24 {
+ _ = x7.Args[1]
+ if p != x7.Args[0] {
break
}
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
+ if mem != x7.Args[1] {
break
}
- i3 := x3.AuxInt
- if x3.Aux != s {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- _ = x3.Args[1]
- if p != x3.Args[0] {
+ b = mergePoint(b, x0, x4, x5, x6, x7)
+ v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
+ v.reset(OpCopy)
+ v.AddArg(v0)
+ v0.AuxInt = i0
+ v0.Aux = s
+ v0.AddArg(p)
+ v0.AddArg(mem)
+ return true
+ }
+ // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32]) x0:(MOVWZload {s} [i0] p mem)) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ for {
+ t := v.Type
+ _ = v.Args[1]
+ o5 := v.Args[0]
+ if o5.Op != OpPPC64OR {
break
}
- if mem != x3.Args[1] {
+ if o5.Type != t {
break
}
- s3 := o3.Args[1]
+ _ = o5.Args[1]
+ o4 := o5.Args[0]
+ if o4.Op != OpPPC64OR {
+ break
+ }
+ if o4.Type != t {
+ break
+ }
+ _ = o4.Args[1]
+ o3 := o4.Args[0]
+ if o3.Op != OpPPC64OR {
+ break
+ }
+ if o3.Type != t {
+ break
+ }
+ _ = o3.Args[1]
+ s3 := o3.Args[0]
if s3.Op != OpPPC64SLDconst {
break
}
break
}
i4 := x4.AuxInt
- if x4.Aux != s {
+ s := x4.Aux
+ _ = x4.Args[1]
+ p := x4.Args[0]
+ mem := x4.Args[1]
+ x0 := o3.Args[1]
+ if x0.Op != OpPPC64MOVWZload {
break
}
- _ = x4.Args[1]
- if p != x4.Args[0] {
+ i0 := x0.AuxInt
+ if x0.Aux != s {
break
}
- if mem != x4.Args[1] {
+ _ = x0.Args[1]
+ if p != x0.Args[0] {
+ break
+ }
+ if mem != x0.Args[1] {
break
}
s4 := o4.Args[1]
if mem != x7.Args[1] {
break
}
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
+ b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
v.reset(OpCopy)
v.AddArg(v0)
v0.AddArg(mem)
return true
}
- // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> o2:(OR <t> o1:(OR <t> o0:(OR <t> x0:(MOVBZload [i0] {s} p mem) s0:(SLDconst x1:(MOVBZload [i1] {s} p mem) [8])) s1:(SLDconst x2:(MOVBZload [i2] {s} p mem) [16])) s2:(SLDconst x3:(MOVBZload [i3] {s} p mem) [24])) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
- // cond: !config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)
- // result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
+ // match: (OR <t> o5:(OR <t> o4:(OR <t> o3:(OR <t> x0:(MOVWZload {s} [i0] p mem) s3:(SLDconst x4:(MOVBZload [i4] {s} p mem) [32])) s4:(SLDconst x5:(MOVBZload [i5] {s} p mem) [40])) s5:(SLDconst x6:(MOVBZload [i6] {s} p mem) [48])) s6:(SLDconst x7:(MOVBZload [i7] {s} p mem) [56]))
+ // cond: !config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses ==1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber (s6) && clobber(o3) && clobber(o4) && clobber(o5)
+ // result: @mergePoint(b,x0,x4,x5,x6,x7) (MOVDload <t> {s} [i0] p mem)
for {
t := v.Type
_ = v.Args[1]
break
}
_ = o3.Args[1]
- o2 := o3.Args[0]
- if o2.Op != OpPPC64OR {
- break
- }
- if o2.Type != t {
- break
- }
- _ = o2.Args[1]
- o1 := o2.Args[0]
- if o1.Op != OpPPC64OR {
- break
- }
- if o1.Type != t {
- break
- }
- _ = o1.Args[1]
- o0 := o1.Args[0]
- if o0.Op != OpPPC64OR {
- break
- }
- if o0.Type != t {
- break
- }
- _ = o0.Args[1]
- x0 := o0.Args[0]
- if x0.Op != OpPPC64MOVBZload {
+ x0 := o3.Args[0]
+ if x0.Op != OpPPC64MOVWZload {
break
}
i0 := x0.AuxInt
_ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
- s0 := o0.Args[1]
- if s0.Op != OpPPC64SLDconst {
- break
- }
- if s0.AuxInt != 8 {
- break
- }
- x1 := s0.Args[0]
- if x1.Op != OpPPC64MOVBZload {
- break
- }
- i1 := x1.AuxInt
- if x1.Aux != s {
- break
- }
- _ = x1.Args[1]
- if p != x1.Args[0] {
- break
- }
- if mem != x1.Args[1] {
- break
- }
- s1 := o1.Args[1]
- if s1.Op != OpPPC64SLDconst {
- break
- }
- if s1.AuxInt != 16 {
- break
- }
- x2 := s1.Args[0]
- if x2.Op != OpPPC64MOVBZload {
- break
- }
- i2 := x2.AuxInt
- if x2.Aux != s {
- break
- }
- _ = x2.Args[1]
- if p != x2.Args[0] {
- break
- }
- if mem != x2.Args[1] {
- break
- }
- s2 := o2.Args[1]
- if s2.Op != OpPPC64SLDconst {
- break
- }
- if s2.AuxInt != 24 {
- break
- }
- x3 := s2.Args[0]
- if x3.Op != OpPPC64MOVBZload {
- break
- }
- i3 := x3.AuxInt
- if x3.Aux != s {
- break
- }
- _ = x3.Args[1]
- if p != x3.Args[0] {
- break
- }
- if mem != x3.Args[1] {
- break
- }
s3 := o3.Args[1]
if s3.Op != OpPPC64SLDconst {
break
if mem != x7.Args[1] {
break
}
- if !(!config.BigEndian && i0%4 == 0 && i1 == i0+1 && i2 == i0+2 && i3 == i0+3 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && x3.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o0.Uses == 1 && o1.Uses == 1 && o2.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && s2.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x1) && clobber(x2) && clobber(x3) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s0) && clobber(s1) && clobber(s2) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o0) && clobber(o1) && clobber(o2) && clobber(o3) && clobber(o4) && clobber(o5)) {
+ if !(!config.BigEndian && i0%4 == 0 && i4 == i0+4 && i5 == i0+5 && i6 == i0+6 && i7 == i0+7 && x0.Uses == 1 && x4.Uses == 1 && x5.Uses == 1 && x6.Uses == 1 && x7.Uses == 1 && o3.Uses == 1 && o4.Uses == 1 && o5.Uses == 1 && s3.Uses == 1 && s4.Uses == 1 && s5.Uses == 1 && s6.Uses == 1 && mergePoint(b, x0, x4, x5, x6, x7) != nil && clobber(x0) && clobber(x4) && clobber(x5) && clobber(x6) && clobber(x7) && clobber(s3) && clobber(s4) && clobber(s5) && clobber(s6) && clobber(o3) && clobber(o4) && clobber(o5)) {
break
}
- b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7)
+ b = mergePoint(b, x0, x4, x5, x6, x7)
v0 := b.NewValue0(v.Pos, OpPPC64MOVDload, t)
v.reset(OpCopy)
v.AddArg(v0)