Noticed while looking at #20356.
Cuts 160k (1%) off of the cmd/compile binary.
Change-Id: If2397bc6971d6be9be6975048adecb0b5efa6d66
Reviewed-on: https://go-review.googlesource.com/43501
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
}
}
+ if n := len(args); n > 1 {
+ fmt.Fprintf(w, "_ = %s.Args[%d]\n", v, n-1) // combine some bounds checks
+ }
for i, arg := range args {
if arg == "_" {
continue
// cond:
// result: (ADCLconst [c] x f)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (ADCLconst [c] x f)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
// cond:
// result: (ADCLconst [c] x f)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
// cond:
// result: (ADCLconst [c] x f)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (ADDLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (ADDLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
// cond: d == 32-c
// result: (ROLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// cond: d == 32-c
// result: (ROLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHRLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHRWconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHRBconst {
break
// cond:
// result: (LEAL8 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
// cond:
// result: (LEAL8 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// cond:
// result: (LEAL4 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
// cond:
// result: (LEAL4 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// cond:
// result: (LEAL2 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
// cond:
// result: (LEAL2 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// cond:
// result: (LEAL2 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if y != v_1.Args[1] {
break
// cond:
// result: (LEAL2 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
if y != v_0.Args[1] {
break
// cond:
// result: (LEAL2 y x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (LEAL2 y x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (LEAL2 y x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (LEAL2 y x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (LEAL1 [c] x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
// cond:
// result: (LEAL1 [c] x y)
for {
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
// cond: x.Op != OpSB && y.Op != OpSB
// result: (LEAL1 [c] {s} x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386LEAL {
// cond: x.Op != OpSB && y.Op != OpSB
// result: (LEAL1 [c] {s} x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386NEGL {
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386NEGL {
break
// cond:
// result: (ADDLconstcarry [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (ADDLconstcarry [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(Op386LEAL1)
}
d := v_0.AuxInt
s := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(c + d)) {
}
d := v_0.AuxInt
s := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(c + d)) {
}
d := v_0.AuxInt
s := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(c + d)) {
}
d := v_0.AuxInt
s := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(c + d)) {
// cond:
// result: (ANDLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (ANDLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (CMPBconst x [int64(int8(c))])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (InvertFlags (CMPBconst x [int64(int8(c))]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
if v_0.Op != Op386ANDL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(Op386TESTB)
// cond:
// result: (CMPLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (InvertFlags (CMPLconst x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
if v_0.Op != Op386ANDL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(Op386TESTL)
// cond:
// result: (CMPWconst x [int64(int16(c))])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (InvertFlags (CMPWconst x [int64(int16(c))]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
if v_0.Op != Op386ANDL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(Op386TESTW)
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(x.Op != OpSB && y.Op != OpSB) {
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) {
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) {
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) {
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386LEAL {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVBstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVBLSX {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVBLZX {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHRLconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHRLconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
p := v.Args[0]
x := v.Args[1]
if x.Op != Op386MOVBstoreconst {
if x.Aux != s {
break
}
+ _ = x.Args[1]
if p != x.Args[0] {
break
}
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
i := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL4 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL4 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL4 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL8 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL8 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL4 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL4 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVWstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL2 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVWLSX {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVWLZX {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL2 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHRLconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHRLconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL {
break
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL1 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386LEAL2 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386ADDL {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
p := v.Args[0]
x := v.Args[1]
if x.Op != Op386MOVWstoreconst {
if x.Aux != s {
break
}
+ _ = x.Args[1]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
i := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
i := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386SHLLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != Op386ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ADDLconst {
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
// cond:
// result: (MULLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (MULLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
// cond:
// result: (ORLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (ORLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
// cond: d == 32-c
// result: (ROLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// cond: d == 32-c
// result: (ROLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHRLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHRWconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHRBconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != Op386MOVBload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
s0 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWload [i0] {s} p mem)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
x0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLload [i0] {s} p mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
s0 := o0.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLload [i0] {s} p mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i2 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
x0 := o0.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLload [i0] {s} p mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[1]
p := x2.Args[0]
mem := x2.Args[1]
o0 := v.Args[1]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWload {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLload [i0] {s} p mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[1]
p := x2.Args[0]
mem := x2.Args[1]
o0 := v.Args[1]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1==i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != Op386MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1==i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != Op386MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1==i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != Op386MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1==i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != Op386MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1==i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1==i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1==i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1==i0+1 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i2 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i2 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i2 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i2 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if idx != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if idx != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if idx != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if idx != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i2 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if idx != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i2 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if idx != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i2 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if idx != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
}
i2 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if idx != x2.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
p := x2.Args[0]
idx := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
idx := x2.Args[0]
p := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
p := x2.Args[0]
idx := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
idx := x2.Args[0]
p := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
p := x2.Args[0]
idx := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
idx := x2.Args[0]
p := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
p := x2.Args[0]
idx := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
idx := x2.Args[0]
p := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != Op386MOVWloadidx1 {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
p := x2.Args[0]
idx := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
idx := x2.Args[0]
p := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
p := x2.Args[0]
idx := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
idx := x2.Args[0]
p := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
p := x2.Args[0]
idx := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
idx := x2.Args[0]
p := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
p := x2.Args[0]
idx := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i2 == i0+2 && i3 == i0+3 && x0.Uses == 1 && x1.Uses == 1 && x2.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && o0.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) (MOVLloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != Op386SHLLconst {
break
}
i3 := x2.AuxInt
s := x2.Aux
+ _ = x2.Args[2]
idx := x2.Args[0]
p := x2.Args[1]
mem := x2.Args[2]
if o0.Op != Op386ORL {
break
}
+ _ = o0.Args[1]
s0 := o0.Args[0]
if s0.Op != Op386SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond:
// result: (SARBconst [min(c&31,7)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (SARLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (SARL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ANDLconst {
// cond:
// result: (SARWconst [min(c&31,15)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (SBBLconst [c] x f)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (SHLLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (SHLL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ANDLconst {
// cond: c&31 < 8
// result: (SHRBconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond: c&31 >= 8
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
break
// cond:
// result: (SHRLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (SHRL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386ANDLconst {
// cond: c&31 < 16
// result: (SHRWconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond: c&31 >= 16
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
break
// cond:
// result: (SUBLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (NEGL (SUBLconst <v.Type> x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
// cond:
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (SUBLconstcarry [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (XORLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != Op386MOVLconst {
// cond:
// result: (XORLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386MOVLconst {
break
// cond: d == 32-c
// result: (ROLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// cond: d == 32-c
// result: (ROLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHRLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHRWconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHLLconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SHRBconst {
break
// cond:
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (ADDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ADDL)
// cond:
// result: (ADDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ADDL)
// cond:
// result: (ADDSS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ADDSS)
// cond:
// result: (ADDLcarry x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ADDLcarry)
// cond:
// result: (ADCL x y c)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
c := v.Args[2]
// cond:
// result: (ADDSD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ADDSD)
// cond:
// result: (ADDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ADDL)
// cond:
// result: (ADDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ADDL)
// cond:
// result: (ANDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond:
// result: (ANDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond:
// result: (ANDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond:
// result: (ANDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond:
// result: (AVGLU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386AVGLU)
// result: (CALLclosure [argwid] entry closure mem)
for {
argwid := v.AuxInt
+ _ = v.Args[2]
entry := v.Args[0]
closure := v.Args[1]
mem := v.Args[2]
// result: (MOVLconvert <t> x mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVLconvert)
// cond:
// result: (DIVW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386DIVW)
// cond:
// result: (DIVWU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386DIVWU)
// cond:
// result: (DIVL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386DIVL)
// cond:
// result: (DIVSS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386DIVSS)
// cond:
// result: (DIVLU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386DIVLU)
// cond:
// result: (DIVSD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386DIVSD)
// cond:
// result: (DIVW (SignExt8to16 x) (SignExt8to16 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386DIVW)
// cond:
// result: (DIVWU (ZeroExt8to16 x) (ZeroExt8to16 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386DIVWU)
// cond:
// result: (SETEQ (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETEQ)
// cond:
// result: (SETEQ (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETEQ)
// cond:
// result: (SETEQF (UCOMISS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETEQF)
// cond:
// result: (SETEQF (UCOMISD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETEQF)
// cond:
// result: (SETEQ (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETEQ)
// cond:
// result: (SETEQ (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETEQ)
// cond:
// result: (SETEQ (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETEQ)
// cond:
// result: (SETGE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGE)
// cond:
// result: (SETAE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETAE)
// cond:
// result: (SETGE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGE)
// cond:
// result: (SETGEF (UCOMISS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGEF)
// cond:
// result: (SETAE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETAE)
// cond:
// result: (SETGEF (UCOMISD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGEF)
// cond:
// result: (SETGE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGE)
// cond:
// result: (SETAE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETAE)
// cond:
// result: (SETG (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETG)
// cond:
// result: (SETA (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETA)
// cond:
// result: (SETG (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETG)
// cond:
// result: (SETGF (UCOMISS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGF)
// cond:
// result: (SETA (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETA)
// cond:
// result: (SETGF (UCOMISD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGF)
// cond:
// result: (SETG (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETG)
// cond:
// result: (SETA (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETA)
// cond:
// result: (HMULL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386HMULL)
// cond:
// result: (HMULLU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386HMULLU)
// result: (CALLinter [argwid] entry mem)
for {
argwid := v.AuxInt
+ _ = v.Args[1]
entry := v.Args[0]
mem := v.Args[1]
v.reset(Op386CALLinter)
// cond:
// result: (SETB (CMPL idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(Op386SETB)
// cond:
// result: (SETBE (CMPL idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(Op386SETBE)
// cond:
// result: (SETLE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETLE)
// cond:
// result: (SETBE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETBE)
// cond:
// result: (SETLE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETLE)
// cond:
// result: (SETGEF (UCOMISS y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGEF)
// cond:
// result: (SETBE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETBE)
// cond:
// result: (SETGEF (UCOMISD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGEF)
// cond:
// result: (SETLE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETLE)
// cond:
// result: (SETBE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETBE)
// cond:
// result: (SETL (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETL)
// cond:
// result: (SETB (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETB)
// cond:
// result: (SETL (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETL)
// cond:
// result: (SETGF (UCOMISS y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGF)
// cond:
// result: (SETB (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETB)
// cond:
// result: (SETGF (UCOMISD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETGF)
// cond:
// result: (SETL (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETL)
// cond:
// result: (SETB (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETB)
// result: (MOVLload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) || isPtr(t)) {
// result: (MOVWload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t)) {
// result: (MOVBload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsBoolean() || is8BitInt(t)) {
// result: (MOVSSload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitFloat(t)) {
// result: (MOVSDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitFloat(t)) {
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPWconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPLconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond: uint64(c) < 16
// result: (SHLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 16
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPBconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPWconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPLconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond: uint64(c) < 32
// result: (SHLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 32
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPBconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPWconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPLconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond: uint64(c) < 8
// result: (SHLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 8
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPBconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond:
// result: (MODW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MODW)
// cond:
// result: (MODWU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MODWU)
// cond:
// result: (MODL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MODL)
// cond:
// result: (MODLU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MODLU)
// cond:
// result: (MODW (SignExt8to16 x) (SignExt8to16 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MODW)
// cond:
// result: (MODWU (ZeroExt8to16 x) (ZeroExt8to16 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MODWU)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[2]
mem := v.Args[2]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 2 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 4 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 3 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 5 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 6 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 7 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 8 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (Move [s-s%4] (ADDLconst <dst.Type> dst [s%4]) (ADDLconst <src.Type> src [s%4]) (MOVLstore dst (MOVLload src mem) mem))
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (DUFFCOPY [10*(128-s/4)] dst src mem)
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (REPMOVSL dst src (MOVLconst [s/4]) mem)
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MULL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MULL)
// cond:
// result: (MULL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MULL)
// cond:
// result: (MULSS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MULSS)
// cond:
// result: (MULLQU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MULLQU)
// cond:
// result: (MULSD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MULSD)
// cond:
// result: (MULL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386MULL)
// cond:
// result: (SETNE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETNE)
// cond:
// result: (SETNE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETNE)
// cond:
// result: (SETNEF (UCOMISS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETNEF)
// cond:
// result: (SETNEF (UCOMISD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETNEF)
// cond:
// result: (SETNE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETNE)
// cond:
// result: (SETNE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETNE)
// cond:
// result: (SETNE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SETNE)
// cond:
// result: (LoweredNilCheck ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386LoweredNilCheck)
// cond:
// result: (ORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ORL)
// cond:
// result: (ORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ORL)
// cond:
// result: (ORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ORL)
// cond:
// result: (ORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ORL)
// result: (ANDL (SHRW <t> x y) (SBBLcarrymask <t> (CMPWconst y [16])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (ANDL (SHRW <t> x y) (SBBLcarrymask <t> (CMPLconst y [16])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond: uint64(c) < 16
// result: (SHRWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 16
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (ANDL (SHRW <t> x y) (SBBLcarrymask <t> (CMPBconst y [16])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (SARW <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPWconst y [16])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SARW)
// result: (SARW <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPLconst y [16])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SARW)
// cond: uint64(c) < 16
// result: (SARWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 16
// result: (SARWconst x [15])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (SARW <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPBconst y [16])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SARW)
// result: (ANDL (SHRL <t> x y) (SBBLcarrymask <t> (CMPWconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (ANDL (SHRL <t> x y) (SBBLcarrymask <t> (CMPLconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond: uint64(c) < 32
// result: (SHRLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 32
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (ANDL (SHRL <t> x y) (SBBLcarrymask <t> (CMPBconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (SARL <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPWconst y [32])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SARL)
// result: (SARL <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPLconst y [32])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SARL)
// cond: uint64(c) < 32
// result: (SARLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 32
// result: (SARLconst x [31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (SARL <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPBconst y [32])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SARL)
// result: (ANDL (SHRB <t> x y) (SBBLcarrymask <t> (CMPWconst y [8])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (ANDL (SHRB <t> x y) (SBBLcarrymask <t> (CMPLconst y [8])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// cond: uint64(c) < 8
// result: (SHRBconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 8
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (ANDL (SHRB <t> x y) (SBBLcarrymask <t> (CMPBconst y [8])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386ANDL)
// result: (SARB <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPWconst y [8])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SARB)
// result: (SARB <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPLconst y [8])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SARB)
// cond: uint64(c) < 8
// result: (SARBconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 8
// result: (SARBconst x [7])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (SARB <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPBconst y [8])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SARB)
// result: (MOVSDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVSSstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVLstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVWstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVBstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SUBL)
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SUBL)
// cond:
// result: (SUBSS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SUBSS)
// cond:
// result: (SUBLcarry x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SUBLcarry)
// cond:
// result: (SBBL x y c)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
c := v.Args[2]
// cond:
// result: (SUBSD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SUBSD)
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SUBL)
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386SUBL)
// cond:
// result: (XORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386XORL)
// cond:
// result: (XORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386XORL)
// cond:
// result: (XORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(Op386XORL)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[1]
mem := v.Args[1]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVBstoreconst)
if v.AuxInt != 2 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVWstoreconst)
if v.AuxInt != 4 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVLstoreconst)
if v.AuxInt != 3 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVBstoreconst)
if v.AuxInt != 5 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVBstoreconst)
if v.AuxInt != 6 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVWstoreconst)
if v.AuxInt != 7 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVLstoreconst)
// result: (Zero [s-s%4] (ADDLconst destptr [s%4]) (MOVLstoreconst [0] destptr mem))
for {
s := v.AuxInt
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
if !(s%4 != 0 && s > 4) {
if v.AuxInt != 8 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVLstoreconst)
if v.AuxInt != 12 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVLstoreconst)
if v.AuxInt != 16 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(Op386MOVLstoreconst)
// result: (DUFFZERO [1*(128-s/4)] destptr (MOVLconst [0]) mem)
for {
s := v.AuxInt
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
if !(s > 16 && s <= 4*128 && s%4 == 0 && !config.noDuffDevice) {
// result: (REPSTOSL destptr (MOVLconst [s/4]) (MOVLconst [0]) mem)
for {
s := v.AuxInt
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
if !((s > 4*128 || (config.noDuffDevice && s > 16)) && s%4 == 0) {
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETL {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETL {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETLE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETLE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETG {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETG {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETGE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETGE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETEQ {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETEQ {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETNE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETNE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETB {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETB {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETBE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETBE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETA {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETA {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETAE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETAE {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETGF {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETGF {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETGEF {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETGEF {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETEQF {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETEQF {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETNEF {
break
if v.Op != Op386TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != Op386SETNEF {
break
// cond:
// result: (ADDLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (ADDLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
// cond: d==32-c
// result: (ROLLconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLLconst {
break
// cond: d==32-c
// result: (ROLLconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRWconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLLconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRBconst {
break
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64NEGL {
break
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ADDLmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVLload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ADDLmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVLload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond: is32Bit(c)
// result: (ADDQconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond: is32Bit(c)
// result: (ADDQconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
// cond: d==64-c
// result: (ROLQconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
// cond: d==64-c
// result: (ROLQconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRQconst {
break
// cond:
// result: (LEAQ8 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
// cond:
// result: (LEAQ8 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
// cond:
// result: (LEAQ4 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
// cond:
// result: (LEAQ4 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
// cond:
// result: (LEAQ2 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
// cond:
// result: (LEAQ2 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
// cond:
// result: (LEAQ2 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQ {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if y != v_1.Args[1] {
break
// cond:
// result: (LEAQ2 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
if y != v_0.Args[1] {
break
// cond:
// result: (LEAQ2 y x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQ {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (LEAQ2 y x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQ {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (LEAQ2 y x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (LEAQ2 y x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (LEAQ1 [c] x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
// cond:
// result: (LEAQ1 [c] x y)
for {
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
// cond: x.Op != OpSB && y.Op != OpSB
// result: (LEAQ1 [c] {s} x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64LEAQ {
// cond: x.Op != OpSB && y.Op != OpSB
// result: (LEAQ1 [c] {s} x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
// cond:
// result: (SUBQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond:
// result: (SUBQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64NEGQ {
break
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ADDQmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVQload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ADDQmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVQload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpAMD64LEAQ1)
}
d := v_0.AuxInt
s := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(c + d)) {
}
d := v_0.AuxInt
s := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(c + d)) {
}
d := v_0.AuxInt
s := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(c + d)) {
}
d := v_0.AuxInt
s := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(c + d)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ADDSDmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVSDload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ADDSDmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVSDload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ADDSSmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVSSload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ADDSSmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVSSload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond:
// result: (ANDLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (ANDLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ANDLmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVLload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ANDLmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVLload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond: is32Bit(c)
// result: (ANDQconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond: is32Bit(c)
// result: (ANDQconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ANDQmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVQload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ANDQmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVQload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond: c != 0
// result: x
for {
+ _ = v.Args[2]
x := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpSelect1 {
// cond:
// result: (CMPBconst x [int64(int8(c))])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (InvertFlags (CMPBconst x [int64(int8(c))]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpAMD64TESTB)
// cond:
// result: (CMPLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (InvertFlags (CMPLconst x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpAMD64TESTL)
// cond: is32Bit(c)
// result: (CMPQconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond: is32Bit(c)
// result: (InvertFlags (CMPQconst x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
if v_0.Op != OpAMD64ANDQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpAMD64TESTQ)
// cond:
// result: (CMPWconst x [int64(int16(c))])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (InvertFlags (CMPWconst x [int64(int16(c))]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpAMD64TESTW)
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(x.Op != OpSB && y.Op != OpSB) {
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) {
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) {
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) {
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is32Bit(off1+off2) && canMergeSym(sym1, sym2)) {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64LEAQ {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVBstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVBQSX {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVBQZX {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w := v.Args[1]
x0 := v.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w := v.Args[1]
x2 := v.Args[2]
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w := v.Args[1]
x6 := v.Args[2]
if x6.Aux != s {
break
}
+ _ = x6.Args[2]
if p != x6.Args[0] {
break
}
if x5.Aux != s {
break
}
+ _ = x5.Args[2]
if p != x5.Args[0] {
break
}
if x4.Aux != s {
break
}
+ _ = x4.Args[2]
if p != x4.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[2]
if p != x3.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[2]
if p != x2.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHRQconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHRQconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
p := v.Args[0]
x := v.Args[1]
if x.Op != OpAMD64MOVBstoreconst {
if x.Aux != s {
break
}
+ _ = x.Args[1]
if p != x.Args[0] {
break
}
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
i := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[3]
if p != x0.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x2.Aux != s {
break
}
+ _ = x2.Args[3]
if p != x2.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[3]
if p != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[3]
if p != x0.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x6.Aux != s {
break
}
+ _ = x6.Args[3]
if p != x6.Args[0] {
break
}
if x5.Aux != s {
break
}
+ _ = x5.Args[3]
if p != x5.Args[0] {
break
}
if x4.Aux != s {
break
}
+ _ = x4.Args[3]
if p != x4.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[3]
if p != x3.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[3]
if p != x2.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[3]
if p != x1.Args[0] {
break
}
if x0.Aux != s {
break
}
+ _ = x0.Args[3]
if p != x0.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ4 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLQSX {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLQZX {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ4 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHRQconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHRQconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ4 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
p := v.Args[0]
x := v.Args[1]
if x.Op != OpAMD64MOVLstoreconst {
if x.Aux != s {
break
}
+ _ = x.Args[1]
if p != x.Args[0] {
break
}
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
i := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
i := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ8 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ8 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ8 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ8 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ8 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ4 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ4 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVWstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ2 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVWQSX {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVWQZX {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ2 {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHRQconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHRQconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ {
break
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ1 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAQ2 {
break
}
off := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQ {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
p := v.Args[0]
x := v.Args[1]
if x.Op != OpAMD64MOVWstoreconst {
if x.Aux != s {
break
}
+ _ = x.Args[1]
if p != x.Args[0] {
break
}
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64LEAL {
break
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDLconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
i := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
x := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
i := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ADDQconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
// cond:
// result: (MULLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (MULLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
// cond: is32Bit(c)
// result: (MULQconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond: is32Bit(c)
// result: (MULQconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (MULSDmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVSDload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (MULSDmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVSDload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (MULSSmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVSSload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (MULSSmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVSSload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond:
// result: (ORLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (ORLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
// cond: d==32-c
// result: (ROLLconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLLconst {
break
// cond: d==32-c
// result: (ROLLconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRWconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLLconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRBconst {
break
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHRL {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBLcarrymask {
break
if v_1_1.Op != OpAMD64SHRL {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHRL {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBLcarrymask {
break
if v_0_1.Op != OpAMD64SHRL {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHRL {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBLcarrymask {
break
if v_1_1.Op != OpAMD64SHRL {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHRL {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBLcarrymask {
break
if v_0_1.Op != OpAMD64SHRL {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHLL {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBLcarrymask {
break
if v_1_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHRL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBLcarrymask {
break
if v_0_1.Op != OpAMD64SHLL {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHRL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHLL {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBLcarrymask {
break
if v_1_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHRL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBLcarrymask {
break
if v_0_1.Op != OpAMD64SHLL {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHRL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (ROLW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDQconst {
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHRW {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (ROLW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDQconst {
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBLcarrymask {
break
if v_1_1.Op != OpAMD64SHRW {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (ROLW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHRW {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (ROLW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBLcarrymask {
break
if v_0_1.Op != OpAMD64SHRW {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (ROLW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDLconst {
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHRW {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (ROLW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDLconst {
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBLcarrymask {
break
if v_1_1.Op != OpAMD64SHRW {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (ROLW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHRW {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (ROLW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBLcarrymask {
break
if v_0_1.Op != OpAMD64SHRW {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (RORW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRW {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDQconst {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (RORW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHRW {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (RORW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRW {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDLconst {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 2
// result: (RORW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHRW {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (ROLB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDQconst {
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHRB {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (ROLB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDQconst {
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBLcarrymask {
break
if v_1_1.Op != OpAMD64SHRB {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (ROLB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHRB {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (ROLB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBLcarrymask {
break
if v_0_1.Op != OpAMD64SHRB {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (ROLB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDLconst {
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHRB {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (ROLB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDLconst {
if v_1.Op != OpAMD64ANDL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBLcarrymask {
break
if v_1_1.Op != OpAMD64SHRB {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (ROLB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHRB {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (ROLB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBLcarrymask {
break
if v_0_1.Op != OpAMD64SHRB {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (RORB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRB {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDQconst {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (RORB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHRB {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (RORB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRB {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64ANDLconst {
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond: v.Type.Size() == 1
// result: (RORB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHRB {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
x0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
x0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y := or.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
s1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLLconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWload [i0] {s} p mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBload {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWload [i0] {s} p mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
x1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLload [i0] {s} p mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLload [i0] {s} p mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
r1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
y := or.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
s0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBloadidx1 {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBloadidx1 {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBloadidx1 {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBloadidx1 {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLLconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORL <v.Type> (SHLLconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORL {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLLconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ORLmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVLload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ORLmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVLload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond: is32Bit(c)
// result: (ORQconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond: is32Bit(c)
// result: (ORQconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
// cond: d==64-c
// result: (ROLQconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
// cond: d==64-c
// result: (ROLQconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRQconst {
break
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHRQ {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBQcarrymask {
break
if v_1_1.Op != OpAMD64SHRQ {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHRQ {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBQcarrymask {
break
if v_0_1.Op != OpAMD64SHRQ {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHRQ {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBQcarrymask {
break
if v_1_1.Op != OpAMD64SHRQ {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHRQ {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBQcarrymask {
break
if v_0_1.Op != OpAMD64SHRQ {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBQcarrymask {
break
if v_1_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHRQ {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBQcarrymask {
break
if v_0_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGQ {
if v_1.Op != OpAMD64SHRQ {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_1_0.Args[1]
if x != v_1_0.Args[0] {
break
}
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64SBBQcarrymask {
break
if v_1_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_1_1.Args[1]
if x != v_1_1.Args[0] {
break
}
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHRQ {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64ANDQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SBBQcarrymask {
break
if v_0_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_0_1.Args[1]
x := v_0_1.Args[0]
v_0_1_1 := v_0_1.Args[1]
if v_0_1_1.Op != OpAMD64NEGL {
if v_1.Op != OpAMD64SHRQ {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
x0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
x0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVLload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
x0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y := or.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
s1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y := or.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
s1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVBloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWloadidx1 <v.Type> [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVWloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVLloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVLloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVLloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVLloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpAMD64MOVLloadidx1 {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVQloadidx1 [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVWloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j0] (MOVLloadidx1 [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpAMD64SHLQconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWload [i0] {s} p mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBload {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWload [i0] {s} p mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
x1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLload [i0] {s} p mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLload [i0] {s} p mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
r1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQload [i0] {s} p mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64BSWAPL {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQload [i0] {s} p mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
r1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
y := or.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
s0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
y := or.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
s0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBloadidx1 {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBloadidx1 {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBloadidx1 {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpAMD64MOVBloadidx1 {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (ROLWconst <v.Type> [8] (MOVWloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64ROLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPL <v.Type> (MOVLloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64BSWAPL {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64BSWAPL {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64BSWAPL {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r1 := v.Args[0]
if r1.Op != OpAMD64BSWAPL {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (BSWAPQ <v.Type> (MOVQloadidx1 [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (ROLWconst <typ.UInt16> [8] (MOVWloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpAMD64SHLQconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpAMD64SHLQconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORQ <v.Type> (SHLQconst <v.Type> [j1] (BSWAPL <typ.UInt32> (MOVLloadidx1 [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpAMD64ORQ {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpAMD64SHLQconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ORQmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVQload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (ORQmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVQload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond:
// result: (RORB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond:
// result: (RORB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (ROLBconst [c&7 ] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (ROLBconst [c&7 ] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond:
// result: (RORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (ROLLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (ROLLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond:
// result: (RORQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (ROLQconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (ROLQconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (RORW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond:
// result: (RORW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (ROLWconst [c&15] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (ROLWconst [c&15] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (ROLB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond:
// result: (ROLB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (ROLBconst [(-c)&7 ] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (ROLBconst [(-c)&7 ] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond:
// result: (ROLL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (ROLLconst [(-c)&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (ROLLconst [(-c)&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond:
// result: (ROLQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (ROLQconst [(-c)&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (ROLQconst [(-c)&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (ROLW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond:
// result: (ROLW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (ROLWconst [(-c)&15] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (ROLWconst [(-c)&15] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (SARBconst [min(c&31,7)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (SARBconst [min(c&31,7)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (SARLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (SARLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond: c & 31 == 0
// result: (SARL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
// cond: c & 31 == 0
// result: (SARL x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 31 == 31
// result: (SARL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQconst {
// cond: c & 31 == 31
// result: (SARL x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 31 == 0
// result: (SARL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDLconst {
// cond: c & 31 == 0
// result: (SARL x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond: c & 31 == 31
// result: (SARL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDLconst {
// cond: c & 31 == 31
// result: (SARL x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (SARQconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (SARQconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond: c & 63 == 0
// result: (SARQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
// cond: c & 63 == 0
// result: (SARQ x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 63 == 63
// result: (SARQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQconst {
// cond: c & 63 == 63
// result: (SARQ x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 63 == 0
// result: (SARQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDLconst {
// cond: c & 63 == 0
// result: (SARQ x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond: c & 63 == 63
// result: (SARQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDLconst {
// cond: c & 63 == 63
// result: (SARQ x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (SARWconst [min(c&31,15)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (SARWconst [min(c&31,15)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
if v_0.Op != OpAMD64TESTL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpAMD64MOVLconst {
break
if v_0.Op != OpAMD64TESTL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64SHLL {
break
}
+ _ = v_0_1.Args[1]
v_0_1_0 := v_0_1.Args[0]
if v_0_1_0.Op != OpAMD64MOVLconst {
break
if v_0.Op != OpAMD64TESTQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpAMD64MOVQconst {
break
if v_0.Op != OpAMD64TESTQ {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_0_1.Args[1]
v_0_1_0 := v_0_1.Args[0]
if v_0_1_0.Op != OpAMD64MOVQconst {
break
if v_0.Op != OpAMD64TESTQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64MOVQconst {
break
if v_0.Op != OpAMD64TESTQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64MOVQconst {
if v_0.Op != OpAMD64TESTL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpAMD64MOVLconst {
break
if v_0.Op != OpAMD64TESTL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64SHLL {
break
}
+ _ = v_0_1.Args[1]
v_0_1_0 := v_0_1.Args[0]
if v_0_1_0.Op != OpAMD64MOVLconst {
break
if v_0.Op != OpAMD64TESTQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpAMD64MOVQconst {
break
if v_0.Op != OpAMD64TESTQ {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_0_1.Args[1]
v_0_1_0 := v_0_1.Args[0]
if v_0_1_0.Op != OpAMD64MOVQconst {
break
if v_0.Op != OpAMD64TESTQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64MOVQconst {
break
if v_0.Op != OpAMD64TESTQ {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpAMD64MOVQconst {
// cond:
// result: (SHLLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (SHLLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond: c & 31 == 0
// result: (SHLL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
// cond: c & 31 == 0
// result: (SHLL x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 31 == 31
// result: (SHLL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQconst {
// cond: c & 31 == 31
// result: (SHLL x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 31 == 0
// result: (SHLL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDLconst {
// cond: c & 31 == 0
// result: (SHLL x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond: c & 31 == 31
// result: (SHLL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDLconst {
// cond: c & 31 == 31
// result: (SHLL x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (SHLQconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (SHLQconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond: c & 63 == 0
// result: (SHLQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
// cond: c & 63 == 0
// result: (SHLQ x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 63 == 63
// result: (SHLQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQconst {
// cond: c & 63 == 63
// result: (SHLQ x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 63 == 0
// result: (SHLQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDLconst {
// cond: c & 63 == 0
// result: (SHLQ x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond: c & 63 == 63
// result: (SHLQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDLconst {
// cond: c & 63 == 63
// result: (SHLQ x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond: c&31 < 8
// result: (SHRBconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond: c&31 < 8
// result: (SHRBconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond: c&31 >= 8
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
break
// cond: c&31 >= 8
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
break
// cond:
// result: (SHRLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (SHRLconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond: c & 31 == 0
// result: (SHRL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
// cond: c & 31 == 0
// result: (SHRL x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 31 == 31
// result: (SHRL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQconst {
// cond: c & 31 == 31
// result: (SHRL x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 31 == 0
// result: (SHRL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDLconst {
// cond: c & 31 == 0
// result: (SHRL x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond: c & 31 == 31
// result: (SHRL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDLconst {
// cond: c & 31 == 31
// result: (SHRL x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond:
// result: (SHRQconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (SHRQconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond: c & 63 == 0
// result: (SHRQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
// cond: c & 63 == 0
// result: (SHRQ x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 63 == 63
// result: (SHRQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDQconst {
// cond: c & 63 == 63
// result: (SHRQ x (NEGQ <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGQ {
// cond: c & 63 == 0
// result: (SHRQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDLconst {
// cond: c & 63 == 0
// result: (SHRQ x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond: c & 63 == 63
// result: (SHRQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ANDLconst {
// cond: c & 63 == 63
// result: (SHRQ x (NEGL <t> y))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64NEGL {
// cond: c&31 < 16
// result: (SHRWconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond: c&31 < 16
// result: (SHRWconst [c&31] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond: c&31 >= 16
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
break
// cond: c&31 >= 16
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
break
// cond:
// result: (SUBLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (NEGL (SUBLconst <v.Type> x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
// cond:
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (SUBLmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVLload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: is32Bit(c)
// result: (SUBQconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond: is32Bit(c)
// result: (NEGQ (SUBQconst <v.Type> x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
// cond:
// result: (MOVQconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (SUBQmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVQload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (SUBSDmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVSDload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (SUBSSmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVSSload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond:
// result: (TESTBconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
// cond:
// result: (TESTBconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (TESTLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
// cond:
// result: (TESTLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond: is32Bit(c)
// result: (TESTQconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
// cond: is32Bit(c)
// result: (TESTQconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond:
// result: (TESTWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
// cond:
// result: (TESTWconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
val := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
val := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
val := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
val := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64LEAQ {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
val := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64ADDQconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
val := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64LEAQ {
// cond:
// result: (XORLconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVLconst {
// cond:
// result: (XORLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVLconst {
break
// cond: d==32-c
// result: (ROLLconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLLconst {
break
// cond: d==32-c
// result: (ROLLconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLLconst {
break
// result: (ROLWconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRWconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLLconst {
break
// result: (ROLBconst x [c])
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRBconst {
break
// cond:
// result: (MOVLconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (XORLmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVLload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (XORLmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVLload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond: is32Bit(c)
// result: (XORQconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
// cond: is32Bit(c)
// result: (XORQconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
// cond: d==64-c
// result: (ROLQconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQconst {
break
// cond: d==64-c
// result: (ROLQconst x [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHRQconst {
break
// cond:
// result: (MOVQconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (XORQmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
l := v.Args[1]
if l.Op != OpAMD64MOVQload {
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
if !(canMergeLoad(v, l, x) && clobber(l)) {
// cond: canMergeLoad(v, l, x) && clobber(l)
// result: (XORQmem x [off] {sym} ptr mem)
for {
+ _ = v.Args[1]
l := v.Args[0]
if l.Op != OpAMD64MOVQload {
break
}
off := l.AuxInt
sym := l.Aux
+ _ = l.Args[1]
ptr := l.Args[0]
mem := l.Args[1]
x := v.Args[1]
// cond:
// result: (ADDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ADDL)
// cond:
// result: (ADDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ADDL)
// cond:
// result: (ADDSS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ADDSS)
// cond:
// result: (ADDQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ADDQ)
// cond:
// result: (ADDSD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ADDSD)
// cond:
// result: (ADDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ADDL)
// cond: config.PtrSize == 8
// result: (ADDQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(config.PtrSize == 8) {
// cond: config.PtrSize == 4
// result: (ADDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(config.PtrSize == 4) {
// cond:
// result: (ANDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// cond:
// result: (ANDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// cond:
// result: (ANDQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDQ)
// cond:
// result: (ANDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// cond:
// result: (ANDL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// cond:
// result: (AddTupleFirst32 val (XADDLlock val ptr mem))
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (AddTupleFirst64 val (XADDQlock val ptr mem))
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (ANDBlock ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (CMPXCHGLlock ptr old new_ mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
old := v.Args[1]
new_ := v.Args[2]
// cond:
// result: (CMPXCHGQlock ptr old new_ mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
old := v.Args[1]
new_ := v.Args[2]
// cond:
// result: (XCHGL val ptr mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (XCHGQ val ptr mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MOVLatomicload ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVLatomicload)
// cond:
// result: (MOVQatomicload ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVQatomicload)
// cond: config.PtrSize == 8
// result: (MOVQatomicload ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(config.PtrSize == 8) {
// cond: config.PtrSize == 4
// result: (MOVLatomicload ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(config.PtrSize == 4) {
// cond:
// result: (ORBlock ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (Select1 (XCHGL <types.NewTuple(typ.UInt32,types.TypeMem)> val ptr mem))
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (Select1 (XCHGQ <types.NewTuple(typ.UInt64,types.TypeMem)> val ptr mem))
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond: config.PtrSize == 8
// result: (Select1 (XCHGQ <types.NewTuple(typ.BytePtr,types.TypeMem)> val ptr mem))
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond: config.PtrSize == 4
// result: (Select1 (XCHGL <types.NewTuple(typ.BytePtr,types.TypeMem)> val ptr mem))
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (AVGQU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64AVGQU)
// result: (CALLclosure [argwid] entry closure mem)
for {
argwid := v.AuxInt
+ _ = v.Args[2]
entry := v.Args[0]
closure := v.Args[1]
mem := v.Args[2]
// result: (MOVQconvert <t> x mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
mem := v.Args[1]
if !(config.PtrSize == 8) {
// result: (MOVLconvert <t> x mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
mem := v.Args[1]
if !(config.PtrSize == 4) {
// cond:
// result: (DIVQU2 xhi xlo y)
for {
+ _ = v.Args[2]
xhi := v.Args[0]
xlo := v.Args[1]
y := v.Args[2]
// cond:
// result: (Select0 (DIVW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (DIVSS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64DIVSS)
// cond:
// result: (Select0 (DIVLU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (DIVSD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64DIVSD)
// cond:
// result: (Select0 (DIVQU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVW (SignExt8to16 x) (SignExt8to16 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVWU (ZeroExt8to16 x) (ZeroExt8to16 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (SETEQ (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETEQ)
// cond:
// result: (SETEQ (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETEQ)
// cond:
// result: (SETEQF (UCOMISS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETEQF)
// cond:
// result: (SETEQ (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETEQ)
// cond:
// result: (SETEQF (UCOMISD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETEQF)
// cond:
// result: (SETEQ (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETEQ)
// cond:
// result: (SETEQ (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETEQ)
// cond: config.PtrSize == 8
// result: (SETEQ (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(config.PtrSize == 8) {
// cond: config.PtrSize == 4
// result: (SETEQ (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(config.PtrSize == 4) {
// cond:
// result: (SETGE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGE)
// cond:
// result: (SETAE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETAE)
// cond:
// result: (SETGE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGE)
// cond:
// result: (SETGEF (UCOMISS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGEF)
// cond:
// result: (SETAE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETAE)
// cond:
// result: (SETGE (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGE)
// cond:
// result: (SETGEF (UCOMISD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGEF)
// cond:
// result: (SETAE (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETAE)
// cond:
// result: (SETGE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGE)
// cond:
// result: (SETAE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETAE)
// cond:
// result: (SETG (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETG)
// cond:
// result: (SETA (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETA)
// cond:
// result: (SETG (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETG)
// cond:
// result: (SETGF (UCOMISS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGF)
// cond:
// result: (SETA (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETA)
// cond:
// result: (SETG (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETG)
// cond:
// result: (SETGF (UCOMISD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGF)
// cond:
// result: (SETA (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETA)
// cond:
// result: (SETG (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETG)
// cond:
// result: (SETA (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETA)
// cond:
// result: (HMULL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64HMULL)
// cond:
// result: (HMULLU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64HMULLU)
// cond:
// result: (HMULQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64HMULQ)
// cond:
// result: (HMULQU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64HMULQU)
// result: (CALLinter [argwid] entry mem)
for {
argwid := v.AuxInt
+ _ = v.Args[1]
entry := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64CALLinter)
// cond:
// result: (SETB (CMPQ idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpAMD64SETB)
// cond:
// result: (SETBE (CMPQ idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpAMD64SETBE)
// cond:
// result: (SETLE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETLE)
// cond:
// result: (SETBE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETBE)
// cond:
// result: (SETLE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETLE)
// cond:
// result: (SETGEF (UCOMISS y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGEF)
// cond:
// result: (SETBE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETBE)
// cond:
// result: (SETLE (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETLE)
// cond:
// result: (SETGEF (UCOMISD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGEF)
// cond:
// result: (SETBE (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETBE)
// cond:
// result: (SETLE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETLE)
// cond:
// result: (SETBE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETBE)
// cond:
// result: (SETL (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETL)
// cond:
// result: (SETB (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETB)
// cond:
// result: (SETL (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETL)
// cond:
// result: (SETGF (UCOMISS y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGF)
// cond:
// result: (SETB (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETB)
// cond:
// result: (SETL (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETL)
// cond:
// result: (SETGF (UCOMISD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETGF)
// cond:
// result: (SETB (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETB)
// cond:
// result: (SETL (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETL)
// cond:
// result: (SETB (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETB)
// result: (MOVQload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitInt(t) || isPtr(t) && config.PtrSize == 8) {
// result: (MOVLload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) || isPtr(t) && config.PtrSize == 4) {
// result: (MOVWload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t)) {
// result: (MOVBload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsBoolean() || is8BitInt(t)) {
// result: (MOVSSload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitFloat(t)) {
// result: (MOVSDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitFloat(t)) {
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPWconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPLconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPQconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPBconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPWconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPLconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPQconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPBconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDQ (SHLQ <t> x y) (SBBQcarrymask <t> (CMPWconst y [64])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDQ)
// result: (ANDQ (SHLQ <t> x y) (SBBQcarrymask <t> (CMPLconst y [64])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDQ)
// result: (ANDQ (SHLQ <t> x y) (SBBQcarrymask <t> (CMPQconst y [64])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDQ)
// result: (ANDQ (SHLQ <t> x y) (SBBQcarrymask <t> (CMPBconst y [64])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDQ)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPWconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPLconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPQconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHLL <t> x y) (SBBLcarrymask <t> (CMPBconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// cond:
// result: (Select1 (DIVW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVLU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVQU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVW (SignExt8to16 x) (SignExt8to16 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVWU (ZeroExt8to16 x) (ZeroExt8to16 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[2]
mem := v.Args[2]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 2 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 4 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 8 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 16 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 3 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 5 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 6 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 7 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (MOVQstore [s-8] dst (MOVQload [s-8] src mem) (MOVQstore dst (MOVQload src mem) mem))
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (Move [s-s%16] (OffPtr <dst.Type> dst [s%16]) (OffPtr <src.Type> src [s%16]) (MOVQstore dst (MOVQload src mem) mem))
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (Move [s-s%16] (OffPtr <dst.Type> dst [s%16]) (OffPtr <src.Type> src [s%16]) (MOVOstore dst (MOVOload src mem) mem))
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (DUFFCOPY [14*(64-s/16)] dst src mem)
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (REPMOVSQ dst src (MOVQconst [s/8]) mem)
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MULL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64MULL)
// cond:
// result: (MULL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64MULL)
// cond:
// result: (MULSS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64MULSS)
// cond:
// result: (MULQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64MULQ)
// cond:
// result: (MULSD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64MULSD)
// cond:
// result: (MULQU2 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64MULQU2)
// cond:
// result: (MULL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64MULL)
// cond:
// result: (SETNE (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETNE)
// cond:
// result: (SETNE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETNE)
// cond:
// result: (SETNEF (UCOMISS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETNEF)
// cond:
// result: (SETNE (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETNE)
// cond:
// result: (SETNEF (UCOMISD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETNEF)
// cond:
// result: (SETNE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETNE)
// cond:
// result: (SETNE (CMPB x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SETNE)
// cond: config.PtrSize == 8
// result: (SETNE (CMPQ x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(config.PtrSize == 8) {
// cond: config.PtrSize == 4
// result: (SETNE (CMPL x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(config.PtrSize == 4) {
// cond:
// result: (LoweredNilCheck ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64LoweredNilCheck)
// cond:
// result: (ORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ORL)
// cond:
// result: (ORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ORL)
// cond:
// result: (ORQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ORQ)
// cond:
// result: (ORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ORL)
// cond:
// result: (ORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ORL)
// result: (ANDL (SHRW <t> x y) (SBBLcarrymask <t> (CMPWconst y [16])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHRW <t> x y) (SBBLcarrymask <t> (CMPLconst y [16])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHRW <t> x y) (SBBLcarrymask <t> (CMPQconst y [16])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHRW <t> x y) (SBBLcarrymask <t> (CMPBconst y [16])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (SARW <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPWconst y [16])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARW)
// result: (SARW <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPLconst y [16])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARW)
// result: (SARW <t> x (ORQ <y.Type> y (NOTQ <y.Type> (SBBQcarrymask <y.Type> (CMPQconst y [16])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARW)
// result: (SARW <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPBconst y [16])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARW)
// result: (ANDL (SHRL <t> x y) (SBBLcarrymask <t> (CMPWconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHRL <t> x y) (SBBLcarrymask <t> (CMPLconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHRL <t> x y) (SBBLcarrymask <t> (CMPQconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHRL <t> x y) (SBBLcarrymask <t> (CMPBconst y [32])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (SARL <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPWconst y [32])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARL)
// result: (SARL <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPLconst y [32])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARL)
// result: (SARL <t> x (ORQ <y.Type> y (NOTQ <y.Type> (SBBQcarrymask <y.Type> (CMPQconst y [32])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARL)
// result: (SARL <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPBconst y [32])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARL)
// result: (ANDQ (SHRQ <t> x y) (SBBQcarrymask <t> (CMPWconst y [64])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDQ)
// result: (ANDQ (SHRQ <t> x y) (SBBQcarrymask <t> (CMPLconst y [64])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDQ)
// result: (ANDQ (SHRQ <t> x y) (SBBQcarrymask <t> (CMPQconst y [64])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDQ)
// result: (ANDQ (SHRQ <t> x y) (SBBQcarrymask <t> (CMPBconst y [64])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDQ)
// result: (SARQ <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPWconst y [64])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARQ)
// result: (SARQ <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPLconst y [64])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARQ)
// result: (SARQ <t> x (ORQ <y.Type> y (NOTQ <y.Type> (SBBQcarrymask <y.Type> (CMPQconst y [64])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARQ)
// result: (SARQ <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPBconst y [64])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARQ)
// result: (ANDL (SHRB <t> x y) (SBBLcarrymask <t> (CMPWconst y [8])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHRB <t> x y) (SBBLcarrymask <t> (CMPLconst y [8])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHRB <t> x y) (SBBLcarrymask <t> (CMPQconst y [8])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (ANDL (SHRB <t> x y) (SBBLcarrymask <t> (CMPBconst y [8])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64ANDL)
// result: (SARB <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPWconst y [8])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARB)
// result: (SARB <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPLconst y [8])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARB)
// result: (SARB <t> x (ORQ <y.Type> y (NOTQ <y.Type> (SBBQcarrymask <y.Type> (CMPQconst y [8])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARB)
// result: (SARB <t> x (ORL <y.Type> y (NOTL <y.Type> (SBBLcarrymask <y.Type> (CMPBconst y [8])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SARB)
if v_0.Op != OpAMD64AddTupleFirst32 {
break
}
+ _ = v_0.Args[1]
val := v_0.Args[0]
tuple := v_0.Args[1]
v.reset(OpAMD64ADDL)
if v_0.Op != OpAMD64AddTupleFirst64 {
break
}
+ _ = v_0.Args[1]
val := v_0.Args[0]
tuple := v_0.Args[1]
v.reset(OpAMD64ADDQ)
if v_0.Op != OpAMD64AddTupleFirst32 {
break
}
+ _ = v_0.Args[1]
tuple := v_0.Args[1]
v.reset(OpSelect1)
v.AddArg(tuple)
if v_0.Op != OpAMD64AddTupleFirst64 {
break
}
+ _ = v_0.Args[1]
tuple := v_0.Args[1]
v.reset(OpSelect1)
v.AddArg(tuple)
// result: (MOVSDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVSSstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVQstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVLstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVWstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVBstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SUBL)
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SUBL)
// cond:
// result: (SUBSS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SUBSS)
// cond:
// result: (SUBQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SUBQ)
// cond:
// result: (SUBSD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SUBSD)
// cond:
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64SUBL)
// cond: config.PtrSize == 8
// result: (SUBQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(config.PtrSize == 8) {
// cond: config.PtrSize == 4
// result: (SUBL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(config.PtrSize == 4) {
// cond:
// result: (XORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64XORL)
// cond:
// result: (XORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64XORL)
// cond:
// result: (XORQ x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64XORQ)
// cond:
// result: (XORL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAMD64XORL)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[1]
mem := v.Args[1]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVBstoreconst)
if v.AuxInt != 2 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVWstoreconst)
if v.AuxInt != 4 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVLstoreconst)
if v.AuxInt != 8 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVQstoreconst)
if v.AuxInt != 3 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVBstoreconst)
if v.AuxInt != 5 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVBstoreconst)
if v.AuxInt != 6 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVWstoreconst)
if v.AuxInt != 7 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVLstoreconst)
// result: (Zero [s-s%8] (OffPtr <destptr.Type> destptr [s%8]) (MOVQstoreconst [0] destptr mem))
for {
s := v.AuxInt
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
if !(s%8 != 0 && s > 8) {
if v.AuxInt != 16 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVQstoreconst)
if v.AuxInt != 24 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVQstoreconst)
if v.AuxInt != 32 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpAMD64MOVQstoreconst)
// result: (Zero [s-8] (OffPtr <destptr.Type> [8] destptr) (MOVQstore destptr (MOVQconst [0]) mem))
for {
s := v.AuxInt
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
if !(s <= 1024 && s%8 == 0 && s%16 != 0 && !config.noDuffDevice) {
// result: (DUFFZERO [s] destptr (MOVOconst [0]) mem)
for {
s := v.AuxInt
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
if !(s <= 1024 && s%16 == 0 && !config.noDuffDevice) {
// result: (REPSTOSQ destptr (MOVQconst [s/8]) (MOVQconst [0]) mem)
for {
s := v.AuxInt
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
if !((s > 1024 || (config.noDuffDevice && s > 32)) && s%8 == 0) {
if v.Op != OpAMD64TESTL {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64MOVLconst {
break
if v.Op != OpAMD64TESTL {
break
}
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64MOVLconst {
break
if v.Op != OpAMD64TESTQ {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64MOVQconst {
break
if v.Op != OpAMD64TESTQ {
break
}
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64MOVQconst {
break
if v.Op != OpAMD64TESTQ {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
if v.Op != OpAMD64TESTQ {
break
}
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETL {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETL {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETLE {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETLE {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETG {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETG {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETGE {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETGE {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETEQ {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETEQ {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETNE {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETNE {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETB {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETB {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETBE {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETBE {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETA {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETA {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETAE {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETAE {
break
if v.Op != OpAMD64TESTL {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLL {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64MOVLconst {
break
if v.Op != OpAMD64TESTL {
break
}
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLL {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64MOVLconst {
break
if v.Op != OpAMD64TESTQ {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SHLQ {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAMD64MOVQconst {
break
if v.Op != OpAMD64TESTQ {
break
}
+ _ = v.Args[1]
y := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64SHLQ {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAMD64MOVQconst {
break
if v.Op != OpAMD64TESTQ {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64MOVQconst {
break
if v.Op != OpAMD64TESTQ {
break
}
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAMD64MOVQconst {
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETGF {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETGF {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETGEF {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETGEF {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETEQF {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETEQF {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETNEF {
break
if v.Op != OpAMD64TESTB {
break
}
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAMD64SETNEF {
break
// cond:
// result: (ADCconst [c] x flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADCconst [c] x flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADCconst [c] x flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADCconst [c] x flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADCshiftLL x y [c] flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (ADCshiftLL x y [c] flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (ADCshiftLL x y [c] flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (ADCshiftLL x y [c] flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (ADCshiftRL x y [c] flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (ADCshiftRL x y [c] flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (ADCshiftRL x y [c] flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (ADCshiftRL x y [c] flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (ADCshiftRA x y [c] flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (ADCshiftRA x y [c] flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (ADCshiftRA x y [c] flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (ADCshiftRA x y [c] flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (ADCshiftLLreg x y z flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
flags := v.Args[2]
// cond:
// result: (ADCshiftLLreg x y z flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADCshiftLLreg x y z flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADCshiftLLreg x y z flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
flags := v.Args[2]
// cond:
// result: (ADCshiftRLreg x y z flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
flags := v.Args[2]
// cond:
// result: (ADCshiftRLreg x y z flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADCshiftRLreg x y z flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADCshiftRLreg x y z flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
flags := v.Args[2]
// cond:
// result: (ADCshiftRAreg x y z flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
flags := v.Args[2]
// cond:
// result: (ADCshiftRAreg x y z flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADCshiftRAreg x y z flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADCshiftRAreg x y z flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
flags := v.Args[2]
// result: (ADCconst [int64(int32(c+d))] x flags)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
// result: (ADCconst [int64(int32(c-d))] x flags)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
// result: (ADCconst [c] (SLLconst <x.Type> x [d]) flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ADCconst x [int64(uint32(c)<<uint64(d))] flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADCconst [c] (SLL <x.Type> x y) flags)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADCshiftLL x y [c] flags)
for {
+ _ = v.Args[3]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ADCconst [c] (SRAconst <x.Type> x [d]) flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ADCconst x [int64(int32(c)>>uint64(d))] flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADCconst [c] (SRA <x.Type> x y) flags)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADCshiftRA x y [c] flags)
for {
+ _ = v.Args[3]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ADCconst [c] (SRLconst <x.Type> x [d]) flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ADCconst x [int64(uint32(c)>>uint64(d))] flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADCconst [c] (SRL <x.Type> x y) flags)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADCshiftRL x y [c] flags)
for {
+ _ = v.Args[3]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADDshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (ADDshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (ADDshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (ADDshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (ADDshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (ADDshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (ADDshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMADDshiftLLreg)
// cond:
// result: (ADDshiftLLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADDshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMADDshiftRLreg)
// cond:
// result: (ADDshiftRLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADDshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMADDshiftRAreg)
// cond:
// result: (ADDshiftRAreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMRSBconst {
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMRSBconst {
break
// result: (RSBconst [c+d] (ADD <t> x y))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMRSBconst {
break
// result: (RSBconst [c+d] (ADD <t> x y))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMRSBconst {
break
// cond:
// result: (MULA x y a)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMUL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
a := v.Args[1]
// cond:
// result: (MULA x y a)
for {
+ _ = v.Args[1]
a := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMUL {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
y := v_1.Args[1]
v.reset(OpARMMULA)
// cond:
// result: (ADDSconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADDSconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADDSshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (ADDSshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (ADDSshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (ADDSshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (ADDSshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (ADDSshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (ADDSshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMADDSshiftLLreg)
// cond:
// result: (ADDSshiftLLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADDSshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMADDSshiftRLreg)
// cond:
// result: (ADDSshiftRLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ADDSshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMADDSshiftRAreg)
// cond:
// result: (ADDSshiftRAreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// result: (ADDSconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ADDSconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADDSconst [c] (SLL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADDSshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ADDSconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ADDSconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADDSconst [c] (SRA <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADDSshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ADDSconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ADDSconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADDSconst [c] (SRL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADDSshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ADDconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ADDconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (SRRconst [32-c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (ADDconst [c] (SLL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADDshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ADDconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ADDconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADDconst [c] (SRA <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADDshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ADDconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ADDconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (SRRconst [ c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (ADDconst [c] (SRL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADDshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ANDshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (ANDshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (ANDshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (ANDshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (ANDshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (ANDshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (ANDshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMANDshiftLLreg)
// cond:
// result: (ANDshiftLLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ANDshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMANDshiftRLreg)
// cond:
// result: (ANDshiftRLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ANDshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMANDshiftRAreg)
// cond:
// result: (ANDshiftRAreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (BIC x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMVN {
// cond:
// result: (BIC x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMVN {
break
// cond:
// result: (BICshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMVNshiftLL {
// cond:
// result: (BICshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMVNshiftLL {
break
// cond:
// result: (BICshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMVNshiftRL {
// cond:
// result: (BICshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMVNshiftRL {
break
// cond:
// result: (BICshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMVNshiftRA {
// cond:
// result: (BICshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMVNshiftRA {
break
// result: (ANDconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ANDconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARMSLLconst {
// cond:
// result: (ANDconst [c] (SLL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ANDshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ANDconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ANDconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARMSRAconst {
// cond:
// result: (ANDconst [c] (SRA <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ANDshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ANDconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ANDconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARMSRLconst {
// cond:
// result: (ANDconst [c] (SRL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ANDshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: (BICconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (BICshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (BICshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (BICshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (BICshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMBICshiftLLreg)
// cond:
// result: (BICshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMBICshiftRLreg)
// cond:
// result: (BICshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMBICshiftRAreg)
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (BICconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (BICshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (BICconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (BICshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (BICconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (BICshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (MOVWconst [c])
for {
c := v.AuxInt
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagEQ {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagLT_ULT {
// result: (MOVWconst [c])
for {
c := v.AuxInt
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagLT_UGT {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagGT_ULT {
// result: (MOVWconst [c])
for {
c := v.AuxInt
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagGT_UGT {
break
// result: (CMOVWLSconst x flags [c])
for {
c := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMInvertFlags {
// result: (MOVWconst [c])
for {
c := v.AuxInt
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagEQ {
break
// result: (MOVWconst [c])
for {
c := v.AuxInt
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagLT_ULT {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagLT_UGT {
// result: (MOVWconst [c])
for {
c := v.AuxInt
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagGT_ULT {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMFlagGT_UGT {
// result: (CMOVWHSconst x flags [c])
for {
c := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMInvertFlags {
// cond:
// result: (CMPconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (InvertFlags (CMPconst [c] x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (CMPshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (InvertFlags (CMPshiftLL x y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (CMPshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (InvertFlags (CMPshiftRL x y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (CMPshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (InvertFlags (CMPshiftRA x y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (CMPshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMCMPshiftLLreg)
// cond:
// result: (InvertFlags (CMPshiftLLreg x y z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (CMPshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMCMPshiftRLreg)
// cond:
// result: (InvertFlags (CMPshiftRLreg x y z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (CMPshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMCMPshiftRAreg)
// cond:
// result: (InvertFlags (CMPshiftRAreg x y z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (CMPD0 x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVDconst {
// cond:
// result: (CMPF0 x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVFconst {
// result: (InvertFlags (CMPconst [c] (SLLconst <x.Type> x [d])))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (CMPconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (InvertFlags (CMPconst [c] (SLL <x.Type> x y)))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (CMPshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (InvertFlags (CMPconst [c] (SRAconst <x.Type> x [d])))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (CMPconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (InvertFlags (CMPconst [c] (SRA <x.Type> x y)))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (CMPshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (InvertFlags (CMPconst [c] (SRLconst <x.Type> x [d])))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (CMPconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (InvertFlags (CMPconst [c] (SRL <x.Type> x y)))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (CMPshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVBstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) && !isSigned(x.Type)) {
if x.Op != OpARMMOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpARMMOVWreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVBstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) && isSigned(x.Type)) {
if x.Op != OpARMMOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpARMMOVWreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVBreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVBUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVHUreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVDstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVFstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVHstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) && !isSigned(x.Type)) {
if x.Op != OpARMMOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpARMMOVWreg)
v.AddArg(x)
return true
if x.Op != OpARMMOVHUload {
break
}
+ _ = x.Args[1]
v.reset(OpARMMOVWreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVHstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) && isSigned(x.Type)) {
if x.Op != OpARMMOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpARMMOVWreg)
v.AddArg(x)
return true
if x.Op != OpARMMOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpARMMOVWreg)
v.AddArg(x)
return true
if x.Op != OpARMMOVHload {
break
}
+ _ = x.Args[1]
v.reset(OpARMMOVWreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVHUreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
}
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
break
}
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDshiftLL {
break
}
c := v_0.AuxInt
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
break
}
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDshiftRL {
break
}
c := v_0.AuxInt
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
break
}
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDshiftRA {
break
}
c := v_0.AuxInt
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
// cond: isSamePtr(ptr, ptr2)
// result: x
for {
+ _ = v.Args[2]
ptr := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpARMMOVWstoreidx {
break
}
+ _ = v_2.Args[3]
ptr2 := v_2.Args[0]
if idx != v_2.Args[1] {
break
// cond:
// result: (MOVWload [c] ptr mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (MOVWload [c] ptr mem)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (MOVWloadshiftLL ptr idx [c] mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (MOVWloadshiftLL ptr idx [c] mem)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (MOVWloadshiftRL ptr idx [c] mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (MOVWloadshiftRL ptr idx [c] mem)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (MOVWloadshiftRA ptr idx [c] mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (MOVWloadshiftRA ptr idx [c] mem)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// result: x
for {
c := v.AuxInt
+ _ = v.Args[2]
ptr := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
break
}
d := v_2.AuxInt
+ _ = v_2.Args[3]
ptr2 := v_2.Args[0]
if idx != v_2.Args[1] {
break
// result: (MOVWload [int64(uint32(c)<<uint64(d))] ptr mem)
for {
d := v.AuxInt
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: x
for {
c := v.AuxInt
+ _ = v.Args[2]
ptr := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
break
}
d := v_2.AuxInt
+ _ = v_2.Args[3]
ptr2 := v_2.Args[0]
if idx != v_2.Args[1] {
break
// result: (MOVWload [int64(int32(c)>>uint64(d))] ptr mem)
for {
d := v.AuxInt
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: x
for {
c := v.AuxInt
+ _ = v.Args[2]
ptr := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
break
}
d := v_2.AuxInt
+ _ = v_2.Args[3]
ptr2 := v_2.Args[0]
if idx != v_2.Args[1] {
break
// result: (MOVWload [int64(uint32(c)>>uint64(d))] ptr mem)
for {
d := v.AuxInt
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWaddr {
break
break
}
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
break
}
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMADDshiftLL {
break
}
c := v_0.AuxInt
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
break
}
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMADDshiftRL {
break
}
c := v_0.AuxInt
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
break
}
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMADDshiftRA {
break
}
c := v_0.AuxInt
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
// cond:
// result: (MOVWstore [c] ptr val mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (MOVWstore [c] ptr val mem)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (MOVWstoreshiftLL ptr idx [c] val mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (MOVWstoreshiftLL ptr idx [c] val mem)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (MOVWstoreshiftRL ptr idx [c] val mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (MOVWstoreshiftRL ptr idx [c] val mem)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (MOVWstoreshiftRA ptr idx [c] val mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (MOVWstoreshiftRA ptr idx [c] val mem)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// result: (MOVWstore [int64(uint32(c)<<uint64(d))] ptr val mem)
for {
d := v.AuxInt
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWstore [int64(int32(c)>>uint64(d))] ptr val mem)
for {
d := v.AuxInt
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWstore [int64(uint32(c)>>uint64(d))] ptr val mem)
for {
d := v.AuxInt
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: int32(c) == -1
// result: (RSBconst [0] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: int32(c) == -1
// result: (RSBconst [0] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
break
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: isPowerOfTwo(c)
// result: (SLLconst [log2(c)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: isPowerOfTwo(c)
// result: (SLLconst [log2(c)] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: isPowerOfTwo(c-1) && int32(c) >= 3
// result: (ADDshiftLL x x [log2(c-1)])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: isPowerOfTwo(c-1) && int32(c) >= 3
// result: (ADDshiftLL x x [log2(c-1)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: isPowerOfTwo(c+1) && int32(c) >= 7
// result: (RSBshiftLL x x [log2(c+1)])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: isPowerOfTwo(c+1) && int32(c) >= 7
// result: (RSBshiftLL x x [log2(c+1)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: c%3 == 0 && isPowerOfTwo(c/3) && is32Bit(c)
// result: (SLLconst [log2(c/3)] (ADDshiftLL <x.Type> x x [1]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: c%3 == 0 && isPowerOfTwo(c/3) && is32Bit(c)
// result: (SLLconst [log2(c/3)] (ADDshiftLL <x.Type> x x [1]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: c%5 == 0 && isPowerOfTwo(c/5) && is32Bit(c)
// result: (SLLconst [log2(c/5)] (ADDshiftLL <x.Type> x x [2]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: c%5 == 0 && isPowerOfTwo(c/5) && is32Bit(c)
// result: (SLLconst [log2(c/5)] (ADDshiftLL <x.Type> x x [2]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: c%7 == 0 && isPowerOfTwo(c/7) && is32Bit(c)
// result: (SLLconst [log2(c/7)] (RSBshiftLL <x.Type> x x [3]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: c%7 == 0 && isPowerOfTwo(c/7) && is32Bit(c)
// result: (SLLconst [log2(c/7)] (RSBshiftLL <x.Type> x x [3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: c%9 == 0 && isPowerOfTwo(c/9) && is32Bit(c)
// result: (SLLconst [log2(c/9)] (ADDshiftLL <x.Type> x x [3]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: c%9 == 0 && isPowerOfTwo(c/9) && is32Bit(c)
// result: (SLLconst [log2(c/9)] (ADDshiftLL <x.Type> x x [3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (MOVWconst [int64(int32(c*d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (MOVWconst [int64(int32(c*d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: int32(c) == -1
// result: (SUB a x)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: a
for {
+ _ = v.Args[2]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
break
// cond:
// result: (ADD x a)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: isPowerOfTwo(c)
// result: (ADD (SLLconst <x.Type> [log2(c)] x) a)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: isPowerOfTwo(c-1) && int32(c) >= 3
// result: (ADD (ADDshiftLL <x.Type> x x [log2(c-1)]) a)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: isPowerOfTwo(c+1) && int32(c) >= 7
// result: (ADD (RSBshiftLL <x.Type> x x [log2(c+1)]) a)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: c%3 == 0 && isPowerOfTwo(c/3) && is32Bit(c)
// result: (ADD (SLLconst <x.Type> [log2(c/3)] (ADDshiftLL <x.Type> x x [1])) a)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: c%5 == 0 && isPowerOfTwo(c/5) && is32Bit(c)
// result: (ADD (SLLconst <x.Type> [log2(c/5)] (ADDshiftLL <x.Type> x x [2])) a)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: c%7 == 0 && isPowerOfTwo(c/7) && is32Bit(c)
// result: (ADD (SLLconst <x.Type> [log2(c/7)] (RSBshiftLL <x.Type> x x [3])) a)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: c%9 == 0 && isPowerOfTwo(c/9) && is32Bit(c)
// result: (ADD (SLLconst <x.Type> [log2(c/9)] (ADDshiftLL <x.Type> x x [3])) a)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond: int32(c) == -1
// result: (SUB a x)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: a
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADD x a)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: isPowerOfTwo(c)
// result: (ADD (SLLconst <x.Type> [log2(c)] x) a)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: isPowerOfTwo(c-1) && int32(c) >= 3
// result: (ADD (ADDshiftLL <x.Type> x x [log2(c-1)]) a)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: isPowerOfTwo(c+1) && int32(c) >= 7
// result: (ADD (RSBshiftLL <x.Type> x x [log2(c+1)]) a)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: c%3 == 0 && isPowerOfTwo(c/3) && is32Bit(c)
// result: (ADD (SLLconst <x.Type> [log2(c/3)] (ADDshiftLL <x.Type> x x [1])) a)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: c%5 == 0 && isPowerOfTwo(c/5) && is32Bit(c)
// result: (ADD (SLLconst <x.Type> [log2(c/5)] (ADDshiftLL <x.Type> x x [2])) a)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: c%7 == 0 && isPowerOfTwo(c/7) && is32Bit(c)
// result: (ADD (SLLconst <x.Type> [log2(c/7)] (RSBshiftLL <x.Type> x x [3])) a)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond: c%9 == 0 && isPowerOfTwo(c/9) && is32Bit(c)
// result: (ADD (SLLconst <x.Type> [log2(c/9)] (ADDshiftLL <x.Type> x x [3])) a)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ADDconst [int64(int32(c*d))] a)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpARMMVNshiftLLreg)
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpARMMVNshiftRLreg)
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpARMMVNshiftRAreg)
// cond:
// result: (MVNshiftLL x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (MVNshiftRA x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (MVNshiftRL x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ORshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (ORshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (ORshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (ORshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (ORshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (ORshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (ORshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMORshiftLLreg)
// cond:
// result: (ORshiftLLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ORshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMORshiftRLreg)
// cond:
// result: (ORshiftRLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (ORshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMORshiftRAreg)
// cond:
// result: (ORshiftRAreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (ORconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ORconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (SRRconst [32-c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARMSLLconst {
// cond:
// result: (ORconst [c] (SLL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ORshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ORconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ORconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARMSRAconst {
// cond:
// result: (ORconst [c] (SRA <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ORshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (ORconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (ORconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (SRRconst [ c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARMSRLconst {
// cond:
// result: (ORconst [c] (SRL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (ORshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: (SUBconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSBconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (RSBshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (SUBshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (RSBshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (SUBshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (RSBshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (SUBshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (RSBshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMRSBshiftLLreg)
// cond:
// result: (SUBshiftLLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (RSBshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMRSBshiftRLreg)
// cond:
// result: (SUBshiftRLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (RSBshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMRSBshiftRAreg)
// cond:
// result: (SUBshiftRAreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (SUBSconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (RSBSconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SUBSconst [c] (SLL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSBSshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (SUBSconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (RSBSconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SUBSconst [c] (SRA <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSBSshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (SUBSconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (RSBSconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SUBSconst [c] (SRL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSBSshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (SUBconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (RSBconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (SUBconst [c] (SLL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSBshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (SUBconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (RSBconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (SUBconst [c] (SRA <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSBshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (SUBconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (RSBconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (SUBconst [c] (SRL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSBshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (RSCconst [int64(int32(c-d))] x flags)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
// result: (RSCconst [int64(int32(c+d))] x flags)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
// result: (SBCconst [c] (SLLconst <x.Type> x [d]) flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (RSCconst x [int64(uint32(c)<<uint64(d))] flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SBCconst [c] (SLL <x.Type> x y) flags)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSCshiftLL x y [c] flags)
for {
+ _ = v.Args[3]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (SBCconst [c] (SRAconst <x.Type> x [d]) flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (RSCconst x [int64(int32(c)>>uint64(d))] flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SBCconst [c] (SRA <x.Type> x y) flags)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSCshiftRA x y [c] flags)
for {
+ _ = v.Args[3]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (SBCconst [c] (SRLconst <x.Type> x [d]) flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (RSCconst x [int64(uint32(c)>>uint64(d))] flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SBCconst [c] (SRL <x.Type> x y) flags)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (RSCshiftRL x y [c] flags)
for {
+ _ = v.Args[3]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: (RSCconst [c] x flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SBCconst [c] x flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SBCshiftLL x y [c] flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (RSCshiftLL x y [c] flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (SBCshiftRL x y [c] flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (RSCshiftRL x y [c] flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (SBCshiftRA x y [c] flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (RSCshiftRA x y [c] flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (SBCshiftLLreg x y z flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
flags := v.Args[2]
// cond:
// result: (RSCshiftLLreg x y z flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (SBCshiftRLreg x y z flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
flags := v.Args[2]
// cond:
// result: (RSCshiftRLreg x y z flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (SBCshiftRAreg x y z flags)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
flags := v.Args[2]
// cond:
// result: (RSCshiftRAreg x y z flags)
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// result: (SBCconst [int64(int32(c-d))] x flags)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMADDconst {
break
// result: (SBCconst [int64(int32(c+d))] x flags)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSUBconst {
break
// result: (RSCconst [c] (SLLconst <x.Type> x [d]) flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (SBCconst x [int64(uint32(c)<<uint64(d))] flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (RSCconst [c] (SLL <x.Type> x y) flags)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SBCshiftLL x y [c] flags)
for {
+ _ = v.Args[3]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (RSCconst [c] (SRAconst <x.Type> x [d]) flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (SBCconst x [int64(int32(c)>>uint64(d))] flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (RSCconst [c] (SRA <x.Type> x y) flags)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SBCshiftRA x y [c] flags)
for {
+ _ = v.Args[3]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (RSCconst [c] (SRLconst <x.Type> x [d]) flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (SBCconst x [int64(uint32(c)>>uint64(d))] flags)
for {
d := v.AuxInt
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (RSCconst [c] (SRL <x.Type> x y) flags)
for {
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SBCshiftRL x y [c] flags)
for {
+ _ = v.Args[3]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: (SLLconst x [c&31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SRAconst x [c&31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SRAconst x [31])
for {
+ _ = v.Args[2]
x := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpARMFlagEQ {
// cond:
// result: (SRA x y)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: (SRAconst x [31])
for {
+ _ = v.Args[2]
x := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpARMFlagLT_UGT {
// cond:
// result: (SRA x y)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: (SRAconst x [31])
for {
+ _ = v.Args[2]
x := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpARMFlagGT_UGT {
// cond:
// result: (SRLconst x [c&31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (RSBconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SUBconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SUBshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (RSBshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (SUBshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (RSBshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (SUBshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (RSBshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (SUBshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMSUBshiftLLreg)
// cond:
// result: (RSBshiftLLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (SUBshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMSUBshiftRLreg)
// cond:
// result: (RSBshiftRLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (SUBshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMSUBshiftRAreg)
// cond:
// result: (RSBshiftRAreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (SUBSconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (SUBSshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (RSBSshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (SUBSshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (RSBSshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (SUBSshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (RSBSshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (SUBSshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMSUBSshiftLLreg)
// cond:
// result: (RSBSshiftLLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (SUBSshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMSUBSshiftRLreg)
// cond:
// result: (RSBSshiftRLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (SUBSshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMSUBSshiftRAreg)
// cond:
// result: (RSBSshiftRAreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// result: (RSBSconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (SUBSconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (RSBSconst [c] (SLL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SUBSshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (RSBSconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (SUBSconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (RSBSconst [c] (SRA <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SUBSshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (RSBSconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (SUBSconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (RSBSconst [c] (SRL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SUBSshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (RSBconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (SUBconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (RSBconst [c] (SLL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SUBshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (RSBconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (SUBconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (RSBconst [c] (SRA <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SUBshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (RSBconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (SUBconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (RSBconst [c] (SRL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (SUBshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (XORshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (XORshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// cond:
// result: (XORshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (XORshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// cond:
// result: (XORshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (XORshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRAconst {
break
// cond:
// result: (XORshiftRR x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRRconst {
// cond:
// result: (XORshiftRR x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRRconst {
break
// cond:
// result: (XORshiftLLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMXORshiftLLreg)
// cond:
// result: (XORshiftLLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (XORshiftRLreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMXORshiftRLreg)
// cond:
// result: (XORshiftRLreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (XORshiftRAreg x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRA {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARMXORshiftRAreg)
// cond:
// result: (XORshiftRAreg x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRA {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (XORconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (XORconst x [int64(uint32(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (SRRconst [32-c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSRLconst {
break
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSLLconst {
// cond:
// result: (XORconst [c] (SLL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (XORshiftLL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (XORconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (XORconst x [int64(int32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRAconst {
// cond:
// result: (XORconst [c] (SRA <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (XORshiftRA x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (XORconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (XORconst x [int64(uint32(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// result: (SRRconst [ c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMSLLconst {
break
// result: (MOVWconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMSRLconst {
// cond:
// result: (XORconst [c] (SRL <x.Type> x y))
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// cond:
// result: (XORshiftRL x y [c])
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// result: (XORconst [c] (SRRconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARMMOVWconst {
break
// result: (XORconst x [int64(uint32(c)>>uint64(d)|uint32(c)<<uint64(32-d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARMMOVWconst {
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMADD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMADD)
// cond:
// result: (ADDF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMADDF)
// cond:
// result: (ADDS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMADDS)
// cond:
// result: (ADC x y c)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
c := v.Args[2]
// cond:
// result: (ADDD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMADDD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMADD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMADD)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMAND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMAND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMAND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMAND)
// result: (ADD (SRLconst <t> (SUB <t> x y) [1]) y)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMADD)
// result: (CALLclosure [argwid] entry closure mem)
for {
argwid := v.AuxInt
+ _ = v.Args[2]
entry := v.Args[0]
closure := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MOVWconvert x mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
mem := v.Args[1]
v.reset(OpARMMOVWconvert)
// cond:
// result: (Div32 (SignExt16to32 x) (SignExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpDiv32)
// cond:
// result: (Div32u (ZeroExt16to32 x) (ZeroExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpDiv32u)
// cond:
// result: (SUB (XOR <typ.UInt32> (Select0 <typ.UInt32> (CALLudiv (SUB <typ.UInt32> (XOR x <typ.UInt32> (Signmask x)) (Signmask x)) (SUB <typ.UInt32> (XOR y <typ.UInt32> (Signmask y)) (Signmask y)))) (Signmask (XOR <typ.UInt32> x y))) (Signmask (XOR <typ.UInt32> x y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSUB)
// cond:
// result: (DIVF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMDIVF)
// cond:
// result: (Select0 <typ.UInt32> (CALLudiv x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (DIVD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMDIVD)
// cond:
// result: (Div32 (SignExt8to32 x) (SignExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpDiv32)
// cond:
// result: (Div32u (ZeroExt8to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpDiv32u)
// cond:
// result: (Equal (CMP (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMEqual)
// cond:
// result: (Equal (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMEqual)
// cond:
// result: (Equal (CMPF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMEqual)
// cond:
// result: (Equal (CMPD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMEqual)
// cond:
// result: (Equal (CMP (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMEqual)
// cond:
// result: (XORconst [1] (XOR <typ.Bool> x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMXORconst)
// cond:
// result: (Equal (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMEqual)
// cond:
// result: (GreaterEqual (CMP (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqual)
// cond:
// result: (GreaterEqualU (CMP (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqualU)
// cond:
// result: (GreaterEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqual)
// cond:
// result: (GreaterEqual (CMPF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqual)
// cond:
// result: (GreaterEqualU (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqualU)
// cond:
// result: (GreaterEqual (CMPD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqual)
// cond:
// result: (GreaterEqual (CMP (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqual)
// cond:
// result: (GreaterEqualU (CMP (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqualU)
// cond:
// result: (GreaterThan (CMP (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThan)
// cond:
// result: (GreaterThanU (CMP (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThanU)
// cond:
// result: (GreaterThan (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThan)
// cond:
// result: (GreaterThan (CMPF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThan)
// cond:
// result: (GreaterThanU (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThanU)
// cond:
// result: (GreaterThan (CMPD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThan)
// cond:
// result: (GreaterThan (CMP (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThan)
// cond:
// result: (GreaterThanU (CMP (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThanU)
// cond:
// result: (HMUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMHMUL)
// cond:
// result: (HMULU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMHMULU)
// result: (CALLinter [argwid] entry mem)
for {
argwid := v.AuxInt
+ _ = v.Args[1]
entry := v.Args[0]
mem := v.Args[1]
v.reset(OpARMCALLinter)
// cond:
// result: (LessThanU (CMP idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpARMLessThanU)
// cond:
// result: (LessEqualU (CMP idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpARMLessEqualU)
// cond:
// result: (LessEqual (CMP (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessEqual)
// cond:
// result: (LessEqualU (CMP (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessEqualU)
// cond:
// result: (LessEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessEqual)
// cond:
// result: (GreaterEqual (CMPF y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqual)
// cond:
// result: (LessEqualU (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessEqualU)
// cond:
// result: (GreaterEqual (CMPD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterEqual)
// cond:
// result: (LessEqual (CMP (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessEqual)
// cond:
// result: (LessEqualU (CMP (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessEqualU)
// cond:
// result: (LessThan (CMP (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessThan)
// cond:
// result: (LessThanU (CMP (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessThanU)
// cond:
// result: (LessThan (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessThan)
// cond:
// result: (GreaterThan (CMPF y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThan)
// cond:
// result: (LessThanU (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessThanU)
// cond:
// result: (GreaterThan (CMPD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMGreaterThan)
// cond:
// result: (LessThan (CMP (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessThan)
// cond:
// result: (LessThanU (CMP (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMLessThanU)
// result: (MOVBUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsBoolean()) {
// result: (MOVBload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && isSigned(t)) {
// result: (MOVBUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && !isSigned(t)) {
// result: (MOVHload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && isSigned(t)) {
// result: (MOVHUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && !isSigned(t)) {
// result: (MOVWload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) || isPtr(t)) {
// result: (MOVFload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitFloat(t)) {
// result: (MOVDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitFloat(t)) {
// cond:
// result: (CMOVWHSconst (SLL <x.Type> x (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond:
// result: (CMOVWHSconst (SLL <x.Type> x y) (CMPconst [256] y) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond: uint64(c) < 16
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 16
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond:
// result: (SLL x (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSLL)
// cond:
// result: (CMOVWHSconst (SLL <x.Type> x (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond:
// result: (CMOVWHSconst (SLL <x.Type> x y) (CMPconst [256] y) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond: uint64(c) < 32
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 32
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond:
// result: (SLL x (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSLL)
// cond:
// result: (CMOVWHSconst (SLL <x.Type> x (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond:
// result: (CMOVWHSconst (SLL <x.Type> x y) (CMPconst [256] y) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond: uint64(c) < 8
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 8
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond:
// result: (SLL x (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSLL)
// cond:
// result: (Mod32 (SignExt16to32 x) (SignExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMod32)
// cond:
// result: (Mod32u (ZeroExt16to32 x) (ZeroExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMod32u)
// cond:
// result: (SUB (XOR <typ.UInt32> (Select1 <typ.UInt32> (CALLudiv (SUB <typ.UInt32> (XOR <typ.UInt32> x (Signmask x)) (Signmask x)) (SUB <typ.UInt32> (XOR <typ.UInt32> y (Signmask y)) (Signmask y)))) (Signmask x)) (Signmask x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSUB)
// cond:
// result: (Select1 <typ.UInt32> (CALLudiv x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Mod32 (SignExt8to32 x) (SignExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMod32)
// cond:
// result: (Mod32u (ZeroExt8to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMod32u)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[2]
mem := v.Args[2]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 2 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 4 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 3 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
for {
s := v.AuxInt
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
for {
s := v.AuxInt
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMMUL)
// cond:
// result: (MUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMMUL)
// cond:
// result: (MULF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMMULF)
// cond:
// result: (MULLU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMMULLU)
// cond:
// result: (MULD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMMULD)
// cond:
// result: (MUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMMUL)
// cond:
// result: (NotEqual (CMP (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMNotEqual)
// cond:
// result: (NotEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMNotEqual)
// cond:
// result: (NotEqual (CMPF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMNotEqual)
// cond:
// result: (NotEqual (CMPD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMNotEqual)
// cond:
// result: (NotEqual (CMP (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMNotEqual)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMXOR)
// cond:
// result: (NotEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMNotEqual)
// cond:
// result: (LoweredNilCheck ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARMLoweredNilCheck)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMOR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMOR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMOR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMOR)
// cond:
// result: (CMOVWHSconst (SRL <x.Type> (ZeroExt16to32 x) (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond:
// result: (CMOVWHSconst (SRL <x.Type> (ZeroExt16to32 x) y) (CMPconst [256] y) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond: uint64(c) < 16
// result: (SRLconst (SLLconst <typ.UInt32> x [16]) [c+16])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 16
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond:
// result: (SRL (ZeroExt16to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRL)
// cond:
// result: (SRAcond (SignExt16to32 x) (ZeroExt16to32 y) (CMPconst [256] (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRAcond)
// cond:
// result: (SRAcond (SignExt16to32 x) y (CMPconst [256] y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRAcond)
// cond: uint64(c) < 16
// result: (SRAconst (SLLconst <typ.UInt32> x [16]) [c+16])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 16
// result: (SRAconst (SLLconst <typ.UInt32> x [16]) [31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (SRA (SignExt16to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRA)
// cond:
// result: (CMOVWHSconst (SRL <x.Type> x (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond:
// result: (CMOVWHSconst (SRL <x.Type> x y) (CMPconst [256] y) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond: uint64(c) < 32
// result: (SRLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 32
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond:
// result: (SRL x (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRL)
// cond:
// result: (SRAcond x (ZeroExt16to32 y) (CMPconst [256] (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRAcond)
// cond:
// result: (SRAcond x y (CMPconst [256] y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRAcond)
// cond: uint64(c) < 32
// result: (SRAconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 32
// result: (SRAconst x [31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (SRA x (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRA)
// cond:
// result: (CMOVWHSconst (SRL <x.Type> (ZeroExt8to32 x) (ZeroExt16to32 y)) (CMPconst [256] (ZeroExt16to32 y)) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond:
// result: (CMOVWHSconst (SRL <x.Type> (ZeroExt8to32 x) y) (CMPconst [256] y) [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMCMOVWHSconst)
// cond: uint64(c) < 8
// result: (SRLconst (SLLconst <typ.UInt32> x [24]) [c+24])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 8
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond:
// result: (SRL (ZeroExt8to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRL)
// cond:
// result: (SRAcond (SignExt8to32 x) (ZeroExt16to32 y) (CMPconst [256] (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRAcond)
// cond:
// result: (SRAcond (SignExt8to32 x) y (CMPconst [256] y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRAcond)
// cond: uint64(c) < 8
// result: (SRAconst (SLLconst <typ.UInt32> x [24]) [c+24])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 8
// result: (SRAconst (SLLconst <typ.UInt32> x [24]) [31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (SRA (SignExt8to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSRA)
if v_0.Op != OpARMCALLudiv {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpARMMOVWconst {
if v_0.Op != OpARMCALLudiv {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpARMMOVWconst {
if v_0.Op != OpARMCALLudiv {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpARMMOVWconst {
break
if v_0.Op != OpARMCALLudiv {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpARMMOVWconst {
break
if v_0.Op != OpARMCALLudiv {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpARMMOVWconst {
if v_0.Op != OpARMCALLudiv {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpARMMOVWconst {
break
// result: (MOVBstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVHstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVWstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVFstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSUB)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSUB)
// cond:
// result: (SUBF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSUBF)
// cond:
// result: (SUBS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSUBS)
// cond:
// result: (SBC x y c)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
c := v.Args[2]
// cond:
// result: (SUBD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSUBD)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSUB)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMSUB)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMXOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMXOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARMXOR)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[1]
mem := v.Args[1]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARMMOVBstore)
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%2 == 0) {
if v.AuxInt != 2 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARMMOVBstore)
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%4 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%2 == 0) {
if v.AuxInt != 4 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARMMOVBstore)
if v.AuxInt != 3 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARMMOVBstore)
for {
s := v.AuxInt
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(s%4 == 0 && s > 4 && s <= 512 && t.(*types.Type).Alignment()%4 == 0 && !config.noDuffDevice) {
for {
s := v.AuxInt
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !((s > 512 || config.noDuffDevice) || t.(*types.Type).Alignment()%4 != 0) {
// cond:
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64NEG {
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64NEG {
break
// cond:
// result: (ADDshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// cond:
// result: (ADDshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
// cond:
// result: (ADDshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// cond:
// result: (ADDshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
// cond:
// result: (ADDshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// cond:
// result: (ADDshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRAconst {
break
// result: (ADDconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (ADDconst x [int64(uint64(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (RORconst [64-c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
for {
t := v.Type
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
// result: (ADDconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (ADDconst x [int64(int64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (ADDconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (ADDconst x [int64(uint64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (RORconst [ c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
for {
t := v.Type
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
// cond:
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (BIC x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MVN {
// cond:
// result: (BIC x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MVN {
break
// cond:
// result: (ANDshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// cond:
// result: (ANDshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
// cond:
// result: (ANDshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// cond:
// result: (ANDshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
// cond:
// result: (ANDshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// cond:
// result: (ANDshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRAconst {
break
// result: (ANDconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (ANDconst x [int64(uint64(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARM64SLLconst {
// result: (ANDconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (ANDconst x [int64(int64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARM64SRAconst {
// result: (ANDconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (ANDconst x [int64(uint64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARM64SRLconst {
// cond:
// result: (BICconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (BICshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// cond:
// result: (BICshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// cond:
// result: (BICshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// result: (BICconst x [int64(uint64(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (MOVDconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// result: (BICconst x [int64(int64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (MOVDconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// result: (BICconst x [int64(uint64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (MOVDconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// cond:
// result: (CMPconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (InvertFlags (CMPconst [c] x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (CMPshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// cond:
// result: (InvertFlags (CMPshiftLL x y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
// cond:
// result: (CMPshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// cond:
// result: (InvertFlags (CMPshiftRL x y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
// cond:
// result: (CMPshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// cond:
// result: (InvertFlags (CMPshiftRA x y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRAconst {
break
// cond:
// result: (CMPWconst [int64(int32(c))] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (InvertFlags (CMPWconst [int64(int32(c))] x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (InvertFlags (CMPconst [c] (SLLconst <x.Type> x [d])))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (CMPconst x [int64(uint64(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (InvertFlags (CMPconst [c] (SRAconst <x.Type> x [d])))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (CMPconst x [int64(int64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (InvertFlags (CMPconst [c] (SRLconst <x.Type> x [d])))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (CMPconst x [int64(uint64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (CSELULT0 x flag)
for {
+ _ = v.Args[2]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpARM64FlagEQ {
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpARM64FlagLT_ULT {
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpARM64FlagLT_UGT {
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpARM64FlagGT_ULT {
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpARM64FlagGT_UGT {
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64FlagEQ {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64FlagLT_ULT {
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64FlagLT_UGT {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64FlagGT_ULT {
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64FlagGT_UGT {
break
// cond:
// result: (MOVDconst [int64(c)/int64(d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [int64(int32(c)/int32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
// cond:
// result: (MOVDconst [int64(c)%int64(d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [int64(int32(c)%int32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVBstorezero {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
if x.Op != OpARM64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVBstorezero {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
if x.Op != OpARM64MOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVBreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVBUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVHUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVWreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVWUreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDstorezero {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVHstorezero {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
if x.Op != OpARM64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
if x.Op != OpARM64MOVHUload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVHstorezero {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
if x.Op != OpARM64MOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
if x.Op != OpARM64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
if x.Op != OpARM64MOVHload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVHUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVWreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVWUreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVWstorezero {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
if x.Op != OpARM64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
if x.Op != OpARM64MOVHUload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
if x.Op != OpARM64MOVWUload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVWstorezero {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[1]
ptr2 := v_1.Args[0]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
break
if x.Op != OpARM64MOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
if x.Op != OpARM64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
if x.Op != OpARM64MOVHload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
if x.Op != OpARM64MOVHUload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
if x.Op != OpARM64MOVWload {
break
}
+ _ = x.Args[1]
v.reset(OpARM64MOVDreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVWreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVWUreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDaddr {
break
// cond:
// result: (NEG x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (NEG x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: isPowerOfTwo(c)
// result: (SLLconst [log2(c)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: isPowerOfTwo(c)
// result: (SLLconst [log2(c)] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: isPowerOfTwo(c-1) && c >= 3
// result: (ADDshiftLL x x [log2(c-1)])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: isPowerOfTwo(c-1) && c >= 3
// result: (ADDshiftLL x x [log2(c-1)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: isPowerOfTwo(c+1) && c >= 7
// result: (ADDshiftLL (NEG <x.Type> x) x [log2(c+1)])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: isPowerOfTwo(c+1) && c >= 7
// result: (ADDshiftLL (NEG <x.Type> x) x [log2(c+1)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: c%3 == 0 && isPowerOfTwo(c/3)
// result: (SLLconst [log2(c/3)] (ADDshiftLL <x.Type> x x [1]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: c%3 == 0 && isPowerOfTwo(c/3)
// result: (SLLconst [log2(c/3)] (ADDshiftLL <x.Type> x x [1]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: c%5 == 0 && isPowerOfTwo(c/5)
// result: (SLLconst [log2(c/5)] (ADDshiftLL <x.Type> x x [2]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: c%5 == 0 && isPowerOfTwo(c/5)
// result: (SLLconst [log2(c/5)] (ADDshiftLL <x.Type> x x [2]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: c%7 == 0 && isPowerOfTwo(c/7)
// result: (SLLconst [log2(c/7)] (ADDshiftLL <x.Type> (NEG <x.Type> x) x [3]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: c%7 == 0 && isPowerOfTwo(c/7)
// result: (SLLconst [log2(c/7)] (ADDshiftLL <x.Type> (NEG <x.Type> x) x [3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: c%9 == 0 && isPowerOfTwo(c/9)
// result: (SLLconst [log2(c/9)] (ADDshiftLL <x.Type> x x [3]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: c%9 == 0 && isPowerOfTwo(c/9)
// result: (SLLconst [log2(c/9)] (ADDshiftLL <x.Type> x x [3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [c*d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [c*d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: int32(c)==-1
// result: (NEG x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: int32(c)==-1
// result: (NEG x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: int32(c)==0
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// cond: int32(c)==0
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: int32(c)==1
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: int32(c)==1
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: isPowerOfTwo(c)
// result: (SLLconst [log2(c)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: isPowerOfTwo(c)
// result: (SLLconst [log2(c)] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: isPowerOfTwo(c-1) && int32(c) >= 3
// result: (ADDshiftLL x x [log2(c-1)])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: isPowerOfTwo(c-1) && int32(c) >= 3
// result: (ADDshiftLL x x [log2(c-1)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: isPowerOfTwo(c+1) && int32(c) >= 7
// result: (ADDshiftLL (NEG <x.Type> x) x [log2(c+1)])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: isPowerOfTwo(c+1) && int32(c) >= 7
// result: (ADDshiftLL (NEG <x.Type> x) x [log2(c+1)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: c%3 == 0 && isPowerOfTwo(c/3) && is32Bit(c)
// result: (SLLconst [log2(c/3)] (ADDshiftLL <x.Type> x x [1]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: c%3 == 0 && isPowerOfTwo(c/3) && is32Bit(c)
// result: (SLLconst [log2(c/3)] (ADDshiftLL <x.Type> x x [1]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: c%5 == 0 && isPowerOfTwo(c/5) && is32Bit(c)
// result: (SLLconst [log2(c/5)] (ADDshiftLL <x.Type> x x [2]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: c%5 == 0 && isPowerOfTwo(c/5) && is32Bit(c)
// result: (SLLconst [log2(c/5)] (ADDshiftLL <x.Type> x x [2]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: c%7 == 0 && isPowerOfTwo(c/7) && is32Bit(c)
// result: (SLLconst [log2(c/7)] (ADDshiftLL <x.Type> (NEG <x.Type> x) x [3]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: c%7 == 0 && isPowerOfTwo(c/7) && is32Bit(c)
// result: (SLLconst [log2(c/7)] (ADDshiftLL <x.Type> (NEG <x.Type> x) x [3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: c%9 == 0 && isPowerOfTwo(c/9) && is32Bit(c)
// result: (SLLconst [log2(c/9)] (ADDshiftLL <x.Type> x x [3]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: c%9 == 0 && isPowerOfTwo(c/9) && is32Bit(c)
// result: (SLLconst [log2(c/9)] (ADDshiftLL <x.Type> x x [3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [int64(int32(c)*int32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [int64(int32(c)*int32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (ORshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// cond:
// result: (ORshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
// cond:
// result: (ORshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// cond:
// result: (ORshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
// cond:
// result: (ORshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// cond:
// result: (ORshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRAconst {
break
// result: @mergePoint(b,x0,x1,x2,x3) (MOVWUload <t> {s} (OffPtr <p.Type> [i0] p) mem)
for {
t := v.Type
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != OpARM64ORshiftLL {
break
if o0.AuxInt != 8 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 16 {
break
}
+ _ = o1.Args[1]
s0 := o1.Args[0]
if s0.Op != OpARM64SLLconst {
break
}
i3 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := o1.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[1]
if p != x3.Args[0] {
break
}
// result: @mergePoint(b,x0,x1,x2,x3) (MOVWUload <t> {s} (OffPtr <p.Type> [i0] p) mem)
for {
t := v.Type
+ _ = v.Args[1]
y3 := v.Args[0]
if y3.Op != OpARM64MOVDnop {
break
}
i0 := x3.AuxInt
s := x3.Aux
+ _ = x3.Args[1]
p := x3.Args[0]
mem := x3.Args[1]
o0 := v.Args[1]
if o0.AuxInt != 8 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 16 {
break
}
+ _ = o1.Args[1]
s0 := o1.Args[0]
if s0.Op != OpARM64SLLconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
// result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (REV <t> (MOVDload <t> {s} (OffPtr <p.Type> [i0] p) mem))
for {
t := v.Type
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != OpARM64ORshiftLL {
break
if o0.AuxInt != 8 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 16 {
break
}
+ _ = o1.Args[1]
o2 := o1.Args[0]
if o2.Op != OpARM64ORshiftLL {
break
if o2.AuxInt != 24 {
break
}
+ _ = o2.Args[1]
o3 := o2.Args[0]
if o3.Op != OpARM64ORshiftLL {
break
if o3.AuxInt != 32 {
break
}
+ _ = o3.Args[1]
o4 := o3.Args[0]
if o4.Op != OpARM64ORshiftLL {
break
if o4.AuxInt != 40 {
break
}
+ _ = o4.Args[1]
o5 := o4.Args[0]
if o5.Op != OpARM64ORshiftLL {
break
if o5.AuxInt != 48 {
break
}
+ _ = o5.Args[1]
s0 := o5.Args[0]
if s0.Op != OpARM64SLLconst {
break
}
i7 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := o5.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[1]
if p != x3.Args[0] {
break
}
if x4.Aux != s {
break
}
+ _ = x4.Args[1]
if p != x4.Args[0] {
break
}
if x5.Aux != s {
break
}
+ _ = x5.Args[1]
if p != x5.Args[0] {
break
}
if x6.Aux != s {
break
}
+ _ = x6.Args[1]
if p != x6.Args[0] {
break
}
if x7.Aux != s {
break
}
+ _ = x7.Args[1]
if p != x7.Args[0] {
break
}
// result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (REV <t> (MOVDload <t> {s} (OffPtr <p.Type> [i0] p) mem))
for {
t := v.Type
+ _ = v.Args[1]
y7 := v.Args[0]
if y7.Op != OpARM64MOVDnop {
break
}
i0 := x7.AuxInt
s := x7.Aux
+ _ = x7.Args[1]
p := x7.Args[0]
mem := x7.Args[1]
o0 := v.Args[1]
if o0.AuxInt != 8 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 16 {
break
}
+ _ = o1.Args[1]
o2 := o1.Args[0]
if o2.Op != OpARM64ORshiftLL {
break
if o2.AuxInt != 24 {
break
}
+ _ = o2.Args[1]
o3 := o2.Args[0]
if o3.Op != OpARM64ORshiftLL {
break
if o3.AuxInt != 32 {
break
}
+ _ = o3.Args[1]
o4 := o3.Args[0]
if o4.Op != OpARM64ORshiftLL {
break
if o4.AuxInt != 40 {
break
}
+ _ = o4.Args[1]
o5 := o4.Args[0]
if o5.Op != OpARM64ORshiftLL {
break
if o5.AuxInt != 48 {
break
}
+ _ = o5.Args[1]
s0 := o5.Args[0]
if s0.Op != OpARM64SLLconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[1]
if p != x3.Args[0] {
break
}
if x4.Aux != s {
break
}
+ _ = x4.Args[1]
if p != x4.Args[0] {
break
}
if x5.Aux != s {
break
}
+ _ = x5.Args[1]
if p != x5.Args[0] {
break
}
if x6.Aux != s {
break
}
+ _ = x6.Args[1]
if p != x6.Args[0] {
break
}
// result: @mergePoint(b,x0,x1,x2,x3) (REVW <t> (MOVWUload <t> {s} (OffPtr <p.Type> [i0] p) mem))
for {
t := v.Type
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != OpARM64ORshiftLL {
break
if o0.AuxInt != 8 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 16 {
break
}
+ _ = o1.Args[1]
s0 := o1.Args[0]
if s0.Op != OpARM64SLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := o1.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[1]
if p != x3.Args[0] {
break
}
// result: @mergePoint(b,x0,x1,x2,x3) (REVW <t> (MOVWUload <t> {s} (OffPtr <p.Type> [i0] p) mem))
for {
t := v.Type
+ _ = v.Args[1]
y3 := v.Args[0]
if y3.Op != OpARM64MOVDnop {
break
}
i3 := x3.AuxInt
s := x3.Aux
+ _ = x3.Args[1]
p := x3.Args[0]
mem := x3.Args[1]
o0 := v.Args[1]
if o0.AuxInt != 8 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 16 {
break
}
+ _ = o1.Args[1]
s0 := o1.Args[0]
if s0.Op != OpARM64SLLconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
// result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (REV <t> (MOVDload <t> {s} (OffPtr <p.Type> [i0] p) mem))
for {
t := v.Type
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != OpARM64ORshiftLL {
break
if o0.AuxInt != 8 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 16 {
break
}
+ _ = o1.Args[1]
o2 := o1.Args[0]
if o2.Op != OpARM64ORshiftLL {
break
if o2.AuxInt != 24 {
break
}
+ _ = o2.Args[1]
o3 := o2.Args[0]
if o3.Op != OpARM64ORshiftLL {
break
if o3.AuxInt != 32 {
break
}
+ _ = o3.Args[1]
o4 := o3.Args[0]
if o4.Op != OpARM64ORshiftLL {
break
if o4.AuxInt != 40 {
break
}
+ _ = o4.Args[1]
o5 := o4.Args[0]
if o5.Op != OpARM64ORshiftLL {
break
if o5.AuxInt != 48 {
break
}
+ _ = o5.Args[1]
s0 := o5.Args[0]
if s0.Op != OpARM64SLLconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := o5.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[1]
if p != x3.Args[0] {
break
}
if x4.Aux != s {
break
}
+ _ = x4.Args[1]
if p != x4.Args[0] {
break
}
if x5.Aux != s {
break
}
+ _ = x5.Args[1]
if p != x5.Args[0] {
break
}
if x6.Aux != s {
break
}
+ _ = x6.Args[1]
if p != x6.Args[0] {
break
}
if x7.Aux != s {
break
}
+ _ = x7.Args[1]
if p != x7.Args[0] {
break
}
// result: @mergePoint(b,x0,x1,x2,x3,x4,x5,x6,x7) (REV <t> (MOVDload <t> {s} (OffPtr <p.Type> [i0] p) mem))
for {
t := v.Type
+ _ = v.Args[1]
y7 := v.Args[0]
if y7.Op != OpARM64MOVDnop {
break
}
i7 := x7.AuxInt
s := x7.Aux
+ _ = x7.Args[1]
p := x7.Args[0]
mem := x7.Args[1]
o0 := v.Args[1]
if o0.AuxInt != 8 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 16 {
break
}
+ _ = o1.Args[1]
o2 := o1.Args[0]
if o2.Op != OpARM64ORshiftLL {
break
if o2.AuxInt != 24 {
break
}
+ _ = o2.Args[1]
o3 := o2.Args[0]
if o3.Op != OpARM64ORshiftLL {
break
if o3.AuxInt != 32 {
break
}
+ _ = o3.Args[1]
o4 := o3.Args[0]
if o4.Op != OpARM64ORshiftLL {
break
if o4.AuxInt != 40 {
break
}
+ _ = o4.Args[1]
o5 := o4.Args[0]
if o5.Op != OpARM64ORshiftLL {
break
if o5.AuxInt != 48 {
break
}
+ _ = o5.Args[1]
s0 := o5.Args[0]
if s0.Op != OpARM64SLLconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[1]
if p != x3.Args[0] {
break
}
if x4.Aux != s {
break
}
+ _ = x4.Args[1]
if p != x4.Args[0] {
break
}
if x5.Aux != s {
break
}
+ _ = x5.Args[1]
if p != x5.Args[0] {
break
}
if x6.Aux != s {
break
}
+ _ = x6.Args[1]
if p != x6.Args[0] {
break
}
// result: (ORconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (ORconst x [int64(uint64(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARM64SLLconst {
// result: (RORconst [64-c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
for {
t := v.Type
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
if v.AuxInt != 8 {
break
}
+ _ = v.Args[1]
y0 := v.Args[0]
if y0.Op != OpARM64MOVDnop {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if v.AuxInt != 24 {
break
}
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != OpARM64ORshiftLL {
break
if o0.AuxInt != 16 {
break
}
+ _ = o0.Args[1]
x0 := o0.Args[0]
if x0.Op != OpARM64MOVHUload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := o0.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if v.AuxInt != 56 {
break
}
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != OpARM64ORshiftLL {
break
if o0.AuxInt != 48 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 40 {
break
}
+ _ = o1.Args[1]
o2 := o1.Args[0]
if o2.Op != OpARM64ORshiftLL {
break
if o2.AuxInt != 32 {
break
}
+ _ = o2.Args[1]
x0 := o2.Args[0]
if x0.Op != OpARM64MOVWUload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := o2.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[1]
if p != x3.Args[0] {
break
}
if x4.Aux != s {
break
}
+ _ = x4.Args[1]
if p != x4.Args[0] {
break
}
if v.AuxInt != 8 {
break
}
+ _ = v.Args[1]
y0 := v.Args[0]
if y0.Op != OpARM64MOVDnop {
break
}
i1 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if v.AuxInt != 24 {
break
}
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != OpARM64ORshiftLL {
break
if o0.AuxInt != 16 {
break
}
+ _ = o0.Args[1]
y0 := o0.Args[0]
if y0.Op != OpARM64REV16W {
break
}
i2 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := o0.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if v.AuxInt != 56 {
break
}
+ _ = v.Args[1]
o0 := v.Args[0]
if o0.Op != OpARM64ORshiftLL {
break
if o0.AuxInt != 48 {
break
}
+ _ = o0.Args[1]
o1 := o0.Args[0]
if o1.Op != OpARM64ORshiftLL {
break
if o1.AuxInt != 40 {
break
}
+ _ = o1.Args[1]
o2 := o1.Args[0]
if o2.Op != OpARM64ORshiftLL {
break
if o2.AuxInt != 32 {
break
}
+ _ = o2.Args[1]
y0 := o2.Args[0]
if y0.Op != OpARM64REVW {
break
}
i4 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y1 := o2.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
if x2.Aux != s {
break
}
+ _ = x2.Args[1]
if p != x2.Args[0] {
break
}
if x3.Aux != s {
break
}
+ _ = x3.Args[1]
if p != x3.Args[0] {
break
}
if x4.Aux != s {
break
}
+ _ = x4.Args[1]
if p != x4.Args[0] {
break
}
// result: (ORconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (ORconst x [int64(int64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARM64SRAconst {
// result: (ORconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (ORconst x [int64(uint64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: y
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if y.Op != OpARM64SRLconst {
// result: (RORconst [ c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
for {
t := v.Type
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
// cond:
// result: (SLLconst x [c&63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (SRAconst x [c&63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (SRLconst x [c&63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (SUBconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (SUB (ADD <v.Type> x z) y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SUB {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpARM64SUB)
// cond:
// result: (SUB x (ADD <y.Type> y z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SUB {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
z := v.Args[1]
// cond:
// result: (SUBshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// cond:
// result: (SUBshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// cond:
// result: (SUBshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// result: (SUBconst x [int64(uint64(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (MOVDconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// result: (SUBconst x [int64(int64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (MOVDconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// result: (SUBconst x [int64(uint64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (MOVDconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: isPowerOfTwo(c)
// result: (SRLconst [log2(c)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (MOVDconst [int64(uint64(c)/uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: uint32(c)==1
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: isPowerOfTwo(c) && is32Bit(c)
// result: (SRLconst [log2(c)] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (MOVDconst [int64(uint32(c)/uint32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// cond: isPowerOfTwo(c)
// result: (ANDconst [c-1] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (MOVDconst [int64(uint64(c)%uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond: uint32(c)==1
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// cond: isPowerOfTwo(c) && is32Bit(c)
// result: (ANDconst [c-1] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (MOVDconst [int64(uint32(c)%uint32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (XORshiftLL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// cond:
// result: (XORshiftLL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
// cond:
// result: (XORshiftRL x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// cond:
// result: (XORshiftRL x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
// cond:
// result: (XORshiftRA x y [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// cond:
// result: (XORshiftRA x y [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRAconst {
break
// result: (XORconst [c] (SLLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (XORconst x [int64(uint64(c)<<uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (MOVDconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SLLconst {
// result: (RORconst [64-c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
for {
t := v.Type
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SRLconst {
break
// result: (XORconst [c] (SRAconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (XORconst x [int64(int64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (MOVDconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRAconst {
// result: (XORconst [c] (SRLconst <x.Type> x [d]))
for {
d := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64MOVDconst {
break
// result: (XORconst x [int64(uint64(c)>>uint64(d))])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// result: (MOVDconst [0])
for {
d := v.AuxInt
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64SRLconst {
// result: (RORconst [ c] x)
for {
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
for {
t := v.Type
c := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpARM64SLLconst {
break
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64ADD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64ADD)
// cond:
// result: (FADDS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64FADDS)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64ADD)
// cond:
// result: (FADDD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64FADDD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64ADD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64ADD)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64AND)
// cond:
// result: (LoweredAtomicAdd32 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicAdd64 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicAnd8 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicCas32 ptr old new_ mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
old := v.Args[1]
new_ := v.Args[2]
// cond:
// result: (LoweredAtomicCas64 ptr old new_ mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
old := v.Args[1]
new_ := v.Args[2]
// cond:
// result: (LoweredAtomicExchange32 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicExchange64 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LDARW ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64LDARW)
// cond:
// result: (LDAR ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64LDAR)
// cond:
// result: (LDAR ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64LDAR)
// cond:
// result: (LoweredAtomicOr8 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (STLRW ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (STLR ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (STLR ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (ADD (SRLconst <t> (SUB <t> x y) [1]) y)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64ADD)
// result: (CALLclosure [argwid] entry closure mem)
for {
argwid := v.AuxInt
+ _ = v.Args[2]
entry := v.Args[0]
closure := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MOVDconvert x mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVDconvert)
// cond:
// result: (DIVW (SignExt16to32 x) (SignExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64DIVW)
// cond:
// result: (UDIVW (ZeroExt16to32 x) (ZeroExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64UDIVW)
// cond:
// result: (DIVW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64DIVW)
// cond:
// result: (FDIVS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64FDIVS)
// cond:
// result: (UDIVW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64UDIVW)
// cond:
// result: (DIV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64DIV)
// cond:
// result: (FDIVD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64FDIVD)
// cond:
// result: (UDIV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64UDIV)
// cond:
// result: (DIVW (SignExt8to32 x) (SignExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64DIVW)
// cond:
// result: (UDIVW (ZeroExt8to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64UDIVW)
// cond:
// result: (Equal (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64Equal)
// cond:
// result: (Equal (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64Equal)
// cond:
// result: (Equal (FCMPS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64Equal)
// cond:
// result: (Equal (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64Equal)
// cond:
// result: (Equal (FCMPD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64Equal)
// cond:
// result: (Equal (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64Equal)
// cond:
// result: (XOR (MOVDconst [1]) (XOR <typ.Bool> x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64XOR)
// cond:
// result: (Equal (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64Equal)
// cond:
// result: (GreaterEqual (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqual)
// cond:
// result: (GreaterEqualU (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqualU)
// cond:
// result: (GreaterEqual (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqual)
// cond:
// result: (GreaterEqual (FCMPS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqual)
// cond:
// result: (GreaterEqualU (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqualU)
// cond:
// result: (GreaterEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqual)
// cond:
// result: (GreaterEqual (FCMPD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqual)
// cond:
// result: (GreaterEqualU (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqualU)
// cond:
// result: (GreaterEqual (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqual)
// cond:
// result: (GreaterEqualU (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqualU)
// cond:
// result: (GreaterThan (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThan)
// cond:
// result: (GreaterThanU (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThanU)
// cond:
// result: (GreaterThan (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThan)
// cond:
// result: (GreaterThan (FCMPS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThan)
// cond:
// result: (GreaterThanU (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThanU)
// cond:
// result: (GreaterThan (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThan)
// cond:
// result: (GreaterThan (FCMPD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThan)
// cond:
// result: (GreaterThanU (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThanU)
// cond:
// result: (GreaterThan (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThan)
// cond:
// result: (GreaterThanU (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThanU)
// cond:
// result: (SRAconst (MULL <typ.Int64> x y) [32])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRAconst)
// cond:
// result: (SRAconst (UMULL <typ.UInt64> x y) [32])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRAconst)
// cond:
// result: (MULH x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64MULH)
// cond:
// result: (UMULH x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64UMULH)
// result: (CALLinter [argwid] entry mem)
for {
argwid := v.AuxInt
+ _ = v.Args[1]
entry := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64CALLinter)
// cond:
// result: (LessThanU (CMP idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpARM64LessThanU)
// cond:
// result: (LessEqualU (CMP idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpARM64LessEqualU)
// cond:
// result: (LessEqual (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessEqual)
// cond:
// result: (LessEqualU (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessEqualU)
// cond:
// result: (LessEqual (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessEqual)
// cond:
// result: (GreaterEqual (FCMPS y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqual)
// cond:
// result: (LessEqualU (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessEqualU)
// cond:
// result: (LessEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessEqual)
// cond:
// result: (GreaterEqual (FCMPD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterEqual)
// cond:
// result: (LessEqualU (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessEqualU)
// cond:
// result: (LessEqual (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessEqual)
// cond:
// result: (LessEqualU (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessEqualU)
// cond:
// result: (LessThan (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessThan)
// cond:
// result: (LessThanU (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessThanU)
// cond:
// result: (LessThan (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessThan)
// cond:
// result: (GreaterThan (FCMPS y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThan)
// cond:
// result: (LessThanU (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessThanU)
// cond:
// result: (LessThan (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessThan)
// cond:
// result: (GreaterThan (FCMPD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64GreaterThan)
// cond:
// result: (LessThanU (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessThanU)
// cond:
// result: (LessThan (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessThan)
// cond:
// result: (LessThanU (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64LessThanU)
// result: (MOVBUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsBoolean()) {
// result: (MOVBload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && isSigned(t)) {
// result: (MOVBUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && !isSigned(t)) {
// result: (MOVHload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && isSigned(t)) {
// result: (MOVHUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && !isSigned(t)) {
// result: (MOVWload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) && isSigned(t)) {
// result: (MOVWUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) && !isSigned(t)) {
// result: (MOVDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitInt(t) || isPtr(t)) {
// result: (FMOVSload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitFloat(t)) {
// result: (FMOVDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitFloat(t)) {
// result: (CSELULT (SLL <t> x (ZeroExt16to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt32to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond: uint64(c) < 16
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 16
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// result: (CSELULT (SLL <t> x y) (Const64 <t> [0]) (CMPconst [64] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt8to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt16to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt32to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond: uint64(c) < 32
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 32
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// result: (CSELULT (SLL <t> x y) (Const64 <t> [0]) (CMPconst [64] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt8to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt16to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt32to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond: uint64(c) < 64
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 64
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// result: (CSELULT (SLL <t> x y) (Const64 <t> [0]) (CMPconst [64] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt8to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt16to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt32to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond: uint64(c) < 8
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 8
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// result: (CSELULT (SLL <t> x y) (Const64 <t> [0]) (CMPconst [64] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SLL <t> x (ZeroExt8to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond:
// result: (MODW (SignExt16to32 x) (SignExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64MODW)
// cond:
// result: (UMODW (ZeroExt16to32 x) (ZeroExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64UMODW)
// cond:
// result: (MODW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64MODW)
// cond:
// result: (UMODW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64UMODW)
// cond:
// result: (MOD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64MOD)
// cond:
// result: (UMOD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64UMOD)
// cond:
// result: (MODW (SignExt8to32 x) (SignExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64MODW)
// cond:
// result: (UMODW (ZeroExt8to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64UMODW)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[2]
mem := v.Args[2]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 2 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 4 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 8 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 3 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 5 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 6 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 7 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 12 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 16 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 24 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (Move [s%8] (OffPtr <dst.Type> dst [s-s%8]) (OffPtr <src.Type> src [s-s%8]) (Move [s-s%8] dst src mem))
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (DUFFCOPY [8 * (128 - int64(s/8))] dst src mem)
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (LoweredMove dst src (ADDconst <src.Type> src [s-8]) mem)
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MULW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64MULW)
// cond:
// result: (MULW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64MULW)
// cond:
// result: (FMULS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64FMULS)
// cond:
// result: (MUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64MUL)
// cond:
// result: (FMULD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64FMULD)
// cond:
// result: (MULW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64MULW)
// cond:
// result: (NotEqual (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64NotEqual)
// cond:
// result: (NotEqual (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64NotEqual)
// cond:
// result: (NotEqual (FCMPS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64NotEqual)
// cond:
// result: (NotEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64NotEqual)
// cond:
// result: (NotEqual (FCMPD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64NotEqual)
// cond:
// result: (NotEqual (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64NotEqual)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64XOR)
// cond:
// result: (NotEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64NotEqual)
// cond:
// result: (LoweredNilCheck ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64LoweredNilCheck)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64OR)
// result: (CSELULT (SRL <t> (ZeroExt16to64 x) (ZeroExt16to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SRL <t> (ZeroExt16to64 x) (ZeroExt32to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond: uint64(c) < 16
// result: (SRLconst (ZeroExt16to64 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 16
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// result: (CSELULT (SRL <t> (ZeroExt16to64 x) y) (Const64 <t> [0]) (CMPconst [64] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SRL <t> (ZeroExt16to64 x) (ZeroExt8to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond:
// result: (SRA (SignExt16to64 x) (CSELULT <y.Type> (ZeroExt16to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt16to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond:
// result: (SRA (SignExt16to64 x) (CSELULT <y.Type> (ZeroExt32to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt32to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond: uint64(c) < 16
// result: (SRAconst (SignExt16to64 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 16
// result: (SRAconst (SignExt16to64 x) [63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (SRA (SignExt16to64 x) (CSELULT <y.Type> y (Const64 <y.Type> [63]) (CMPconst [64] y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond:
// result: (SRA (SignExt16to64 x) (CSELULT <y.Type> (ZeroExt8to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt8to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// result: (CSELULT (SRL <t> (ZeroExt32to64 x) (ZeroExt16to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SRL <t> (ZeroExt32to64 x) (ZeroExt32to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond: uint64(c) < 32
// result: (SRLconst (ZeroExt32to64 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 32
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// result: (CSELULT (SRL <t> (ZeroExt32to64 x) y) (Const64 <t> [0]) (CMPconst [64] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SRL <t> (ZeroExt32to64 x) (ZeroExt8to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond:
// result: (SRA (SignExt32to64 x) (CSELULT <y.Type> (ZeroExt16to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt16to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond:
// result: (SRA (SignExt32to64 x) (CSELULT <y.Type> (ZeroExt32to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt32to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond: uint64(c) < 32
// result: (SRAconst (SignExt32to64 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 32
// result: (SRAconst (SignExt32to64 x) [63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (SRA (SignExt32to64 x) (CSELULT <y.Type> y (Const64 <y.Type> [63]) (CMPconst [64] y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond:
// result: (SRA (SignExt32to64 x) (CSELULT <y.Type> (ZeroExt8to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt8to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// result: (CSELULT (SRL <t> x (ZeroExt16to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SRL <t> x (ZeroExt32to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond: uint64(c) < 64
// result: (SRLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 64
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// result: (CSELULT (SRL <t> x y) (Const64 <t> [0]) (CMPconst [64] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SRL <t> x (ZeroExt8to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond:
// result: (SRA x (CSELULT <y.Type> (ZeroExt16to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt16to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond:
// result: (SRA x (CSELULT <y.Type> (ZeroExt32to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt32to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond: uint64(c) < 64
// result: (SRAconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 64
// result: (SRAconst x [63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (SRA x (CSELULT <y.Type> y (Const64 <y.Type> [63]) (CMPconst [64] y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond:
// result: (SRA x (CSELULT <y.Type> (ZeroExt8to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt8to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// result: (CSELULT (SRL <t> (ZeroExt8to64 x) (ZeroExt16to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SRL <t> (ZeroExt8to64 x) (ZeroExt32to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond: uint64(c) < 8
// result: (SRLconst (ZeroExt8to64 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 8
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
break
// result: (CSELULT (SRL <t> (ZeroExt8to64 x) y) (Const64 <t> [0]) (CMPconst [64] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// result: (CSELULT (SRL <t> (ZeroExt8to64 x) (ZeroExt8to64 y)) (Const64 <t> [0]) (CMPconst [64] (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64CSELULT)
// cond:
// result: (SRA (SignExt8to64 x) (CSELULT <y.Type> (ZeroExt16to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt16to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond:
// result: (SRA (SignExt8to64 x) (CSELULT <y.Type> (ZeroExt32to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt32to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond: uint64(c) < 8
// result: (SRAconst (SignExt8to64 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond: uint64(c) >= 8
// result: (SRAconst (SignExt8to64 x) [63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpARM64MOVDconst {
// cond:
// result: (SRA (SignExt8to64 x) (CSELULT <y.Type> y (Const64 <y.Type> [63]) (CMPconst [64] y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// cond:
// result: (SRA (SignExt8to64 x) (CSELULT <y.Type> (ZeroExt8to64 y) (Const64 <y.Type> [63]) (CMPconst [64] (ZeroExt8to64 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SRA)
// result: (MOVBstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVHstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVWstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (FMOVSstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (FMOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SUB)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SUB)
// cond:
// result: (FSUBS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64FSUBS)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SUB)
// cond:
// result: (FSUBD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64FSUBD)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SUB)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64SUB)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64XOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64XOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64XOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpARM64XOR)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[1]
mem := v.Args[1]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVBstore)
if v.AuxInt != 2 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVHstore)
if v.AuxInt != 4 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVWstore)
if v.AuxInt != 8 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVDstore)
if v.AuxInt != 3 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVBstore)
if v.AuxInt != 5 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVBstore)
if v.AuxInt != 6 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVHstore)
if v.AuxInt != 7 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVBstore)
if v.AuxInt != 12 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVWstore)
if v.AuxInt != 16 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVDstore)
if v.AuxInt != 24 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpARM64MOVDstore)
// result: (Zero [s%8] (OffPtr <ptr.Type> ptr [s-s%8]) (Zero [s-s%8] ptr mem))
for {
s := v.AuxInt
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(s%8 != 0 && s > 8) {
// result: (DUFFZERO [4 * (128 - int64(s/8))] ptr mem)
for {
s := v.AuxInt
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(s%8 == 0 && s > 24 && s <= 8*128 && !config.noDuffDevice) {
// result: (LoweredZero ptr (ADDconst <ptr.Type> [s-8] ptr) mem)
for {
s := v.AuxInt
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(s%8 == 0 && (s > 8*128 || config.noDuffDevice)) {
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSADD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSADD)
// cond:
// result: (ADDF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSADDF)
// result: (ADD c (ADD <t> x y))
for {
t := v.Type
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
c := v.Args[2]
// cond:
// result: (ADDD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSADDD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSADD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSADD)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSAND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSAND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSAND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSAND)
// cond:
// result: (LoweredAtomicAdd ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond: !config.BigEndian
// result: (LoweredAtomicAnd (AND <typ.UInt32Ptr> (MOVWconst [^3]) ptr) (OR <typ.UInt32> (SLL <typ.UInt32> (ZeroExt8to32 val) (SLLconst <typ.UInt32> [3] (ANDconst <typ.UInt32> [3] ptr))) (NORconst [0] <typ.UInt32> (SLL <typ.UInt32> (MOVWconst [0xff]) (SLLconst <typ.UInt32> [3] (ANDconst <typ.UInt32> [3] ptr))))) mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond: config.BigEndian
// result: (LoweredAtomicAnd (AND <typ.UInt32Ptr> (MOVWconst [^3]) ptr) (OR <typ.UInt32> (SLL <typ.UInt32> (ZeroExt8to32 val) (SLLconst <typ.UInt32> [3] (ANDconst <typ.UInt32> [3] (XORconst <typ.UInt32> [3] ptr)))) (NORconst [0] <typ.UInt32> (SLL <typ.UInt32> (MOVWconst [0xff]) (SLLconst <typ.UInt32> [3] (ANDconst <typ.UInt32> [3] (XORconst <typ.UInt32> [3] ptr)))))) mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicCas ptr old new_ mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
old := v.Args[1]
new_ := v.Args[2]
// cond:
// result: (LoweredAtomicExchange ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicLoad ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPSLoweredAtomicLoad)
// cond:
// result: (LoweredAtomicLoad ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPSLoweredAtomicLoad)
// cond: !config.BigEndian
// result: (LoweredAtomicOr (AND <typ.UInt32Ptr> (MOVWconst [^3]) ptr) (SLL <typ.UInt32> (ZeroExt8to32 val) (SLLconst <typ.UInt32> [3] (ANDconst <typ.UInt32> [3] ptr))) mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond: config.BigEndian
// result: (LoweredAtomicOr (AND <typ.UInt32Ptr> (MOVWconst [^3]) ptr) (SLL <typ.UInt32> (ZeroExt8to32 val) (SLLconst <typ.UInt32> [3] (ANDconst <typ.UInt32> [3] (XORconst <typ.UInt32> [3] ptr)))) mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicStore ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicStore ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (ADD (SRLconst <t> (SUB <t> x y) [1]) y)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSADD)
// result: (CALLclosure [argwid] entry closure mem)
for {
argwid := v.AuxInt
+ _ = v.Args[2]
entry := v.Args[0]
closure := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MOVWconvert x mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPSMOVWconvert)
// cond:
// result: (Select1 (DIV (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVU (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIV x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (DIVF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSDIVF)
// cond:
// result: (Select1 (DIVU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (DIVD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSDIVD)
// cond:
// result: (Select1 (DIV (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVU (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (SGTUconst [1] (XOR (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTUconst)
// cond:
// result: (SGTUconst [1] (XOR x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTUconst)
// cond:
// result: (FPFlagTrue (CMPEQF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (FPFlagTrue (CMPEQD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (SGTUconst [1] (XOR (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTUconst)
// cond:
// result: (XORconst [1] (XOR <typ.Bool> x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (SGTUconst [1] (XOR x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTUconst)
// cond:
// result: (XORconst [1] (SGT (SignExt16to32 y) (SignExt16to32 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (XORconst [1] (SGTU (ZeroExt16to32 y) (ZeroExt16to32 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (XORconst [1] (SGT y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (FPFlagTrue (CMPGEF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (XORconst [1] (SGTU y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (FPFlagTrue (CMPGED x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (XORconst [1] (SGT (SignExt8to32 y) (SignExt8to32 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (XORconst [1] (SGTU (ZeroExt8to32 y) (ZeroExt8to32 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (SGT (SignExt16to32 x) (SignExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGT)
// cond:
// result: (SGTU (ZeroExt16to32 x) (ZeroExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (SGT x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGT)
// cond:
// result: (FPFlagTrue (CMPGTF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (SGTU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (FPFlagTrue (CMPGTD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (SGT (SignExt8to32 x) (SignExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGT)
// cond:
// result: (SGTU (ZeroExt8to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (Select0 (MULT x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (MULTU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// result: (CALLinter [argwid] entry mem)
for {
argwid := v.AuxInt
+ _ = v.Args[1]
entry := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPSCALLinter)
// cond:
// result: (SGTU len idx)
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (XORconst [1] (SGTU idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (XORconst [1] (SGT (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (XORconst [1] (SGTU (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (XORconst [1] (SGT x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (FPFlagTrue (CMPGEF y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (XORconst [1] (SGTU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (FPFlagTrue (CMPGED y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (XORconst [1] (SGT (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (XORconst [1] (SGTU (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXORconst)
// cond:
// result: (SGT (SignExt16to32 y) (SignExt16to32 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGT)
// cond:
// result: (SGTU (ZeroExt16to32 y) (ZeroExt16to32 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (SGT y x)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGT)
// cond:
// result: (FPFlagTrue (CMPGTF y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (SGTU y x)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (FPFlagTrue (CMPGTD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagTrue)
// cond:
// result: (SGT (SignExt8to32 y) (SignExt8to32 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGT)
// cond:
// result: (SGTU (ZeroExt8to32 y) (ZeroExt8to32 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// result: (MOVBUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsBoolean()) {
// result: (MOVBload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && isSigned(t)) {
// result: (MOVBUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && !isSigned(t)) {
// result: (MOVHload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && isSigned(t)) {
// result: (MOVHUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && !isSigned(t)) {
// result: (MOVWload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) || isPtr(t)) {
// result: (MOVFload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitFloat(t)) {
// result: (MOVDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitFloat(t)) {
// result: (CMOVZ (SLL <t> x (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// result: (CMOVZ (SLL <t> x y) (MOVWconst [0]) (SGTUconst [32] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond: uint32(c) < 16
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) >= 16
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (CMOVZ (SLL <t> x (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// result: (CMOVZ (SLL <t> x (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// result: (CMOVZ (SLL <t> x y) (MOVWconst [0]) (SGTUconst [32] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond: uint32(c) < 32
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) >= 32
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (CMOVZ (SLL <t> x (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// result: (CMOVZ (SLL <t> x (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// result: (CMOVZ (SLL <t> x y) (MOVWconst [0]) (SGTUconst [32] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond: uint32(c) < 8
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) >= 8
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (CMOVZ (SLL <t> x (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond:
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSNEG {
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSNEG {
break
// cond:
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (SGTUconst [1] (OR <x.Type> x y))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSSGTUconst {
break
// cond:
// result: (SGTUconst [1] (OR <x.Type> x y))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSSGTUconst {
break
// cond:
// result: b
for {
+ _ = v.Args[2]
b := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpMIPSMOVWconst {
// cond: c!=0
// result: a
for {
+ _ = v.Args[2]
a := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpMIPSMOVWconst {
// cond:
// result: (CMOVZzero a c)
for {
+ _ = v.Args[2]
a := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
break
// cond: c!=0
// result: a
for {
+ _ = v.Args[1]
a := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond: is16Bit(c)
// result: (LoweredAtomicAddconst [c] ptr mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (LoweredAtomicStorezero ptr mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVBstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) && !isSigned(x.Type)) {
if x.Op != OpMIPSMOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPSMOVWreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVBstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) && isSigned(x.Type)) {
if x.Op != OpMIPSMOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPSMOVWreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVBreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVBUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVHUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVDstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVFstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVHstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) && !isSigned(x.Type)) {
if x.Op != OpMIPSMOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPSMOVWreg)
v.AddArg(x)
return true
if x.Op != OpMIPSMOVHUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPSMOVWreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVHstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2) && isSigned(x.Type)) {
if x.Op != OpMIPSMOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPSMOVWreg)
v.AddArg(x)
return true
if x.Op != OpMIPSMOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPSMOVWreg)
v.AddArg(x)
return true
if x.Op != OpMIPSMOVHload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPSMOVWreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVHUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpMIPSADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWaddr {
break
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (NEG x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (NEG x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond: isPowerOfTwo(int64(uint32(c)))
// result: (SLLconst [log2(int64(uint32(c)))] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond: isPowerOfTwo(int64(uint32(c)))
// result: (SLLconst [log2(int64(uint32(c)))] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (MOVWconst [int64(int32(c)*int32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (MOVWconst [int64(int32(c)*int32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (NORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (NORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (SGTUzero (OR <x.Type> x y))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSSGTUzero {
break
// cond:
// result: (SGTUzero (OR <x.Type> x y))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSSGTUzero {
break
// cond:
// result: (SGTconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (SGTzero x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (SGTUconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (SGTUzero x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond: uint32(c)>=32
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
break
// cond:
// result: (SLLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond: uint32(c)>=32
// result: (SRAconst x [31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (SRAconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond: uint32(c)>=32
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
break
// cond:
// result: (SRLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (SUBconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (NEG x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPSMOVWconst {
// cond:
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPSMOVWconst {
break
// cond:
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Select0 (DIV (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVU (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIV x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIV (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVU (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[2]
mem := v.Args[2]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 2 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 4 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 3 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
for {
s := v.AuxInt
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSMUL)
// cond:
// result: (MUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSMUL)
// cond:
// result: (MULF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSMULF)
// cond:
// result: (MULTU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSMULTU)
// cond:
// result: (MULD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSMULD)
// cond:
// result: (MUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSMUL)
// cond:
// result: (SGTU (XOR (ZeroExt16to32 x) (ZeroExt16to32 y)) (MOVWconst [0]))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (SGTU (XOR x y) (MOVWconst [0]))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (FPFlagFalse (CMPEQF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagFalse)
// cond:
// result: (FPFlagFalse (CMPEQD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSFPFlagFalse)
// cond:
// result: (SGTU (XOR (ZeroExt8to32 x) (ZeroExt8to32 y)) (MOVWconst [0]))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXOR)
// cond:
// result: (SGTU (XOR x y) (MOVWconst [0]))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSGTU)
// cond:
// result: (LoweredNilCheck ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPSLoweredNilCheck)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSOR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSOR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSOR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSOR)
// result: (CMOVZ (SRL <t> (ZeroExt16to32 x) (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// result: (CMOVZ (SRL <t> (ZeroExt16to32 x) y) (MOVWconst [0]) (SGTUconst [32] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond: uint32(c) < 16
// result: (SRLconst (SLLconst <typ.UInt32> x [16]) [c+16])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) >= 16
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (CMOVZ (SRL <t> (ZeroExt16to32 x) (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond:
// result: (SRA (SignExt16to32 x) ( CMOVZ <typ.UInt32> (ZeroExt16to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt16to32 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSRA)
// cond:
// result: (SRA (SignExt16to32 x) ( CMOVZ <typ.UInt32> y (MOVWconst [-1]) (SGTUconst [32] y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSRA)
// cond: uint32(c) < 16
// result: (SRAconst (SLLconst <typ.UInt32> x [16]) [c+16])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) >= 16
// result: (SRAconst (SLLconst <typ.UInt32> x [16]) [31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (SRA (SignExt16to32 x) ( CMOVZ <typ.UInt32> (ZeroExt8to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt8to32 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSRA)
// result: (CMOVZ (SRL <t> x (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// result: (CMOVZ (SRL <t> x y) (MOVWconst [0]) (SGTUconst [32] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond: uint32(c) < 32
// result: (SRLconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) >= 32
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (CMOVZ (SRL <t> x (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond:
// result: (SRA x ( CMOVZ <typ.UInt32> (ZeroExt16to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt16to32 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSRA)
// cond:
// result: (SRA x ( CMOVZ <typ.UInt32> y (MOVWconst [-1]) (SGTUconst [32] y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSRA)
// cond: uint32(c) < 32
// result: (SRAconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) >= 32
// result: (SRAconst x [31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (SRA x ( CMOVZ <typ.UInt32> (ZeroExt8to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt8to32 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSRA)
// result: (CMOVZ (SRL <t> (ZeroExt8to32 x) (ZeroExt16to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt16to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// result: (CMOVZ (SRL <t> (ZeroExt8to32 x) y) (MOVWconst [0]) (SGTUconst [32] y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond: uint32(c) < 8
// result: (SRLconst (SLLconst <typ.UInt32> x [24]) [c+24])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) >= 8
// result: (MOVWconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (CMOVZ (SRL <t> (ZeroExt8to32 x) (ZeroExt8to32 y) ) (MOVWconst [0]) (SGTUconst [32] (ZeroExt8to32 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSCMOVZ)
// cond:
// result: (SRA (SignExt16to32 x) ( CMOVZ <typ.UInt32> (ZeroExt16to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt16to32 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSRA)
// cond:
// result: (SRA (SignExt16to32 x) ( CMOVZ <typ.UInt32> y (MOVWconst [-1]) (SGTUconst [32] y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSRA)
// cond: uint32(c) < 8
// result: (SRAconst (SLLconst <typ.UInt32> x [24]) [c+24])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) >= 8
// result: (SRAconst (SLLconst <typ.UInt32> x [24]) [31])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (SRA (SignExt16to32 x) ( CMOVZ <typ.UInt32> (ZeroExt8to32 y) (MOVWconst [-1]) (SGTUconst [32] (ZeroExt8to32 y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSRA)
break
}
t := v_0.Type
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpMIPSADD)
break
}
t := v_0.Type
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpMIPSSUB)
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPSMOVWconst {
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPSMOVWconst {
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSDIV {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSDIVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
break
}
t := v_0.Type
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpMIPSSGTU)
break
}
t := v_0.Type
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpMIPSSGTU)
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPSMOVWconst {
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPSMOVWconst {
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPSMOVWconst {
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSMULTU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSDIV {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
if v_0.Op != OpMIPSDIVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPSMOVWconst {
break
// result: (MOVBstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVHstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVWstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVFstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSUB)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSUB)
// cond:
// result: (SUBF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSUBF)
// result: (SUB (SUB <t> x y) c)
for {
t := v.Type
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
c := v.Args[2]
// cond:
// result: (SUBD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSUBD)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSUB)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSSUB)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPSXOR)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[1]
mem := v.Args[1]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPSMOVBstore)
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%2 == 0) {
if v.AuxInt != 2 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPSMOVBstore)
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%4 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%2 == 0) {
if v.AuxInt != 4 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPSMOVBstore)
if v.AuxInt != 3 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPSMOVBstore)
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%2 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%4 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%4 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%4 == 0) {
for {
s := v.AuxInt
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(s > 16 || t.(*types.Type).Alignment()%4 != 0) {
if cmp.Op != OpMIPSSGT {
break
}
+ _ = cmp.Args[1]
b.Kind = BlockMIPSNE
b.SetControl(cmp)
return true
if cmp.Op != OpMIPSSGTU {
break
}
+ _ = cmp.Args[1]
b.Kind = BlockMIPSNE
b.SetControl(cmp)
return true
if cmp.Op != OpMIPSSGT {
break
}
+ _ = cmp.Args[1]
b.Kind = BlockMIPSEQ
b.SetControl(cmp)
return true
if cmp.Op != OpMIPSSGTU {
break
}
+ _ = cmp.Args[1]
b.Kind = BlockMIPSEQ
b.SetControl(cmp)
return true
// cond:
// result: (ADDV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64ADDV)
// cond:
// result: (ADDV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64ADDV)
// cond:
// result: (ADDF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64ADDF)
// cond:
// result: (ADDV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64ADDV)
// cond:
// result: (ADDD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64ADDD)
// cond:
// result: (ADDV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64ADDV)
// cond:
// result: (ADDV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64ADDV)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (ADDV (SRLVconst <t> (SUBV <t> x y) [1]) y)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64ADDV)
// result: (CALLclosure [argwid] entry closure mem)
for {
argwid := v.AuxInt
+ _ = v.Args[2]
entry := v.Args[0]
closure := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MOVVconvert x mem)
for {
+ _ = v.Args[1]
x := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPS64MOVVconvert)
// cond:
// result: (Select1 (DIVV (SignExt16to64 x) (SignExt16to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVVU (ZeroExt16to64 x) (ZeroExt16to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVV (SignExt32to64 x) (SignExt32to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (DIVF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64DIVF)
// cond:
// result: (Select1 (DIVVU (ZeroExt32to64 x) (ZeroExt32to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVV x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (DIVD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64DIVD)
// cond:
// result: (Select1 (DIVVU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVV (SignExt8to64 x) (SignExt8to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (DIVVU (ZeroExt8to64 x) (ZeroExt8to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (SGTU (MOVVconst [1]) (XOR (ZeroExt16to64 x) (ZeroExt16to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (SGTU (MOVVconst [1]) (XOR (ZeroExt32to64 x) (ZeroExt32to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (FPFlagTrue (CMPEQF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (SGTU (MOVVconst [1]) (XOR x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (FPFlagTrue (CMPEQD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (SGTU (MOVVconst [1]) (XOR (ZeroExt8to64 x) (ZeroExt8to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (XOR (MOVVconst [1]) (XOR <typ.Bool> x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (SGTU (MOVVconst [1]) (XOR x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (XOR (MOVVconst [1]) (SGT (SignExt16to64 y) (SignExt16to64 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGTU (ZeroExt16to64 y) (ZeroExt16to64 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGT (SignExt32to64 y) (SignExt32to64 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (FPFlagTrue (CMPGEF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (XOR (MOVVconst [1]) (SGTU (ZeroExt32to64 y) (ZeroExt32to64 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGT y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (FPFlagTrue (CMPGED x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (XOR (MOVVconst [1]) (SGTU y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGT (SignExt8to64 y) (SignExt8to64 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGTU (ZeroExt8to64 y) (ZeroExt8to64 x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (SGT (SignExt16to64 x) (SignExt16to64 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGT)
// cond:
// result: (SGTU (ZeroExt16to64 x) (ZeroExt16to64 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (SGT (SignExt32to64 x) (SignExt32to64 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGT)
// cond:
// result: (FPFlagTrue (CMPGTF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (SGTU (ZeroExt32to64 x) (ZeroExt32to64 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (SGT x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGT)
// cond:
// result: (FPFlagTrue (CMPGTD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (SGTU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (SGT (SignExt8to64 x) (SignExt8to64 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGT)
// cond:
// result: (SGTU (ZeroExt8to64 x) (ZeroExt8to64 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (SRAVconst (Select1 <typ.Int64> (MULV (SignExt32to64 x) (SignExt32to64 y))) [32])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAVconst)
// cond:
// result: (SRLVconst (Select1 <typ.UInt64> (MULVU (ZeroExt32to64 x) (ZeroExt32to64 y))) [32])
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRLVconst)
// cond:
// result: (Select0 (MULV x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (MULVU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// result: (CALLinter [argwid] entry mem)
for {
argwid := v.AuxInt
+ _ = v.Args[1]
entry := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPS64CALLinter)
// cond:
// result: (SGTU len idx)
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (XOR (MOVVconst [1]) (SGTU idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGT (SignExt16to64 x) (SignExt16to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGTU (ZeroExt16to64 x) (ZeroExt16to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGT (SignExt32to64 x) (SignExt32to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (FPFlagTrue (CMPGEF y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (XOR (MOVVconst [1]) (SGTU (ZeroExt32to64 x) (ZeroExt32to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGT x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (FPFlagTrue (CMPGED y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (XOR (MOVVconst [1]) (SGTU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGT (SignExt8to64 x) (SignExt8to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR (MOVVconst [1]) (SGTU (ZeroExt8to64 x) (ZeroExt8to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (SGT (SignExt16to64 y) (SignExt16to64 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGT)
// cond:
// result: (SGTU (ZeroExt16to64 y) (ZeroExt16to64 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (SGT (SignExt32to64 y) (SignExt32to64 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGT)
// cond:
// result: (FPFlagTrue (CMPGTF y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (SGTU (ZeroExt32to64 y) (ZeroExt32to64 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (SGT y x)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGT)
// cond:
// result: (FPFlagTrue (CMPGTD y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagTrue)
// cond:
// result: (SGTU y x)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (SGT (SignExt8to64 y) (SignExt8to64 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGT)
// cond:
// result: (SGTU (ZeroExt8to64 y) (ZeroExt8to64 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// result: (MOVBUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsBoolean()) {
// result: (MOVBload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && isSigned(t)) {
// result: (MOVBUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && !isSigned(t)) {
// result: (MOVHload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && isSigned(t)) {
// result: (MOVHUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && !isSigned(t)) {
// result: (MOVWload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) && isSigned(t)) {
// result: (MOVWUload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) && !isSigned(t)) {
// result: (MOVVload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitInt(t) || isPtr(t)) {
// result: (MOVFload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitFloat(t)) {
// result: (MOVDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitFloat(t)) {
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt16to64 y))) (SLLV <t> x (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt32to64 y))) (SLLV <t> x (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) y)) (SLLV <t> x y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt8to64 y))) (SLLV <t> x (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt16to64 y))) (SLLV <t> x (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt32to64 y))) (SLLV <t> x (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) y)) (SLLV <t> x y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt8to64 y))) (SLLV <t> x (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt16to64 y))) (SLLV <t> x (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt32to64 y))) (SLLV <t> x (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) y)) (SLLV <t> x y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt8to64 y))) (SLLV <t> x (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt16to64 y))) (SLLV <t> x (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt32to64 y))) (SLLV <t> x (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) y)) (SLLV <t> x y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt8to64 y))) (SLLV <t> x (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// cond: is32Bit(c)
// result: (ADDVconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond: is32Bit(c)
// result: (ADDVconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVconst {
break
// cond:
// result: (SUBV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64NEGV {
// cond:
// result: (SUBV x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64NEGV {
break
// cond: is32Bit(c)
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond: is32Bit(c)
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
if x.Op != OpMIPS64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
if x.Op != OpMIPS64MOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVBreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVBUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVHUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVWreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVWUreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
if x.Op != OpMIPS64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
if x.Op != OpMIPS64MOVHUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
if x.Op != OpMIPS64MOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
if x.Op != OpMIPS64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
if x.Op != OpMIPS64MOVHload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVHUreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVWreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVWUreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
if x.Op != OpMIPS64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
if x.Op != OpMIPS64MOVHUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
if x.Op != OpMIPS64MOVWUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
if x.Op != OpMIPS64MOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
if x.Op != OpMIPS64MOVBUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
if x.Op != OpMIPS64MOVHload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
if x.Op != OpMIPS64MOVHUload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
if x.Op != OpMIPS64MOVWload {
break
}
+ _ = x.Args[1]
v.reset(OpMIPS64MOVVreg)
v.AddArg(x)
return true
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVWreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVWUreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64ADDVconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVaddr {
break
// cond: is32Bit(c)
// result: (NORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond: is32Bit(c)
// result: (NORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVconst {
break
// cond: is32Bit(c)
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond: is32Bit(c)
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: is32Bit(c)
// result: (SGTconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVconst {
break
// cond: is32Bit(c)
// result: (SGTUconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVconst {
break
// cond: uint64(c)>=64
// result: (MOVVconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
break
// cond:
// result: (SLLVconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond: uint64(c)>=64
// result: (SRAVconst x [63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond:
// result: (SRAVconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond: uint64(c)>=64
// result: (MOVVconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
break
// cond:
// result: (SRLVconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond: is32Bit(c)
// result: (SUBVconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond:
// result: (MOVVconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (NEGV x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVconst {
break
// cond: is32Bit(c)
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond: is32Bit(c)
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMIPS64MOVVconst {
break
// cond:
// result: (MOVVconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Select0 (DIVV (SignExt16to64 x) (SignExt16to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVVU (ZeroExt16to64 x) (ZeroExt16to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVV (SignExt32to64 x) (SignExt32to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVVU (ZeroExt32to64 x) (ZeroExt32to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVV x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVVU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVV (SignExt8to64 x) (SignExt8to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
// cond:
// result: (Select0 (DIVVU (ZeroExt8to64 x) (ZeroExt8to64 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect0)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[2]
mem := v.Args[2]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 2 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 4 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 3 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
for {
s := v.AuxInt
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// cond:
// result: (Select1 (MULVU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (Select1 (MULVU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (MULF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64MULF)
// cond:
// result: (Select1 (MULVU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (MULD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64MULD)
// cond:
// result: (Select1 (MULVU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpSelect1)
// cond:
// result: (SGTU (XOR (ZeroExt16to32 x) (ZeroExt16to64 y)) (MOVVconst [0]))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (SGTU (XOR (ZeroExt32to64 x) (ZeroExt32to64 y)) (MOVVconst [0]))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (FPFlagFalse (CMPEQF x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagFalse)
// cond:
// result: (SGTU (XOR x y) (MOVVconst [0]))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (FPFlagFalse (CMPEQD x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64FPFlagFalse)
// cond:
// result: (SGTU (XOR (ZeroExt8to64 x) (ZeroExt8to64 y)) (MOVVconst [0]))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (SGTU (XOR x y) (MOVVconst [0]))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SGTU)
// cond:
// result: (LoweredNilCheck ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPS64LoweredNilCheck)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64OR)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt16to64 y))) (SRLV <t> (ZeroExt16to64 x) (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt32to64 y))) (SRLV <t> (ZeroExt16to64 x) (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) y)) (SRLV <t> (ZeroExt16to64 x) y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt8to64 y))) (SRLV <t> (ZeroExt16to64 x) (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (SRAV (SignExt16to64 x) (OR <t> (NEGV <t> (SGTU (ZeroExt16to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV (SignExt16to64 x) (OR <t> (NEGV <t> (SGTU (ZeroExt32to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV (SignExt16to64 x) (OR <t> (NEGV <t> (SGTU y (Const64 <typ.UInt64> [63]))) y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV (SignExt16to64 x) (OR <t> (NEGV <t> (SGTU (ZeroExt8to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt16to64 y))) (SRLV <t> (ZeroExt32to64 x) (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt32to64 y))) (SRLV <t> (ZeroExt32to64 x) (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) y)) (SRLV <t> (ZeroExt32to64 x) y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt8to64 y))) (SRLV <t> (ZeroExt32to64 x) (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (SRAV (SignExt32to64 x) (OR <t> (NEGV <t> (SGTU (ZeroExt16to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV (SignExt32to64 x) (OR <t> (NEGV <t> (SGTU (ZeroExt32to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV (SignExt32to64 x) (OR <t> (NEGV <t> (SGTU y (Const64 <typ.UInt64> [63]))) y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV (SignExt32to64 x) (OR <t> (NEGV <t> (SGTU (ZeroExt8to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt16to64 y))) (SRLV <t> x (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt32to64 y))) (SRLV <t> x (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) y)) (SRLV <t> x y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt8to64 y))) (SRLV <t> x (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (SRAV x (OR <t> (NEGV <t> (SGTU (ZeroExt16to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV x (OR <t> (NEGV <t> (SGTU (ZeroExt32to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV x (OR <t> (NEGV <t> (SGTU y (Const64 <typ.UInt64> [63]))) y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV x (OR <t> (NEGV <t> (SGTU (ZeroExt8to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt16to64 y))) (SRLV <t> (ZeroExt8to64 x) (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt32to64 y))) (SRLV <t> (ZeroExt8to64 x) (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) y)) (SRLV <t> (ZeroExt8to64 x) y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (AND (NEGV <t> (SGTU (Const64 <typ.UInt64> [64]) (ZeroExt8to64 y))) (SRLV <t> (ZeroExt8to64 x) (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64AND)
// result: (SRAV (SignExt8to64 x) (OR <t> (NEGV <t> (SGTU (ZeroExt16to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt16to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV (SignExt8to64 x) (OR <t> (NEGV <t> (SGTU (ZeroExt32to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt32to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV (SignExt8to64 x) (OR <t> (NEGV <t> (SGTU y (Const64 <typ.UInt64> [63]))) y))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
// result: (SRAV (SignExt8to64 x) (OR <t> (NEGV <t> (SGTU (ZeroExt8to64 y) (Const64 <typ.UInt64> [63]))) (ZeroExt8to64 y)))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SRAV)
if v_0.Op != OpMIPS64DIVVU {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64DIVVU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
if v_0.Op != OpMIPS64DIVV {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64DIVVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
if v_0.Op != OpMIPS64DIVVU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
if v_0.Op != OpMIPS64DIVVU {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpMIPS64MOVVconst {
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64MULVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64DIVV {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
if v_0.Op != OpMIPS64DIVVU {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpMIPS64MOVVconst {
break
// result: (MOVBstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVHstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVWstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVVstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVFstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (SUBV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SUBV)
// cond:
// result: (SUBV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SUBV)
// cond:
// result: (SUBF x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SUBF)
// cond:
// result: (SUBV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SUBV)
// cond:
// result: (SUBD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SUBD)
// cond:
// result: (SUBV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SUBV)
// cond:
// result: (SUBV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64SUBV)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMIPS64XOR)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[1]
mem := v.Args[1]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPS64MOVBstore)
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%2 == 0) {
if v.AuxInt != 2 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPS64MOVBstore)
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%4 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%2 == 0) {
if v.AuxInt != 4 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPS64MOVBstore)
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%8 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%4 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%2 == 0) {
if v.AuxInt != 3 {
break
}
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpMIPS64MOVBstore)
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%2 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%4 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%8 == 0) {
break
}
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.(*types.Type).Alignment()%8 == 0) {
for {
s := v.AuxInt
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(s%8 == 0 && s > 24 && s <= 8*128 && t.(*types.Type).Alignment()%8 == 0 && !config.noDuffDevice) {
for {
s := v.AuxInt
t := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !((s > 8*128 || config.noDuffDevice) || t.(*types.Type).Alignment()%8 != 0) {
if cmp.Op != OpMIPS64SGT {
break
}
+ _ = cmp.Args[1]
b.Kind = BlockMIPS64NE
b.SetControl(cmp)
return true
if cmp.Op != OpMIPS64SGTU {
break
}
+ _ = cmp.Args[1]
b.Kind = BlockMIPS64NE
b.SetControl(cmp)
return true
if v.Op != OpMIPS64SGTU {
break
}
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
if v.Op != OpMIPS64SGT {
break
}
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
if cmp.Op != OpMIPS64SGT {
break
}
+ _ = cmp.Args[1]
b.Kind = BlockMIPS64EQ
b.SetControl(cmp)
return true
if cmp.Op != OpMIPS64SGTU {
break
}
+ _ = cmp.Args[1]
b.Kind = BlockMIPS64EQ
b.SetControl(cmp)
return true
if v.Op != OpMIPS64SGTU {
break
}
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
if v.Op != OpMIPS64SGT {
break
}
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpMIPS64MOVVconst {
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64ADD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64ADD)
// cond:
// result: (FADDS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FADDS)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64ADD)
// cond:
// result: (FADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FADD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64ADD)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64ADD)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64AND)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64AND)
// cond:
// result: (LoweredAtomicAdd32 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicAdd64 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicAnd8 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicCas32 ptr old new_ mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
old := v.Args[1]
new_ := v.Args[2]
// cond:
// result: (LoweredAtomicCas64 ptr old new_ mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
old := v.Args[1]
new_ := v.Args[2]
// cond:
// result: (LoweredAtomicExchange32 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicExchange64 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicLoad32 ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64LoweredAtomicLoad32)
// cond:
// result: (LoweredAtomicLoad64 ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64LoweredAtomicLoad64)
// cond:
// result: (LoweredAtomicLoadPtr ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64LoweredAtomicLoadPtr)
// cond:
// result: (LoweredAtomicOr8 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicStore32 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicStore64 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (ADD (SRDconst <t> (SUB <t> x y) [1]) y)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64ADD)
// result: (CALLclosure [argwid] entry closure mem)
for {
argwid := v.AuxInt
+ _ = v.Args[2]
entry := v.Args[0]
closure := v.Args[1]
mem := v.Args[2]
// result: (MOVDconvert <t> x mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVDconvert)
// cond:
// result: (DIVW (SignExt16to32 x) (SignExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64DIVW)
// cond:
// result: (DIVWU (ZeroExt16to32 x) (ZeroExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64DIVWU)
// cond:
// result: (DIVW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64DIVW)
// cond:
// result: (FDIVS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FDIVS)
// cond:
// result: (DIVWU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64DIVWU)
// cond:
// result: (DIVD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64DIVD)
// cond:
// result: (FDIV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FDIV)
// cond:
// result: (DIVDU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64DIVDU)
// cond:
// result: (DIVW (SignExt8to32 x) (SignExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64DIVW)
// cond:
// result: (DIVWU (ZeroExt8to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64DIVWU)
// cond: isSigned(x.Type) && isSigned(y.Type)
// result: (Equal (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(isSigned(x.Type) && isSigned(y.Type)) {
// cond:
// result: (Equal (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64Equal)
// cond:
// result: (Equal (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64Equal)
// cond:
// result: (Equal (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64Equal)
// cond:
// result: (Equal (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64Equal)
// cond:
// result: (Equal (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64Equal)
// cond: isSigned(x.Type) && isSigned(y.Type)
// result: (Equal (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(isSigned(x.Type) && isSigned(y.Type)) {
// cond:
// result: (Equal (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64Equal)
// cond:
// result: (ANDconst [1] (EQV x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64ANDconst)
// cond:
// result: (Equal (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64Equal)
// cond:
// result: (GreaterEqual (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterEqual)
// cond:
// result: (GreaterEqual (CMPWU (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterEqual)
// cond:
// result: (GreaterEqual (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterEqual)
// cond:
// result: (FGreaterEqual (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FGreaterEqual)
// cond:
// result: (GreaterEqual (CMPWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterEqual)
// cond:
// result: (GreaterEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterEqual)
// cond:
// result: (FGreaterEqual (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FGreaterEqual)
// cond:
// result: (GreaterEqual (CMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterEqual)
// cond:
// result: (GreaterEqual (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterEqual)
// cond:
// result: (GreaterEqual (CMPWU (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterEqual)
// cond:
// result: (GreaterThan (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterThan)
// cond:
// result: (GreaterThan (CMPWU (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterThan)
// cond:
// result: (GreaterThan (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterThan)
// cond:
// result: (FGreaterThan (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FGreaterThan)
// cond:
// result: (GreaterThan (CMPWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterThan)
// cond:
// result: (GreaterThan (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterThan)
// cond:
// result: (FGreaterThan (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FGreaterThan)
// cond:
// result: (GreaterThan (CMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterThan)
// cond:
// result: (GreaterThan (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterThan)
// cond:
// result: (GreaterThan (CMPWU (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64GreaterThan)
// cond:
// result: (MULHW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64MULHW)
// cond:
// result: (MULHWU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64MULHWU)
// cond:
// result: (MULHD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64MULHD)
// cond:
// result: (MULHDU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64MULHDU)
// result: (CALLinter [argwid] entry mem)
for {
argwid := v.AuxInt
+ _ = v.Args[1]
entry := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64CALLinter)
// cond:
// result: (LessThan (CMPU idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpPPC64LessThan)
// cond:
// result: (LessEqual (CMPU idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpPPC64LessEqual)
// cond:
// result: (LessEqual (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessEqual)
// cond:
// result: (LessEqual (CMPWU (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessEqual)
// cond:
// result: (LessEqual (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessEqual)
// cond:
// result: (FLessEqual (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FLessEqual)
// cond:
// result: (LessEqual (CMPWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessEqual)
// cond:
// result: (LessEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessEqual)
// cond:
// result: (FLessEqual (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FLessEqual)
// cond:
// result: (LessEqual (CMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessEqual)
// cond:
// result: (LessEqual (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessEqual)
// cond:
// result: (LessEqual (CMPWU (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessEqual)
// cond:
// result: (LessThan (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessThan)
// cond:
// result: (LessThan (CMPWU (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessThan)
// cond:
// result: (LessThan (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessThan)
// cond:
// result: (FLessThan (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FLessThan)
// cond:
// result: (LessThan (CMPWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessThan)
// cond:
// result: (LessThan (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessThan)
// cond:
// result: (FLessThan (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FLessThan)
// cond:
// result: (LessThan (CMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessThan)
// cond:
// result: (LessThan (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessThan)
// cond:
// result: (LessThan (CMPWU (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64LessThan)
// result: (MOVDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitInt(t) || isPtr(t)) {
// result: (MOVWload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) && isSigned(t)) {
// result: (MOVWZload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) && !isSigned(t)) {
// result: (MOVHload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && isSigned(t)) {
// result: (MOVHZload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && !isSigned(t)) {
// result: (MOVBZload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsBoolean()) {
// result: (MOVBreg (MOVBZload ptr mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && isSigned(t)) {
// result: (MOVBZload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && !isSigned(t)) {
// result: (FMOVSload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitFloat(t)) {
// result: (FMOVDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitFloat(t)) {
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond: uint32(c) < 16
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 16
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond: uint64(c) < 16
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 16
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond: uint64(c) < 16
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond: uint32(c) < 32
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 32
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond: uint64(c) < 32
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 32
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond: uint64(c) < 32
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond:
// result: (SLD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLD)
// cond: uint32(c) < 64
// result: (SLDconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 64
// result: (SLDconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SLD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLD)
// cond: uint64(c) < 64
// result: (SLDconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 64
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond: uint64(c) < 64
// result: (SLDconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SLD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLD)
// cond:
// result: (SLD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLD)
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond: uint32(c) < 8
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 8
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond: uint64(c) < 8
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 8
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond: uint64(c) < 8
// result: (SLWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond:
// result: (SLW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SLW)
// cond:
// result: (Mod32 (SignExt16to32 x) (SignExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMod32)
// cond:
// result: (Mod32u (ZeroExt16to32 x) (ZeroExt16to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMod32u)
// cond:
// result: (SUB x (MULLW y (DIVW x y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SUB)
// cond:
// result: (SUB x (MULLW y (DIVWU x y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SUB)
// cond:
// result: (SUB x (MULLD y (DIVD x y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SUB)
// cond:
// result: (SUB x (MULLD y (DIVDU x y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SUB)
// cond:
// result: (Mod32 (SignExt8to32 x) (SignExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMod32)
// cond:
// result: (Mod32u (ZeroExt8to32 x) (ZeroExt8to32 y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpMod32u)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[2]
mem := v.Args[2]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 2 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 4 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
break
}
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 8 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 3 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 5 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 6 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 7 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (LoweredMove [s] dst src mem)
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MULLW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64MULLW)
// cond:
// result: (MULLW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64MULLW)
// cond:
// result: (FMULS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FMULS)
// cond:
// result: (MULLD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64MULLD)
// cond:
// result: (FMUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FMUL)
// cond:
// result: (MULLW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64MULLW)
// cond: isSigned(x.Type) && isSigned(y.Type)
// result: (NotEqual (CMPW (SignExt16to32 x) (SignExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(isSigned(x.Type) && isSigned(y.Type)) {
// cond:
// result: (NotEqual (CMPW (ZeroExt16to32 x) (ZeroExt16to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64NotEqual)
// cond:
// result: (NotEqual (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64NotEqual)
// cond:
// result: (NotEqual (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64NotEqual)
// cond:
// result: (NotEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64NotEqual)
// cond:
// result: (NotEqual (FCMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64NotEqual)
// cond: isSigned(x.Type) && isSigned(y.Type)
// result: (NotEqual (CMPW (SignExt8to32 x) (SignExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
if !(isSigned(x.Type) && isSigned(y.Type)) {
// cond:
// result: (NotEqual (CMPW (ZeroExt8to32 x) (ZeroExt8to32 y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64NotEqual)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64XOR)
// cond:
// result: (NotEqual (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64NotEqual)
// cond:
// result: (LoweredNilCheck ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64LoweredNilCheck)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64OR)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64OR)
// cond: d == 64-c
// result: (ROTLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SLDconst {
break
// cond: d == 64-c
// result: (ROTLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SRDconst {
break
// cond: d == 32-c
// result: (ROTLWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SLWconst {
break
// cond: d == 32-c
// result: (ROTLWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SRWconst {
break
// cond: is32Bit(c)
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: is32Bit(c)
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: (ANDN x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64NOR {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if y != v_1.Args[1] {
break
// cond:
// result: (ANDN x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64NOR {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
if y != v_0.Args[1] {
break
// cond:
// result: (MOVDconst [c&d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: (MOVDconst [c&d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond: isU16Bit(c)
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: isU16Bit(c)
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: (ANDconst [c&0xFF] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
if x.Op != OpPPC64MOVBZload {
break
}
+ _ = x.Args[1]
v.reset(OpPPC64ANDconst)
v.AuxInt = c & 0xFF
v.AddArg(x)
// cond:
// result: (ANDconst [c&0xFF] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpPPC64MOVBZload {
break
}
+ _ = x.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
break
// cond:
// result: (ANDconst [c&0xFF] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
if x.Op != OpPPC64MOVBZload {
break
}
+ _ = x.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
break
// cond:
// result: (ANDconst [c&0xFF] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
if x.Op != OpPPC64MOVBZload {
break
}
+ _ = x.Args[1]
v.reset(OpPPC64ANDconst)
v.AuxInt = c & 0xFF
v.AddArg(x)
// cond: is16Bit(c)
// result: (CMPconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: is16Bit(c)
// result: (InvertFlags (CMPconst y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond: isU16Bit(c)
// result: (CMPUconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: isU16Bit(c)
// result: (InvertFlags (CMPUconst y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: (CMPW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVWreg {
// cond:
// result: (CMPW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVWreg {
break
// cond: is16Bit(c)
// result: (CMPWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: is16Bit(c)
// result: (InvertFlags (CMPWconst y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: (CMPWU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVWZreg {
// cond:
// result: (CMPWU x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVWZreg {
break
// cond: isU16Bit(c)
// result: (CMPWUconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: isU16Bit(c)
// result: (InvertFlags (CMPWUconst y [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: (FMADD x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64FMUL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
z := v.Args[1]
// cond:
// result: (FMADD x y z)
for {
+ _ = v.Args[1]
z := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64FMUL {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
y := v_1.Args[1]
v.reset(OpPPC64FMADD)
// cond:
// result: (FMADDS x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64FMULS {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
z := v.Args[1]
// cond:
// result: (FMADDS x y z)
for {
+ _ = v.Args[1]
z := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64FMULS {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
y := v_1.Args[1]
v.reset(OpPPC64FMADDS)
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
// cond:
// result: (FMSUB x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64FMUL {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
z := v.Args[1]
// cond:
// result: (FMSUBS x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64FMULS {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
z := v.Args[1]
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
if x.Op != OpPPC64MOVBZload {
break
}
+ _ = x.Args[1]
v.reset(OpCopy)
v.Type = x.Type
v.AddArg(x)
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVBreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVBZreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
if x.Op != OpPPC64MOVHZload {
break
}
+ _ = x.Args[1]
v.reset(OpCopy)
v.Type = x.Type
v.AddArg(x)
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
if x.Op != OpPPC64MOVHload {
break
}
+ _ = x.Args[1]
v.reset(OpCopy)
v.Type = x.Type
v.AddArg(x)
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVHZreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
if y.Op != OpPPC64AND {
break
}
+ _ = y.Args[1]
y_0 := y.Args[0]
if y_0.Op != OpPPC64MOVDconst {
break
if y.Op != OpPPC64AND {
break
}
+ _ = y.Args[1]
y_1 := y.Args[1]
if y_1.Op != OpPPC64MOVDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
if y.Op != OpPPC64AND {
break
}
+ _ = y.Args[1]
y_0 := y.Args[0]
if y_0.Op != OpPPC64MOVDconst {
break
if y.Op != OpPPC64AND {
break
}
+ _ = y.Args[1]
y_1 := y.Args[1]
if y_1.Op != OpPPC64MOVDconst {
break
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVWreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVWZreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64ADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDaddr {
break
// cond: d == 64-c
// result: (ROTLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SLDconst {
break
// cond: d == 64-c
// result: (ROTLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SRDconst {
break
// cond: d == 32-c
// result: (ROTLWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SLWconst {
break
// cond: d == 32-c
// result: (ROTLWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SRWconst {
break
// cond:
// result: (MOVDconst [c|d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: (MOVDconst [c|d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond: isU32Bit(c)
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: isU32Bit(c)
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: is32Bit(-c)
// result: (ADDconst [-c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: d == 64-c
// result: (ROTLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SLDconst {
break
// cond: d == 64-c
// result: (ROTLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SRDconst {
break
// cond: d == 32-c
// result: (ROTLWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SLWconst {
break
// cond: d == 32-c
// result: (ROTLWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64SRWconst {
break
// cond:
// result: (MOVDconst [c^d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: (MOVDconst [c^d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond: isU32Bit(c)
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond: isU32Bit(c)
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpPPC64MOVDconst {
break
// cond:
// result: (SRW (ZeroExt16to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond: uint32(c) < 16
// result: (SRWconst (ZeroExt16to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 16
// result: (SRWconst (ZeroExt16to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRW (ZeroExt16to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond: uint64(c) < 16
// result: (SRWconst (ZeroExt16to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 16
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond: uint64(c) < 16
// result: (SRWconst (ZeroExt16to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRW (ZeroExt16to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond:
// result: (SRW (ZeroExt16to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond:
// result: (SRAW (SignExt16to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond: uint32(c) < 16
// result: (SRAWconst (SignExt16to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 16
// result: (SRAWconst (SignExt16to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRAW (SignExt16to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond: uint64(c) < 16
// result: (SRAWconst (SignExt16to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 16
// result: (SRAWconst (SignExt16to32 x) [63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) < 16
// result: (SRAWconst (SignExt16to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRAW (SignExt16to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond:
// result: (SRAW (SignExt16to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-16] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond:
// result: (SRW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond: uint32(c) < 32
// result: (SRWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 32
// result: (SRWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond: uint64(c) < 32
// result: (SRWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 32
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond: uint64(c) < 32
// result: (SRWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond:
// result: (SRW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond:
// result: (SRAW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond: uint32(c) < 32
// result: (SRAWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 32
// result: (SRAWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRAW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond: uint64(c) < 32
// result: (SRAWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 32
// result: (SRAWconst x [63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) < 32
// result: (SRAWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRAW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond:
// result: (SRAW x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-32] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond:
// result: (SRD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRD)
// cond: uint32(c) < 64
// result: (SRDconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 64
// result: (SRDconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRD)
// cond: uint64(c) < 64
// result: (SRDconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 64
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond: uint64(c) < 64
// result: (SRDconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRD)
// cond:
// result: (SRD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRD)
// cond:
// result: (SRAD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAD)
// cond: uint32(c) < 64
// result: (SRADconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 64
// result: (SRADconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRAD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAD)
// cond: uint64(c) < 64
// result: (SRADconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 64
// result: (SRADconst x [63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) < 64
// result: (SRADconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRAD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAD)
// cond:
// result: (SRAD x (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-64] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAD)
// cond:
// result: (SRW (ZeroExt8to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond: uint32(c) < 8
// result: (SRWconst (ZeroExt8to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 8
// result: (SRWconst (ZeroExt8to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRW (ZeroExt8to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond: uint64(c) < 8
// result: (SRWconst (ZeroExt8to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 8
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond: uint64(c) < 8
// result: (SRWconst (ZeroExt8to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRW (ZeroExt8to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond:
// result: (SRW (ZeroExt8to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRW)
// cond:
// result: (SRAW (SignExt8to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] (ZeroExt16to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond: uint32(c) < 8
// result: (SRAWconst (SignExt8to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint32(c) < 8
// result: (SRAWconst (SignExt8to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRAW (SignExt8to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] (ZeroExt32to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond: uint64(c) < 8
// result: (SRAWconst (SignExt8to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) >= 8
// result: (SRAWconst (SignExt8to32 x) [63])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: uint64(c) < 8
// result: (SRAWconst (SignExt8to32 x) [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpPPC64MOVDconst {
// cond:
// result: (SRAW (SignExt8to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// cond:
// result: (SRAW (SignExt8to32 x) (ORN y <typ.Int64> (MaskIfNotCarry (ADDconstForCarry [-8] (ZeroExt8to64 y)))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SRAW)
// result: (FMOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (FMOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (FMOVSstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVWstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVHstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVBstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SUB)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SUB)
// cond:
// result: (FSUBS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FSUBS)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SUB)
// cond:
// result: (FSUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64FSUB)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SUB)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64SUB)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64XOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64XOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64XOR)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpPPC64XOR)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[1]
mem := v.Args[1]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVBstorezero)
if v.AuxInt != 2 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVHstorezero)
if v.AuxInt != 3 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVBstorezero)
if v.AuxInt != 4 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVWstorezero)
if v.AuxInt != 5 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVBstorezero)
if v.AuxInt != 6 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVHstorezero)
if v.AuxInt != 7 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVBstorezero)
if v.AuxInt != 8 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVDstorezero)
if v.AuxInt != 12 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVWstorezero)
if v.AuxInt != 16 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVDstorezero)
if v.AuxInt != 24 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVDstorezero)
if v.AuxInt != 32 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVDstorezero)
if v.AuxInt != 40 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVDstorezero)
if v.AuxInt != 48 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVDstorezero)
if v.AuxInt != 56 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64MOVDstorezero)
// result: (LoweredZero [s] ptr mem)
for {
s := v.AuxInt
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpPPC64LoweredZero)
// cond:
// result: (ADDW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XADDW)
// cond:
// result: (ADDW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XADDW)
// cond:
// result: (FADDS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XFADDS)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XADD)
// cond:
// result: (FADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XFADD)
// cond:
// result: (ADDW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XADDW)
// cond:
// result: (ADD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XADD)
// cond:
// result: (ANDW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// cond:
// result: (ANDW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// cond:
// result: (AND x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XAND)
// cond:
// result: (ANDW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// cond:
// result: (ANDW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// cond:
// result: (AddTupleFirst32 val (LAA ptr val mem))
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (AddTupleFirst64 val (LAAG ptr val mem))
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicCas32 ptr old new_ mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
old := v.Args[1]
new_ := v.Args[2]
// cond:
// result: (LoweredAtomicCas64 ptr old new_ mem)
for {
+ _ = v.Args[3]
ptr := v.Args[0]
old := v.Args[1]
new_ := v.Args[2]
// cond:
// result: (LoweredAtomicExchange32 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (LoweredAtomicExchange64 ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MOVWZatomicload ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVWZatomicload)
// cond:
// result: (MOVDatomicload ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVDatomicload)
// cond:
// result: (MOVDatomicload ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVDatomicload)
// cond:
// result: (MOVWatomicstore ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MOVDatomicstore ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MOVDatomicstore ptr val mem)
for {
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (ADD (SRDconst <t> (SUB <t> x y) [1]) y)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XADD)
// result: (CALLclosure [argwid] entry closure mem)
for {
argwid := v.AuxInt
+ _ = v.Args[2]
entry := v.Args[0]
closure := v.Args[1]
mem := v.Args[2]
// result: (MOVDconvert <t> x mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVDconvert)
// cond:
// result: (DIVW (MOVHreg x) (MOVHreg y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XDIVW)
// cond:
// result: (DIVWU (MOVHZreg x) (MOVHZreg y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XDIVWU)
// cond:
// result: (DIVW (MOVWreg x) y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XDIVW)
// cond:
// result: (FDIVS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XFDIVS)
// cond:
// result: (DIVWU (MOVWZreg x) y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XDIVWU)
// cond:
// result: (DIVD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XDIVD)
// cond:
// result: (FDIV x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XFDIV)
// cond:
// result: (DIVDU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XDIVDU)
// cond:
// result: (DIVW (MOVBreg x) (MOVBreg y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XDIVW)
// cond:
// result: (DIVWU (MOVBZreg x) (MOVBZreg y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XDIVWU)
// cond:
// result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVHreg x) (MOVHreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDEQ)
// cond:
// result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDEQ)
// cond:
// result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (FCMPS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDEQ)
// cond:
// result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDEQ)
// cond:
// result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (FCMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDEQ)
// cond:
// result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVBreg x) (MOVBreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDEQ)
// cond:
// result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVBreg x) (MOVBreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDEQ)
// cond:
// result: (MOVDEQ (MOVDconst [0]) (MOVDconst [1]) (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDEQ)
// cond:
// result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVHreg x) (MOVHreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGE)
// cond:
// result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPU (MOVHZreg x) (MOVHZreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGE)
// cond:
// result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGE)
// cond:
// result: (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMPS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGEnoinv)
// cond:
// result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGE)
// cond:
// result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGE)
// cond:
// result: (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGEnoinv)
// cond:
// result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGE)
// cond:
// result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVBreg x) (MOVBreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGE)
// cond:
// result: (MOVDGE (MOVDconst [0]) (MOVDconst [1]) (CMPU (MOVBZreg x) (MOVBZreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGE)
// cond:
// result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVHreg x) (MOVHreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGT)
// cond:
// result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPU (MOVHZreg x) (MOVHZreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGT)
// cond:
// result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGT)
// cond:
// result: (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMPS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGTnoinv)
// cond:
// result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGT)
// cond:
// result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGT)
// cond:
// result: (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGTnoinv)
// cond:
// result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGT)
// cond:
// result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVBreg x) (MOVBreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGT)
// cond:
// result: (MOVDGT (MOVDconst [0]) (MOVDconst [1]) (CMPU (MOVBZreg x) (MOVBZreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGT)
// cond:
// result: (SRDconst [32] (MULLD (MOVWreg x) (MOVWreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRDconst)
// cond:
// result: (SRDconst [32] (MULLD (MOVWZreg x) (MOVWZreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRDconst)
// cond:
// result: (MULHD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMULHD)
// cond:
// result: (MULHDU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMULHDU)
if v_0.Op != OpLoad {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
mem := v_0.Args[1]
v.reset(OpS390XMOVDload)
// result: (CALLinter [argwid] entry mem)
for {
argwid := v.AuxInt
+ _ = v.Args[1]
entry := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XCALLinter)
// cond:
// result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPU idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpS390XMOVDLT)
// cond:
// result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPU idx len))
for {
+ _ = v.Args[1]
idx := v.Args[0]
len := v.Args[1]
v.reset(OpS390XMOVDLE)
// cond:
// result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVHreg x) (MOVHreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLE)
// cond:
// result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPU (MOVHZreg x) (MOVHZreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLE)
// cond:
// result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLE)
// cond:
// result: (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMPS y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGEnoinv)
// cond:
// result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLE)
// cond:
// result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLE)
// cond:
// result: (MOVDGEnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMP y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGEnoinv)
// cond:
// result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLE)
// cond:
// result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVBreg x) (MOVBreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLE)
// cond:
// result: (MOVDLE (MOVDconst [0]) (MOVDconst [1]) (CMPU (MOVBZreg x) (MOVBZreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLE)
// cond:
// result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVHreg x) (MOVHreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLT)
// cond:
// result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPU (MOVHZreg x) (MOVHZreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLT)
// cond:
// result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLT)
// cond:
// result: (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMPS y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGTnoinv)
// cond:
// result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPWU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLT)
// cond:
// result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLT)
// cond:
// result: (MOVDGTnoinv (MOVDconst [0]) (MOVDconst [1]) (FCMP y x))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDGTnoinv)
// cond:
// result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPU x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLT)
// cond:
// result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVBreg x) (MOVBreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLT)
// cond:
// result: (MOVDLT (MOVDconst [0]) (MOVDconst [1]) (CMPU (MOVBZreg x) (MOVBZreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDLT)
// result: (MOVDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitInt(t) || isPtr(t)) {
// result: (MOVWload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) && isSigned(t)) {
// result: (MOVWZload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitInt(t) && !isSigned(t)) {
// result: (MOVHload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && isSigned(t)) {
// result: (MOVHZload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is16BitInt(t) && !isSigned(t)) {
// result: (MOVBload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is8BitInt(t) && isSigned(t)) {
// result: (MOVBZload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsBoolean() || (is8BitInt(t) && !isSigned(t))) {
// result: (FMOVSload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is32BitFloat(t)) {
// result: (FMOVDload ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitFloat(t)) {
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPWUconst (MOVHZreg y) [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPWUconst y [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPUconst y [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPWUconst (MOVBZreg y) [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPWUconst (MOVHZreg y) [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPWUconst y [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPUconst y [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPWUconst (MOVBZreg y) [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (AND (SLD <t> x y) (SUBEcarrymask <t> (CMPWUconst (MOVHZreg y) [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XAND)
// result: (AND (SLD <t> x y) (SUBEcarrymask <t> (CMPWUconst y [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XAND)
// result: (AND (SLD <t> x y) (SUBEcarrymask <t> (CMPUconst y [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XAND)
// result: (AND (SLD <t> x y) (SUBEcarrymask <t> (CMPWUconst (MOVBZreg y) [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XAND)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPWUconst (MOVHZreg y) [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPWUconst y [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPUconst y [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SLW <t> x y) (SUBEWcarrymask <t> (CMPWUconst (MOVBZreg y) [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// cond:
// result: (MODW (MOVHreg x) (MOVHreg y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMODW)
// cond:
// result: (MODWU (MOVHZreg x) (MOVHZreg y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMODWU)
// cond:
// result: (MODW (MOVWreg x) y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMODW)
// cond:
// result: (MODWU (MOVWZreg x) y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMODWU)
// cond:
// result: (MODD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMODD)
// cond:
// result: (MODDU x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMODDU)
// cond:
// result: (MODW (MOVBreg x) (MOVBreg y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMODW)
// cond:
// result: (MODWU (MOVBZreg x) (MOVBZreg y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMODWU)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[2]
mem := v.Args[2]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 2 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 4 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 8 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 16 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 24 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 3 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 5 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 6 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
if v.AuxInt != 7 {
break
}
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (MVC [makeValAndOff(s, 0)] dst src mem)
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (MVC [makeValAndOff(s-256, 256)] dst src (MVC [makeValAndOff(256, 0)] dst src mem))
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (MVC [makeValAndOff(s-512, 512)] dst src (MVC [makeValAndOff(256, 256)] dst src (MVC [makeValAndOff(256, 0)] dst src mem)))
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (MVC [makeValAndOff(s-768, 768)] dst src (MVC [makeValAndOff(256, 512)] dst src (MVC [makeValAndOff(256, 256)] dst src (MVC [makeValAndOff(256, 0)] dst src mem))))
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// result: (LoweredMove [s%256] dst src (ADDconst <src.Type> src [(s/256)*256]) mem)
for {
s := v.AuxInt
+ _ = v.Args[2]
dst := v.Args[0]
src := v.Args[1]
mem := v.Args[2]
// cond:
// result: (MULLW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMULLW)
// cond:
// result: (MULLW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMULLW)
// cond:
// result: (FMULS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XFMULS)
// cond:
// result: (MULLD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMULLD)
// cond:
// result: (FMUL x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XFMUL)
// cond:
// result: (MULLW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMULLW)
// cond:
// result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVHreg x) (MOVHreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDNE)
// cond:
// result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMPW x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDNE)
// cond:
// result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (FCMPS x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDNE)
// cond:
// result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDNE)
// cond:
// result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (FCMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDNE)
// cond:
// result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVBreg x) (MOVBreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDNE)
// cond:
// result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMP (MOVBreg x) (MOVBreg y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDNE)
// cond:
// result: (MOVDNE (MOVDconst [0]) (MOVDconst [1]) (CMP x y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XMOVDNE)
// cond:
// result: (LoweredNilCheck ptr mem)
for {
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XLoweredNilCheck)
// cond:
// result: (ORW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XORW)
// cond:
// result: (ORW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XORW)
// cond:
// result: (OR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XOR)
// cond:
// result: (ORW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XORW)
// cond:
// result: (ORW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XORW)
// result: (ANDW (SRW <t> (MOVHZreg x) y) (SUBEWcarrymask <t> (CMPWUconst (MOVHZreg y) [15])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SRW <t> (MOVHZreg x) y) (SUBEWcarrymask <t> (CMPWUconst y [15])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SRW <t> (MOVHZreg x) y) (SUBEWcarrymask <t> (CMPUconst y [15])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SRW <t> (MOVHZreg x) y) (SUBEWcarrymask <t> (CMPWUconst (MOVBZreg y) [15])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (SRAW <t> (MOVHreg x) (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst (MOVHZreg y) [15])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (SRAW <t> (MOVHreg x) (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst y [15])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (SRAW <t> (MOVHreg x) (OR <y.Type> y (NOT <y.Type> (SUBEcarrymask <y.Type> (CMPUconst y [15])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (SRAW <t> (MOVHreg x) (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst (MOVBZreg y) [15])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (ANDW (SRW <t> x y) (SUBEWcarrymask <t> (CMPWUconst (MOVHZreg y) [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SRW <t> x y) (SUBEWcarrymask <t> (CMPWUconst y [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SRW <t> x y) (SUBEWcarrymask <t> (CMPUconst y [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SRW <t> x y) (SUBEWcarrymask <t> (CMPWUconst (MOVBZreg y) [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (SRAW <t> x (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst (MOVHZreg y) [31])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (SRAW <t> x (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst y [31])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (SRAW <t> x (OR <y.Type> y (NOT <y.Type> (SUBEcarrymask <y.Type> (CMPUconst y [31])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (SRAW <t> x (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst (MOVBZreg y) [31])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (AND (SRD <t> x y) (SUBEcarrymask <t> (CMPWUconst (MOVHZreg y) [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XAND)
// result: (AND (SRD <t> x y) (SUBEcarrymask <t> (CMPWUconst y [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XAND)
// result: (AND (SRD <t> x y) (SUBEcarrymask <t> (CMPUconst y [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XAND)
// result: (AND (SRD <t> x y) (SUBEcarrymask <t> (CMPWUconst (MOVBZreg y) [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XAND)
// result: (SRAD <t> x (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst (MOVHZreg y) [63])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAD)
// result: (SRAD <t> x (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst y [63])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAD)
// result: (SRAD <t> x (OR <y.Type> y (NOT <y.Type> (SUBEcarrymask <y.Type> (CMPUconst y [63])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAD)
// result: (SRAD <t> x (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst (MOVBZreg y) [63])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAD)
// result: (ANDW (SRW <t> (MOVBZreg x) y) (SUBEWcarrymask <t> (CMPWUconst (MOVHZreg y) [7])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SRW <t> (MOVBZreg x) y) (SUBEWcarrymask <t> (CMPWUconst y [7])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SRW <t> (MOVBZreg x) y) (SUBEWcarrymask <t> (CMPUconst y [7])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (ANDW (SRW <t> (MOVBZreg x) y) (SUBEWcarrymask <t> (CMPWUconst (MOVBZreg y) [7])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XANDW)
// result: (SRAW <t> (MOVBreg x) (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst (MOVHZreg y) [7])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (SRAW <t> (MOVBreg x) (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst y [7])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (SRAW <t> (MOVBreg x) (OR <y.Type> y (NOT <y.Type> (SUBEcarrymask <y.Type> (CMPUconst y [7])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// result: (SRAW <t> (MOVBreg x) (ORW <y.Type> y (NOTW <y.Type> (SUBEWcarrymask <y.Type> (CMPWUconst (MOVBZreg y) [7])))))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSRAW)
// cond: is32Bit(c)
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond: is32Bit(c)
// result: (ADDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond: d == 64-c
// result: (RLLGconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSLDconst {
break
// cond: d == 64-c
// result: (RLLGconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSRDconst {
break
// cond: ptr.Op != OpSB && idx.Op != OpSB
// result: (MOVDaddridx [c] {s} ptr idx)
for {
+ _ = v.Args[1]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDaddr {
// cond: ptr.Op != OpSB && idx.Op != OpSB
// result: (MOVDaddridx [c] {s} ptr idx)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XNEG {
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XNEG {
break
// result: (ADDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ADDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ADDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ADDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond:
// result: (ADDWconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (ADDWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond: d == 32-c
// result: (RLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSLWconst {
break
// cond: d == 32-c
// result: (RLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSRWconst {
break
// cond:
// result: (SUBW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XNEGW {
// cond:
// result: (SUBW x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XNEGW {
break
// result: (ADDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ADDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ADDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ADDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ADDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ADDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ADDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ADDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
}
d := v_0.AuxInt
s := v_0.Aux
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if !(is20Bit(c + d)) {
// cond: is32Bit(c) && c < 0
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond: is32Bit(c) && c < 0
// result: (ANDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVBZreg x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (MOVBZreg x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVHZreg x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (MOVHZreg x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVWZreg x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (MOVWZreg x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVDconst [c&d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVDconst [c&d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (ANDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ANDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ANDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ANDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond:
// result: (ANDWconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (ANDWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (ANDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ANDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ANDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ANDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ANDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ANDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ANDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ANDWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond: is32Bit(c)
// result: (CMPconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond: is32Bit(c)
// result: (InvertFlags (CMPconst x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond: isU32Bit(c)
// result: (CMPUconst x [int64(uint32(c))])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond: isU32Bit(c)
// result: (InvertFlags (CMPUconst x [int64(uint32(c))]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (CMPWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (InvertFlags (CMPWconst x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (CMPWUconst x [int64(uint32(c))])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (InvertFlags (CMPWUconst x [int64(uint32(c))]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (FMADD x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XFMUL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (FMADD x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XFMUL {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpS390XFMADD)
// cond:
// result: (FMADDS x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XFMULS {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (FMADDS x y z)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XFMULS {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
z := v_1.Args[1]
v.reset(OpS390XFMADDS)
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
// cond:
// result: (FMSUB x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XFMUL {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
// cond:
// result: (FMSUBS x y z)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XFMULS {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
z := v_0.Args[1]
x := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVBstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
if x.Op != OpS390XMOVDLT {
break
}
+ _ = x.Args[2]
x_0 := x.Args[0]
if x_0.Op != OpS390XMOVDconst {
break
if x.Op != OpS390XMOVDLE {
break
}
+ _ = x.Args[2]
x_0 := x.Args[0]
if x_0.Op != OpS390XMOVDconst {
break
if x.Op != OpS390XMOVDGT {
break
}
+ _ = x.Args[2]
x_0 := x.Args[0]
if x_0.Op != OpS390XMOVDconst {
break
if x.Op != OpS390XMOVDGE {
break
}
+ _ = x.Args[2]
x_0 := x.Args[0]
if x_0.Op != OpS390XMOVDconst {
break
if x.Op != OpS390XMOVDEQ {
break
}
+ _ = x.Args[2]
x_0 := x.Args[0]
if x_0.Op != OpS390XMOVDconst {
break
if x.Op != OpS390XMOVDNE {
break
}
+ _ = x.Args[2]
x_0 := x.Args[0]
if x_0.Op != OpS390XMOVDconst {
break
if x.Op != OpS390XMOVDGTnoinv {
break
}
+ _ = x.Args[2]
x_0 := x.Args[0]
if x_0.Op != OpS390XMOVDconst {
break
if x.Op != OpS390XMOVDGEnoinv {
break
}
+ _ = x.Args[2]
x_0 := x.Args[0]
if x_0.Op != OpS390XMOVDconst {
break
if x.Op != OpS390XMOVBZload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
if x.Op != OpS390XMOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVBreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVBZreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w0 := v.Args[1]
if w0.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w0 := v.Args[1]
if w0.Op != OpS390XSRWconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRWconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRWconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
p := v.Args[0]
x := v.Args[1]
if x.Op != OpS390XMOVBstoreconst {
if x.Aux != s {
break
}
+ _ = x.Args[1]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
// cond:
// result: (MOVDEQ x y cmp)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagEQ {
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagLT {
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagGT {
// cond:
// result: (MOVDLE x y cmp)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagEQ {
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagLT {
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagGT {
// cond:
// result: (MOVDLT x y cmp)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagEQ {
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagLT {
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagGT {
// cond:
// result: (MOVDGE x y cmp)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagEQ {
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagLT {
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagGT {
// cond:
// result: (MOVDGT x y cmp)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagEQ {
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagLT {
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagGT {
// cond:
// result: (MOVDNE x y cmp)
for {
+ _ = v.Args[2]
x := v.Args[0]
y := v.Args[1]
v_2 := v.Args[2]
// cond:
// result: y
for {
+ _ = v.Args[2]
y := v.Args[0]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagEQ {
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagLT {
// cond:
// result: x
for {
+ _ = v.Args[2]
x := v.Args[1]
v_2 := v.Args[2]
if v_2.Op != OpS390XFlagGT {
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDaddr {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w1 := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w2 := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w3 := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[4]
if p != x.Args[0] {
break
}
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRWconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRWconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVHstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
if x.Op != OpS390XMOVBZload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
if x.Op != OpS390XMOVHZload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
if x.Op != OpS390XMOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
if x.Op != OpS390XMOVBZload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
if x.Op != OpS390XMOVHload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVHreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVHZreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w0 := v.Args[1]
if w0.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w0 := v.Args[1]
if w0.Op != OpS390XSRWconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
p := v.Args[0]
x := v.Args[1]
if x.Op != OpS390XMOVHstoreconst {
if x.Aux != s {
break
}
+ _ = x.Args[1]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
v_2 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVWstore {
}
off2 := v_1.AuxInt
sym2 := v_1.Aux
+ _ = v_1.Args[2]
ptr2 := v_1.Args[0]
x := v_1.Args[1]
if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
mem := v.Args[1]
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
if x.Op != OpS390XMOVBZload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
if x.Op != OpS390XMOVHZload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
if x.Op != OpS390XMOVWZload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[2]
ptr := x.Args[0]
idx := x.Args[1]
mem := x.Args[2]
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
if x.Op != OpS390XMOVBload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
if x.Op != OpS390XMOVBZload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
if x.Op != OpS390XMOVHload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
if x.Op != OpS390XMOVHZload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
if x.Op != OpS390XMOVWload {
break
}
+ _ = x.Args[1]
v.reset(OpS390XMOVDreg)
v.AddArg(x)
return true
}
off := x.AuxInt
sym := x.Aux
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(x.Uses == 1 && clobber(x)) {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVWreg {
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVWZreg {
for {
off1 := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
off1 := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddridx {
break
}
off2 := v_0.AuxInt
sym2 := v_0.Aux
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
off := v.AuxInt
sym := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XADD {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
idx := v_0.Args[1]
val := v.Args[1]
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w0 := v.Args[1]
if w0.Op != OpS390XSRDconst {
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w1 := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[2]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w2 := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[2]
p := v.Args[0]
w3 := v.Args[1]
x := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[4]
if p != x.Args[0] {
break
}
for {
sc := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
sc := v.AuxInt
sym1 := v.Aux
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDaddr {
break
for {
c := v.AuxInt
s := v.Aux
+ _ = v.Args[1]
p := v.Args[0]
x := v.Args[1]
if x.Op != OpS390XMOVWstoreconst {
if x.Aux != s {
break
}
+ _ = x.Args[1]
if p != x.Args[0] {
break
}
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
ptr := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XADDconst {
for {
c := v.AuxInt
sym := v.Aux
+ _ = v.Args[3]
v_0 := v.Args[0]
if v_0.Op != OpS390XADDconst {
break
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
idx := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
idx := v.Args[0]
p := v.Args[1]
w0 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if idx != x.Args[0] {
break
}
// cond: is32Bit(c)
// result: (MULLDconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond: is32Bit(c)
// result: (MULLDconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// result: (MULLDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (MULLDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (MULLDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (MULLDload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond:
// result: (MULLWconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (MULLWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// result: (MULLWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (MULLWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (MULLWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (MULLWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (MULLWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (MULLWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (MULLWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (MULLWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond: isU32Bit(c)
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond: isU32Bit(c)
// result: (ORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond: d == 64-c
// result: (RLLGconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSLDconst {
break
// cond: d == 64-c
// result: (RLLGconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSRDconst {
break
// cond:
// result: (MOVDconst [c|d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVDconst [c|d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (ORload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ORload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ORload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ORload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZload {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
x1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZload {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
x1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVWZload {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
x1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
y := or.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
s0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
y := or.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
s0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVWZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVWZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVWZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVWZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+4 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0-16 && j1 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j1] (MOVWZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLDconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRload [i0] {s} p mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRload [i0] {s} p mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
x0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRload [i0] {s} p mem))
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRload [i0] {s} p mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
r0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRload [i0] {s} p mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVWZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
r0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y := or.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
s1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y := or.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
s1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZloadidx {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZloadidx {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZloadidx {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZloadidx {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVWZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVWZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVWZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVWZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+4 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVDBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLDconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLDconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && j1 == j0+16 && j0 % 32 == 0 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (OR <v.Type> (SLDconst <v.Type> [j0] (MOVWZreg (MOVWBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XOR {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLDconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond:
// result: (ORWconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (ORWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond: d == 32-c
// result: (RLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSLWconst {
break
// cond: d == 32-c
// result: (RLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSRWconst {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (ORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (ORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (ORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZload {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
x1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZload [i0] {s} p mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZload {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
sh := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
x1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
or := v.Args[1]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
y := or.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZload [i0] {s} p mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
s0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVBZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
x1 := v.Args[0]
if x1.Op != OpS390XMOVHZloadidx {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && p.Op != OpSB && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWZloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
s0 := v.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s1 := or.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+1 && j1 == j0-8 && j1 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j1] (MOVHZloadidx [i0] {s} p idx mem)) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s1 := or.Args[1]
if s1.Op != OpS390XSLWconst {
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRload [i0] {s} p mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZload {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRload [i0] {s} p mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
x0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRload [i0] {s} p mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
sh := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRload [i0] {s} p mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
r0 := v.Args[1]
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[1]
p := x1.Args[0]
mem := x1.Args[1]
or := v.Args[1]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[1]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
y := or.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRload [i0] {s} p mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[1]
p := x0.Args[0]
mem := x0.Args[1]
s1 := v.Args[1]
if x1.Aux != s {
break
}
+ _ = x1.Args[1]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZloadidx {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZloadidx {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZloadidx {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
x0 := v.Args[0]
if x0.Op != OpS390XMOVBZloadidx {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && x0.Uses == 1 && x1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
r0 := v.Args[0]
if r0.Op != OpS390XMOVHZreg {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: i1 == i0+2 && x0.Uses == 1 && x1.Uses == 1 && r0.Uses == 1 && r1.Uses == 1 && sh.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(r0) && clobber(r1) && clobber(sh)
// result: @mergePoint(b,x0,x1) (MOVWBRloadidx [i0] {s} p idx mem)
for {
+ _ = v.Args[1]
sh := v.Args[0]
if sh.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if p != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
p := x1.Args[0]
idx := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
s1 := v.Args[0]
if s1.Op != OpS390XSLWconst {
break
}
i1 := x1.AuxInt
s := x1.Aux
+ _ = x1.Args[2]
idx := x1.Args[0]
p := x1.Args[1]
mem := x1.Args[2]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
if x0.Aux != s {
break
}
+ _ = x0.Args[2]
if idx != x0.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if p != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
s0 := or.Args[0]
if s0.Op != OpS390XSLWconst {
break
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
p := x0.Args[0]
idx := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond: p.Op != OpSB && i1 == i0+1 && j1 == j0+8 && j0 % 16 == 0 && x0.Uses == 1 && x1.Uses == 1 && s0.Uses == 1 && s1.Uses == 1 && or.Uses == 1 && mergePoint(b,x0,x1) != nil && clobber(x0) && clobber(x1) && clobber(s0) && clobber(s1) && clobber(or)
// result: @mergePoint(b,x0,x1) (ORW <v.Type> (SLWconst <v.Type> [j0] (MOVHZreg (MOVHBRloadidx [i0] {s} p idx mem))) y)
for {
+ _ = v.Args[1]
or := v.Args[0]
if or.Op != OpS390XORW {
break
}
+ _ = or.Args[1]
y := or.Args[0]
s0 := or.Args[1]
if s0.Op != OpS390XSLWconst {
}
i0 := x0.AuxInt
s := x0.Aux
+ _ = x0.Args[2]
idx := x0.Args[0]
p := x0.Args[1]
mem := x0.Args[2]
if x1.Aux != s {
break
}
+ _ = x1.Args[2]
if idx != x1.Args[0] {
break
}
// cond:
// result: (SLDconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (SLD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XANDconst {
// cond:
// result: (SLWconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (SLW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XANDWconst {
// cond:
// result: (SRADconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (SRAD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XANDconst {
// cond:
// result: (SRAWconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (SRAW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XANDWconst {
// cond:
// result: (SRDconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (SRD x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XANDconst {
// cond:
// result: (SRWconst [c&63] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (SRW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XANDWconst {
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
w2 := v.Args[1]
w3 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XSRDconst {
for {
i := v.AuxInt
s := v.Aux
+ _ = v.Args[3]
p := v.Args[0]
w2 := v.Args[1]
w3 := v.Args[2]
if x.Aux != s {
break
}
+ _ = x.Args[3]
if p != x.Args[0] {
break
}
// cond: is32Bit(c)
// result: (SUBconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond: is32Bit(c)
// result: (NEG (SUBconst <v.Type> x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (SUBload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond:
// result: (SUBWconst x [c])
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (NEGW (SUBWconst <v.Type> x [c]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (SUBWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (SUBWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond: isU32Bit(c)
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond: isU32Bit(c)
// result: (XORconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond: d == 64-c
// result: (RLLGconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSLDconst {
break
// cond: d == 64-c
// result: (RLLGconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSRDconst {
break
// cond:
// result: (MOVDconst [c^d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVDconst [c^d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (XORload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (XORload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (XORload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVDload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (XORload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVDload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// cond:
// result: (XORWconst [c] x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpS390XMOVDconst {
// cond:
// result: (XORWconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
// cond: d == 32-c
// result: (RLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSLWconst {
break
// cond: d == 32-c
// result: (RLLconst [c] x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpS390XSRWconst {
break
// cond:
// result: (MOVDconst [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// result: (XORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (XORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (XORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (XORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (XORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
// result: (XORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (XORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
g := v.Args[0]
if g.Op != OpS390XMOVWZload {
break
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
x := v.Args[1]
// result: (XORWload <t> [off] {sym} x ptr mem)
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
g := v.Args[1]
if g.Op != OpS390XMOVWZload {
}
off := g.AuxInt
sym := g.Aux
+ _ = g.Args[1]
ptr := g.Args[0]
mem := g.Args[1]
if !(ptr.Op != OpSB && is20Bit(off) && canMergeLoad(v, g, x) && clobber(g)) {
if v_0.Op != OpS390XAddTupleFirst32 {
break
}
+ _ = v_0.Args[1]
val := v_0.Args[0]
tuple := v_0.Args[1]
v.reset(OpS390XADDW)
if v_0.Op != OpS390XAddTupleFirst64 {
break
}
+ _ = v_0.Args[1]
val := v_0.Args[0]
tuple := v_0.Args[1]
v.reset(OpS390XADD)
if v_0.Op != OpS390XAddTupleFirst32 {
break
}
+ _ = v_0.Args[1]
tuple := v_0.Args[1]
v.reset(OpSelect1)
v.AddArg(tuple)
if v_0.Op != OpS390XAddTupleFirst64 {
break
}
+ _ = v_0.Args[1]
tuple := v_0.Args[1]
v.reset(OpSelect1)
v.AddArg(tuple)
// result: (FMOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (FMOVSstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVDstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVWstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVHstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// result: (MOVBstore ptr val mem)
for {
t := v.Aux
+ _ = v.Args[2]
ptr := v.Args[0]
val := v.Args[1]
mem := v.Args[2]
// cond:
// result: (SUBW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSUBW)
// cond:
// result: (SUBW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSUBW)
// cond:
// result: (FSUBS x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XFSUBS)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSUB)
// cond:
// result: (FSUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XFSUB)
// cond:
// result: (SUBW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSUBW)
// cond:
// result: (SUB x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XSUB)
// cond:
// result: (XORW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XXORW)
// cond:
// result: (XORW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XXORW)
// cond:
// result: (XOR x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XXOR)
// cond:
// result: (XORW x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpS390XXORW)
if v.AuxInt != 0 {
break
}
+ _ = v.Args[1]
mem := v.Args[1]
v.reset(OpCopy)
v.Type = mem.Type
if v.AuxInt != 1 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVBstoreconst)
if v.AuxInt != 2 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVHstoreconst)
if v.AuxInt != 4 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVWstoreconst)
if v.AuxInt != 8 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVDstoreconst)
if v.AuxInt != 3 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVBstoreconst)
if v.AuxInt != 5 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVBstoreconst)
if v.AuxInt != 6 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVHstoreconst)
if v.AuxInt != 7 {
break
}
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
v.reset(OpS390XMOVWstoreconst)
// result: (CLEAR [makeValAndOff(s, 0)] destptr mem)
for {
s := v.AuxInt
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
if !(s > 0 && s <= 1024) {
// result: (LoweredZero [s%256] destptr (ADDconst <destptr.Type> destptr [(s/256)*256]) mem)
for {
s := v.AuxInt
+ _ = v.Args[1]
destptr := v.Args[0]
mem := v.Args[1]
if !(s > 1024) {
if v.Op != OpS390XMOVDLT {
break
}
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
if v.Op != OpS390XMOVDLE {
break
}
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
if v.Op != OpS390XMOVDGT {
break
}
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
if v.Op != OpS390XMOVDGE {
break
}
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
if v.Op != OpS390XMOVDEQ {
break
}
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
if v.Op != OpS390XMOVDNE {
break
}
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
if v.Op != OpS390XMOVDGTnoinv {
break
}
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
if v.Op != OpS390XMOVDGEnoinv {
break
}
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpS390XMOVDconst {
break
if v_0.Op != OpS390XMOVDLT {
break
}
+ _ = v_0.Args[2]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpS390XMOVDconst {
break
if v_0.Op != OpS390XMOVDLE {
break
}
+ _ = v_0.Args[2]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpS390XMOVDconst {
break
if v_0.Op != OpS390XMOVDGT {
break
}
+ _ = v_0.Args[2]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpS390XMOVDconst {
break
if v_0.Op != OpS390XMOVDGE {
break
}
+ _ = v_0.Args[2]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpS390XMOVDconst {
break
if v_0.Op != OpS390XMOVDEQ {
break
}
+ _ = v_0.Args[2]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpS390XMOVDconst {
break
if v_0.Op != OpS390XMOVDNE {
break
}
+ _ = v_0.Args[2]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpS390XMOVDconst {
break
if v_0.Op != OpS390XMOVDGTnoinv {
break
}
+ _ = v_0.Args[2]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpS390XMOVDconst {
break
if v_0.Op != OpS390XMOVDGEnoinv {
break
}
+ _ = v_0.Args[2]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpS390XMOVDconst {
break
if v_0.Op != OpComplexMake {
break
}
+ _ = v_0.Args[1]
imag := v_0.Args[1]
v.reset(OpCopy)
v.Type = imag.Type
if v_0.Op != OpComplexMake {
break
}
+ _ = v_0.Args[1]
real := v_0.Args[0]
v.reset(OpCopy)
v.Type = real.Type
if v_0.Op != OpIMake {
break
}
+ _ = v_0.Args[1]
data := v_0.Args[1]
v.reset(OpCopy)
v.Type = data.Type
if v_0.Op != OpIMake {
break
}
+ _ = v_0.Args[1]
itab := v_0.Args[0]
v.reset(OpCopy)
v.Type = itab.Type
// result: (ComplexMake (Load <typ.Float32> ptr mem) (Load <typ.Float32> (OffPtr <typ.Float32Ptr> [4] ptr) mem) )
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsComplex() && t.Size() == 8) {
// result: (ComplexMake (Load <typ.Float64> ptr mem) (Load <typ.Float64> (OffPtr <typ.Float64Ptr> [8] ptr) mem) )
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsComplex() && t.Size() == 16) {
// result: (StringMake (Load <typ.BytePtr> ptr mem) (Load <typ.Int> (OffPtr <typ.IntPtr> [config.PtrSize] ptr) mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsString()) {
// result: (SliceMake (Load <t.ElemType().PtrTo()> ptr mem) (Load <typ.Int> (OffPtr <typ.IntPtr> [config.PtrSize] ptr) mem) (Load <typ.Int> (OffPtr <typ.IntPtr> [2*config.PtrSize] ptr) mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsSlice()) {
// result: (IMake (Load <typ.BytePtr> ptr mem) (Load <typ.BytePtr> (OffPtr <typ.BytePtrPtr> [config.PtrSize] ptr) mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsInterface()) {
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
cap := v_0.Args[2]
v.reset(OpCopy)
v.Type = cap.Type
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
len := v_0.Args[1]
v.reset(OpCopy)
v.Type = len.Type
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
ptr := v_0.Args[0]
v.reset(OpCopy)
v.Type = ptr.Type
// result: (Store {typ.Float32} (OffPtr <typ.Float32Ptr> [4] dst) imag (Store {typ.Float32} dst real mem))
for {
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpComplexMake {
break
}
+ _ = v_1.Args[1]
real := v_1.Args[0]
imag := v_1.Args[1]
mem := v.Args[2]
// result: (Store {typ.Float64} (OffPtr <typ.Float64Ptr> [8] dst) imag (Store {typ.Float64} dst real mem))
for {
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpComplexMake {
break
}
+ _ = v_1.Args[1]
real := v_1.Args[0]
imag := v_1.Args[1]
mem := v.Args[2]
// cond:
// result: (Store {typ.Int} (OffPtr <typ.IntPtr> [config.PtrSize] dst) len (Store {typ.BytePtr} dst ptr mem))
for {
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpStringMake {
break
}
+ _ = v_1.Args[1]
ptr := v_1.Args[0]
len := v_1.Args[1]
mem := v.Args[2]
// cond:
// result: (Store {typ.Int} (OffPtr <typ.IntPtr> [2*config.PtrSize] dst) cap (Store {typ.Int} (OffPtr <typ.IntPtr> [config.PtrSize] dst) len (Store {typ.BytePtr} dst ptr mem)))
for {
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSliceMake {
break
}
+ _ = v_1.Args[2]
ptr := v_1.Args[0]
len := v_1.Args[1]
cap := v_1.Args[2]
// cond:
// result: (Store {typ.BytePtr} (OffPtr <typ.BytePtrPtr> [config.PtrSize] dst) data (Store {typ.Uintptr} dst itab mem))
for {
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpIMake {
break
}
+ _ = v_1.Args[1]
itab := v_1.Args[0]
data := v_1.Args[1]
mem := v.Args[2]
if v_0.Op != OpStringMake {
break
}
+ _ = v_0.Args[1]
len := v_0.Args[1]
v.reset(OpCopy)
v.Type = len.Type
if v_0.Op != OpStringMake {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
v.reset(OpCopy)
v.Type = ptr.Type
// cond:
// result: (Int64Make (Add32withcarry <typ.Int32> (Int64Hi x) (Int64Hi y) (Select1 <types.TypeFlags> (Add32carry (Int64Lo x) (Int64Lo y)))) (Select0 <typ.UInt32> (Add32carry (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
// cond:
// result: (Int64Make (And32 <typ.UInt32> (Int64Hi x) (Int64Hi y)) (And32 <typ.UInt32> (Int64Lo x) (Int64Lo y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
// cond:
// result: (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Eq32 (Int64Lo x) (Int64Lo y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpAndB)
// cond:
// result: (OrB (Greater32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Geq32U (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
// cond:
// result: (OrB (Greater32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Geq32U (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
// cond:
// result: (OrB (Greater32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Greater32U (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
// cond:
// result: (OrB (Greater32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Greater32U (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
v.reset(OpCopy)
v.Type = hi.Type
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
lo := v_0.Args[1]
v.reset(OpCopy)
v.Type = lo.Type
// cond:
// result: (OrB (Less32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Leq32U (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
// cond:
// result: (OrB (Less32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Leq32U (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
// cond:
// result: (OrB (Less32 (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Less32U (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
// cond:
// result: (OrB (Less32U (Int64Hi x) (Int64Hi y)) (AndB (Eq32 (Int64Hi x) (Int64Hi y)) (Less32U (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
// result: (Int64Make (Load <typ.Int32> (OffPtr <typ.Int32Ptr> [4] ptr) mem) (Load <typ.UInt32> ptr mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitInt(t) && !config.BigEndian && t.IsSigned()) {
// result: (Int64Make (Load <typ.UInt32> (OffPtr <typ.UInt32Ptr> [4] ptr) mem) (Load <typ.UInt32> ptr mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitInt(t) && !config.BigEndian && !t.IsSigned()) {
// result: (Int64Make (Load <typ.Int32> ptr mem) (Load <typ.UInt32> (OffPtr <typ.UInt32Ptr> [4] ptr) mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitInt(t) && config.BigEndian && t.IsSigned()) {
// result: (Int64Make (Load <typ.UInt32> ptr mem) (Load <typ.UInt32> (OffPtr <typ.UInt32Ptr> [4] ptr) mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(is64BitInt(t) && config.BigEndian && !t.IsSigned()) {
// cond: c != 0
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Lsh16x32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Lsh16x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond: c != 0
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Lsh32x32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Lsh32x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond:
// result: (Int64Make (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Lsh32x16 <typ.UInt32> hi s) (Rsh32Ux16 <typ.UInt32> lo (Sub16 <typ.UInt16> (Const16 <typ.UInt16> [32]) s))) (Lsh32x16 <typ.UInt32> lo (Sub16 <typ.UInt16> s (Const16 <typ.UInt16> [32])))) (Lsh32x16 <typ.UInt32> lo s))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
lo := v_0.Args[1]
s := v.Args[1]
// cond:
// result: (Int64Make (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Lsh32x32 <typ.UInt32> hi s) (Rsh32Ux32 <typ.UInt32> lo (Sub32 <typ.UInt32> (Const32 <typ.UInt32> [32]) s))) (Lsh32x32 <typ.UInt32> lo (Sub32 <typ.UInt32> s (Const32 <typ.UInt32> [32])))) (Lsh32x32 <typ.UInt32> lo s))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
lo := v_0.Args[1]
s := v.Args[1]
// cond: c != 0
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Lsh64x32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Lsh64x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond:
// result: (Int64Make (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Lsh32x8 <typ.UInt32> hi s) (Rsh32Ux8 <typ.UInt32> lo (Sub8 <typ.UInt8> (Const8 <typ.UInt8> [32]) s))) (Lsh32x8 <typ.UInt32> lo (Sub8 <typ.UInt8> s (Const8 <typ.UInt8> [32])))) (Lsh32x8 <typ.UInt32> lo s))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
lo := v_0.Args[1]
s := v.Args[1]
// cond: c != 0
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Lsh8x32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Lsh8x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond:
// result: (Int64Make (Add32 <typ.UInt32> (Mul32 <typ.UInt32> (Int64Lo x) (Int64Hi y)) (Add32 <typ.UInt32> (Mul32 <typ.UInt32> (Int64Hi x) (Int64Lo y)) (Select0 <typ.UInt32> (Mul32uhilo (Int64Lo x) (Int64Lo y))))) (Select1 <typ.UInt32> (Mul32uhilo (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
// cond:
// result: (OrB (Neq32 (Int64Hi x) (Int64Hi y)) (Neq32 (Int64Lo x) (Int64Lo y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpOrB)
// cond:
// result: (Int64Make (Or32 <typ.UInt32> (Int64Hi x) (Int64Hi y)) (Or32 <typ.UInt32> (Int64Lo x) (Int64Lo y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
// cond: c != 0
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Rsh16Ux32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Rsh16Ux32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond: c != 0
// result: (Signmask (SignExt16to32 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Rsh16x32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Rsh16x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond: c != 0
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Rsh32Ux32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Rsh32Ux32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond: c != 0
// result: (Signmask x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Rsh32x32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Rsh32x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond:
// result: (Int64Make (Rsh32Ux16 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux16 <typ.UInt32> lo s) (Lsh32x16 <typ.UInt32> hi (Sub16 <typ.UInt16> (Const16 <typ.UInt16> [32]) s))) (Rsh32Ux16 <typ.UInt32> hi (Sub16 <typ.UInt16> s (Const16 <typ.UInt16> [32])))))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
lo := v_0.Args[1]
s := v.Args[1]
// cond:
// result: (Int64Make (Rsh32Ux32 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux32 <typ.UInt32> lo s) (Lsh32x32 <typ.UInt32> hi (Sub32 <typ.UInt32> (Const32 <typ.UInt32> [32]) s))) (Rsh32Ux32 <typ.UInt32> hi (Sub32 <typ.UInt32> s (Const32 <typ.UInt32> [32])))))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
lo := v_0.Args[1]
s := v.Args[1]
// cond: c != 0
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Rsh64Ux32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Rsh64Ux32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond:
// result: (Int64Make (Rsh32Ux8 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux8 <typ.UInt32> lo s) (Lsh32x8 <typ.UInt32> hi (Sub8 <typ.UInt8> (Const8 <typ.UInt8> [32]) s))) (Rsh32Ux8 <typ.UInt32> hi (Sub8 <typ.UInt8> s (Const8 <typ.UInt8> [32])))))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
lo := v_0.Args[1]
s := v.Args[1]
// cond:
// result: (Int64Make (Rsh32x16 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux16 <typ.UInt32> lo s) (Lsh32x16 <typ.UInt32> hi (Sub16 <typ.UInt16> (Const16 <typ.UInt16> [32]) s))) (And32 <typ.UInt32> (Rsh32x16 <typ.UInt32> hi (Sub16 <typ.UInt16> s (Const16 <typ.UInt16> [32]))) (Zeromask (ZeroExt16to32 (Rsh16Ux32 <typ.UInt16> s (Const32 <typ.UInt32> [5])))))))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
lo := v_0.Args[1]
s := v.Args[1]
// cond:
// result: (Int64Make (Rsh32x32 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux32 <typ.UInt32> lo s) (Lsh32x32 <typ.UInt32> hi (Sub32 <typ.UInt32> (Const32 <typ.UInt32> [32]) s))) (And32 <typ.UInt32> (Rsh32x32 <typ.UInt32> hi (Sub32 <typ.UInt32> s (Const32 <typ.UInt32> [32]))) (Zeromask (Rsh32Ux32 <typ.UInt32> s (Const32 <typ.UInt32> [5]))))))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
lo := v_0.Args[1]
s := v.Args[1]
// cond: c != 0
// result: (Int64Make (Signmask (Int64Hi x)) (Signmask (Int64Hi x)))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Rsh64x32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Rsh64x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond:
// result: (Int64Make (Rsh32x8 <typ.UInt32> hi s) (Or32 <typ.UInt32> (Or32 <typ.UInt32> (Rsh32Ux8 <typ.UInt32> lo s) (Lsh32x8 <typ.UInt32> hi (Sub8 <typ.UInt8> (Const8 <typ.UInt8> [32]) s))) (And32 <typ.UInt32> (Rsh32x8 <typ.UInt32> hi (Sub8 <typ.UInt8> s (Const8 <typ.UInt8> [32]))) (Zeromask (ZeroExt8to32 (Rsh8Ux32 <typ.UInt8> s (Const32 <typ.UInt32> [5])))))))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
hi := v_0.Args[0]
lo := v_0.Args[1]
s := v.Args[1]
// cond: c != 0
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Rsh8Ux32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Rsh8Ux32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// cond: c != 0
// result: (Signmask (SignExt8to32 x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Rsh8x32 x lo)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: hi.Op != OpConst32
// result: (Rsh8x32 x (Or32 <typ.UInt32> (Zeromask hi) lo))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
if !(hi.Op != OpConst32) {
// result: (Store {hi.Type} (OffPtr <hi.Type.PtrTo()> [4] dst) hi (Store {lo.Type} dst lo mem))
for {
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
mem := v.Args[2]
// result: (Store {lo.Type} (OffPtr <lo.Type.PtrTo()> [4] dst) lo (Store {hi.Type} dst hi mem))
for {
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpInt64Make {
break
}
+ _ = v_1.Args[1]
hi := v_1.Args[0]
lo := v_1.Args[1]
mem := v.Args[2]
// cond:
// result: (Int64Make (Sub32withcarry <typ.Int32> (Int64Hi x) (Int64Hi y) (Select1 <types.TypeFlags> (Sub32carry (Int64Lo x) (Int64Lo y)))) (Select0 <typ.UInt32> (Sub32carry (Int64Lo x) (Int64Lo y))))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
lo := v_0.Args[1]
v.reset(OpTrunc32to16)
v.AddArg(lo)
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
lo := v_0.Args[1]
v.reset(OpCopy)
v.Type = lo.Type
if v_0.Op != OpInt64Make {
break
}
+ _ = v_0.Args[1]
lo := v_0.Args[1]
v.reset(OpTrunc32to8)
v.AddArg(lo)
// cond:
// result: (Int64Make (Xor32 <typ.UInt32> (Int64Hi x) (Int64Hi y)) (Xor32 <typ.UInt32> (Int64Lo x) (Int64Lo y)))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpInt64Make)
// cond:
// result: (Const16 [int64(int16(c+d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [int64(int16(c+d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Neg16 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Neg16 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpCom16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Add16 i (Add16 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Add16 i (Add16 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst16 {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Add16 i (Add16 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAdd16 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Add16 i (Add16 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAdd16 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst16 {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Add16 i (Sub16 <t> x z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub16 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Add16 i (Sub16 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Add16 i (Sub16 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Add16 i (Sub16 <t> x z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub16 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Sub16 (Add16 <t> x z) i)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub16 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst16 {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Sub16 (Add16 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst16 {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Sub16 (Add16 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst16 {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Sub16 (Add16 <t> x z) i)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub16 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst16 {
// cond:
// result: (Add16 (Const16 <t> [int64(int16(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAdd16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond:
// result: (Add16 (Const16 <t> [int64(int16(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAdd16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond:
// result: (Add16 (Const16 <t> [int64(int16(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond:
// result: (Add16 (Const16 <t> [int64(int16(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
// cond:
// result: (Sub16 (Const16 <t> [int64(int16(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond:
// result: (Sub16 (Const16 <t> [int64(int16(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond:
// result: (Add16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond:
// result: (Add16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
// cond:
// result: (Const32 [int64(int32(c+d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [int64(int32(c+d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Neg32 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Neg32 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpCom32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Add32 i (Add32 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Add32 i (Add32 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst32 {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Add32 i (Add32 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAdd32 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Add32 i (Add32 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAdd32 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst32 {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Add32 i (Sub32 <t> x z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub32 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Add32 i (Sub32 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Add32 i (Sub32 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Add32 i (Sub32 <t> x z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub32 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Sub32 (Add32 <t> x z) i)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub32 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst32 {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Sub32 (Add32 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst32 {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Sub32 (Add32 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst32 {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Sub32 (Add32 <t> x z) i)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub32 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst32 {
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAdd32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAdd32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond:
// result: (Sub32 (Const32 <t> [int64(int32(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Sub32 (Const32 <t> [int64(int32(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond:
// result: (Const32F [f2i(float64(i2f32(c) + i2f32(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond:
// result: (Const32F [f2i(float64(i2f32(c) + i2f32(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32F {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond:
// result: (Const64 [c+d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [c+d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Neg64 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Neg64 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpCom64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Add64 i (Add64 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Add64 i (Add64 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst64 {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Add64 i (Add64 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAdd64 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Add64 i (Add64 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAdd64 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst64 {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Add64 i (Sub64 <t> x z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub64 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Add64 i (Sub64 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Add64 i (Sub64 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Add64 i (Sub64 <t> x z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub64 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Sub64 (Add64 <t> x z) i)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub64 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst64 {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Sub64 (Add64 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst64 {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Sub64 (Add64 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst64 {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Sub64 (Add64 <t> x z) i)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub64 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst64 {
// cond:
// result: (Add64 (Const64 <t> [c+d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAdd64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (Add64 (Const64 <t> [c+d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAdd64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (Add64 (Const64 <t> [c+d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond:
// result: (Add64 (Const64 <t> [c+d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (Sub64 (Const64 <t> [c+d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (Sub64 (Const64 <t> [c+d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond:
// result: (Add64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (Add64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (Const64F [f2i(i2f(c) + i2f(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond:
// result: (Const64F [f2i(i2f(c) + i2f(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64F {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond:
// result: (Const8 [int64(int8(c+d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [int64(int8(c+d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Neg8 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Neg8 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpCom8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Add8 i (Add8 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Add8 i (Add8 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst8 {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Add8 i (Add8 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAdd8 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Add8 i (Add8 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAdd8 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst8 {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Add8 i (Sub8 <t> x z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub8 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Add8 i (Sub8 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Add8 i (Sub8 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Add8 i (Sub8 <t> x z))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub8 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Sub8 (Add8 <t> x z) i)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub8 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst8 {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Sub8 (Add8 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst8 {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Sub8 (Add8 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst8 {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Sub8 (Add8 <t> x z) i)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub8 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst8 {
// cond:
// result: (Add8 (Const8 <t> [int64(int8(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAdd8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
// cond:
// result: (Add8 (Const8 <t> [int64(int8(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAdd8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond:
// result: (Add8 (Const8 <t> [int64(int8(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond:
// result: (Add8 (Const8 <t> [int64(int8(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
// cond:
// result: (Sub8 (Const8 <t> [int64(int8(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
// cond:
// result: (Sub8 (Const8 <t> [int64(int8(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond:
// result: (Add8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond:
// result: (Add8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSub8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
// result: (OffPtr <t> x [c])
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (OffPtr <t> x [c])
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const16 [int64(int16(c&d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [int64(int16(c&d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
break
// cond:
// result: (And16 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd16 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (And16 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd16 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (And16 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (And16 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (And16 i (And16 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (And16 i (And16 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst16 {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (And16 i (And16 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd16 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (And16 i (And16 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd16 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst16 {
// cond:
// result: (And16 (Const16 <t> [int64(int16(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAnd16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond:
// result: (And16 (Const16 <t> [int64(int16(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAnd16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond:
// result: (And16 (Const16 <t> [int64(int16(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond:
// result: (And16 (Const16 <t> [int64(int16(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
// cond:
// result: (Const32 [int64(int32(c&d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [int64(int32(c&d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
break
// cond:
// result: (And32 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd32 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (And32 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd32 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (And32 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (And32 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (And32 i (And32 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (And32 i (And32 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst32 {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (And32 i (And32 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd32 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (And32 i (And32 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd32 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst32 {
// cond:
// result: (And32 (Const32 <t> [int64(int32(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAnd32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (And32 (Const32 <t> [int64(int32(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAnd32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (And32 (Const32 <t> [int64(int32(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond:
// result: (And32 (Const32 <t> [int64(int32(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond:
// result: (Const64 [c&d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [c&d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond:
// result: (And64 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd64 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (And64 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd64 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (And64 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (And64 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// result: (Rsh64Ux64 (Lsh64x64 <t> x (Const64 <t> [nlz(y)])) (Const64 <t> [nlz(y)]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Rsh64Ux64 (Lsh64x64 <t> x (Const64 <t> [nlz(y)])) (Const64 <t> [nlz(y)]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Lsh64x64 (Rsh64Ux64 <t> x (Const64 <t> [ntz(y)])) (Const64 <t> [ntz(y)]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Lsh64x64 (Rsh64Ux64 <t> x (Const64 <t> [ntz(y)])) (Const64 <t> [ntz(y)]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (And64 i (And64 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (And64 i (And64 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst64 {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (And64 i (And64 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd64 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (And64 i (And64 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd64 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst64 {
// cond:
// result: (And64 (Const64 <t> [c&d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAnd64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (And64 (Const64 <t> [c&d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAnd64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (And64 (Const64 <t> [c&d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond:
// result: (And64 (Const64 <t> [c&d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (Const8 [int64(int8(c&d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [int64(int8(c&d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
break
// cond:
// result: (And8 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd8 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (And8 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd8 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (And8 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (And8 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (And8 i (And8 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (And8 i (And8 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst8 {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (And8 i (And8 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd8 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (And8 i (And8 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpAnd8 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst8 {
// cond:
// result: (And8 (Const8 <t> [int64(int8(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAnd8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
// cond:
// result: (And8 (Const8 <t> [int64(int8(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAnd8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond:
// result: (And8 (Const8 <t> [int64(int8(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond:
// result: (And8 (Const8 <t> [int64(int8(c&d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
if v_0.Op != OpLoad {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
mem := v_0.Args[1]
v.reset(OpLoad)
// cond:
// result: (Add64 ptr off)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConvert {
break
}
+ _ = v_0_0.Args[1]
ptr := v_0_0.Args[0]
mem := v_0_0.Args[1]
off := v_0.Args[1]
// cond:
// result: (Add64 ptr off)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
off := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConvert {
break
}
+ _ = v_0_1.Args[1]
ptr := v_0_1.Args[0]
mem := v_0_1.Args[1]
if mem != v.Args[1] {
// cond:
// result: ptr
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConvert {
break
}
+ _ = v_0.Args[1]
ptr := v_0.Args[0]
mem := v_0.Args[1]
if mem != v.Args[1] {
// cond: d != 0
// result: (Const16 [int64(int16(c)/int16(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Neg16 (Div16 <t> n (Const16 <t> [-c])))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// result: (Rsh16Ux64 (And16 <t> x (Neg16 <t> x)) (Const64 <typ.UInt64> [15]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// result: (Rsh16x64 (Add16 <t> n (Rsh16Ux64 <t> (Rsh16x64 <t> n (Const64 <typ.UInt64> [15])) (Const64 <typ.UInt64> [16-log2(c)]))) (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// result: (Sub16 <t> (Rsh32x64 <t> (Mul32 <typ.UInt32> (Const32 <typ.UInt32> [int64(smagic(16,c).m)]) (SignExt16to32 x)) (Const64 <typ.UInt64> [16+smagic(16,c).s])) (Rsh32x64 <t> (SignExt16to32 x) (Const64 <typ.UInt64> [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond: d != 0
// result: (Const16 [int64(int16(uint16(c)/uint16(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond: isPowerOfTwo(c&0xffff)
// result: (Rsh16Ux64 n (Const64 <typ.UInt64> [log2(c&0xffff)]))
for {
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond: umagicOK(16, c) && config.RegSize == 8
// result: (Trunc64to16 (Rsh64Ux64 <typ.UInt64> (Mul64 <typ.UInt64> (Const64 <typ.UInt64> [int64(1<<16+umagic(16,c).m)]) (ZeroExt16to64 x)) (Const64 <typ.UInt64> [16+umagic(16,c).s])))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond: umagicOK(16, c) && config.RegSize == 4 && umagic(16,c).m&1 == 0
// result: (Trunc32to16 (Rsh32Ux64 <typ.UInt32> (Mul32 <typ.UInt32> (Const32 <typ.UInt32> [int64(1<<15+umagic(16,c).m/2)]) (ZeroExt16to32 x)) (Const64 <typ.UInt64> [16+umagic(16,c).s-1])))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond: umagicOK(16, c) && config.RegSize == 4 && c&1 == 0
// result: (Trunc32to16 (Rsh32Ux64 <typ.UInt32> (Mul32 <typ.UInt32> (Const32 <typ.UInt32> [int64(1<<15+(umagic(16,c).m+1)/2)]) (Rsh32Ux64 <typ.UInt32> (ZeroExt16to32 x) (Const64 <typ.UInt64> [1]))) (Const64 <typ.UInt64> [16+umagic(16,c).s-2])))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond: umagicOK(16, c) && config.RegSize == 4
// result: (Trunc32to16 (Rsh32Ux64 <typ.UInt32> (Avg32u (Lsh32x64 <typ.UInt32> (ZeroExt16to32 x) (Const64 <typ.UInt64> [16])) (Mul32 <typ.UInt32> (Const32 <typ.UInt32> [int64(umagic(16,c).m)]) (ZeroExt16to32 x))) (Const64 <typ.UInt64> [16+umagic(16,c).s-1])))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond: d != 0
// result: (Const32 [int64(int32(c)/int32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Neg32 (Div32 <t> n (Const32 <t> [-c])))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Rsh32Ux64 (And32 <t> x (Neg32 <t> x)) (Const64 <typ.UInt64> [31]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Rsh32x64 (Add32 <t> n (Rsh32Ux64 <t> (Rsh32x64 <t> n (Const64 <typ.UInt64> [31])) (Const64 <typ.UInt64> [32-log2(c)]))) (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Sub32 <t> (Rsh64x64 <t> (Mul64 <typ.UInt64> (Const64 <typ.UInt64> [int64(smagic(32,c).m)]) (SignExt32to64 x)) (Const64 <typ.UInt64> [32+smagic(32,c).s])) (Rsh64x64 <t> (SignExt32to64 x) (Const64 <typ.UInt64> [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Sub32 <t> (Rsh32x64 <t> (Hmul32 <t> (Const32 <typ.UInt32> [int64(int32(smagic(32,c).m/2))]) x) (Const64 <typ.UInt64> [smagic(32,c).s-1])) (Rsh32x64 <t> x (Const64 <typ.UInt64> [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Sub32 <t> (Rsh32x64 <t> (Add32 <t> (Hmul32 <t> (Const32 <typ.UInt32> [int64(int32(smagic(32,c).m))]) x) x) (Const64 <typ.UInt64> [smagic(32,c).s])) (Rsh32x64 <t> x (Const64 <typ.UInt64> [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const32F [f2i(float64(i2f32(c) / i2f32(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond: reciprocalExact32(float32(i2f(c)))
// result: (Mul32F x (Const32F <t> [f2i(1/i2f(c))]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32F {
// cond: d != 0
// result: (Const32 [int64(int32(uint32(c)/uint32(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond: isPowerOfTwo(c&0xffffffff)
// result: (Rsh32Ux64 n (Const64 <typ.UInt64> [log2(c&0xffffffff)]))
for {
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond: umagicOK(32, c) && config.RegSize == 4 && umagic(32,c).m&1 == 0
// result: (Rsh32Ux64 <typ.UInt32> (Hmul32u <typ.UInt32> (Const32 <typ.UInt32> [int64(int32(1<<31+umagic(32,c).m/2))]) x) (Const64 <typ.UInt64> [umagic(32,c).s-1]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond: umagicOK(32, c) && config.RegSize == 4 && c&1 == 0
// result: (Rsh32Ux64 <typ.UInt32> (Hmul32u <typ.UInt32> (Const32 <typ.UInt32> [int64(int32(1<<31+(umagic(32,c).m+1)/2))]) (Rsh32Ux64 <typ.UInt32> x (Const64 <typ.UInt64> [1]))) (Const64 <typ.UInt64> [umagic(32,c).s-2]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond: umagicOK(32, c) && config.RegSize == 4
// result: (Rsh32Ux64 <typ.UInt32> (Avg32u x (Hmul32u <typ.UInt32> (Const32 <typ.UInt32> [int64(int32(umagic(32,c).m))]) x)) (Const64 <typ.UInt64> [umagic(32,c).s-1]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond: umagicOK(32, c) && config.RegSize == 8 && umagic(32,c).m&1 == 0
// result: (Trunc64to32 (Rsh64Ux64 <typ.UInt64> (Mul64 <typ.UInt64> (Const64 <typ.UInt64> [int64(1<<31+umagic(32,c).m/2)]) (ZeroExt32to64 x)) (Const64 <typ.UInt64> [32+umagic(32,c).s-1])))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond: umagicOK(32, c) && config.RegSize == 8 && c&1 == 0
// result: (Trunc64to32 (Rsh64Ux64 <typ.UInt64> (Mul64 <typ.UInt64> (Const64 <typ.UInt64> [int64(1<<31+(umagic(32,c).m+1)/2)]) (Rsh64Ux64 <typ.UInt64> (ZeroExt32to64 x) (Const64 <typ.UInt64> [1]))) (Const64 <typ.UInt64> [32+umagic(32,c).s-2])))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond: umagicOK(32, c) && config.RegSize == 8
// result: (Trunc64to32 (Rsh64Ux64 <typ.UInt64> (Avg64u (Lsh64x64 <typ.UInt64> (ZeroExt32to64 x) (Const64 <typ.UInt64> [32])) (Mul64 <typ.UInt64> (Const64 <typ.UInt32> [int64(umagic(32,c).m)]) (ZeroExt32to64 x))) (Const64 <typ.UInt64> [32+umagic(32,c).s-1])))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond: d != 0
// result: (Const64 [c/d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Neg64 (Div64 <t> n (Const64 <t> [-c])))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Rsh64Ux64 (And64 <t> x (Neg64 <t> x)) (Const64 <typ.UInt64> [63]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Rsh64x64 (Add64 <t> n (Rsh64Ux64 <t> (Rsh64x64 <t> n (Const64 <typ.UInt64> [63])) (Const64 <typ.UInt64> [64-log2(c)]))) (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Sub64 <t> (Rsh64x64 <t> (Hmul64 <t> (Const64 <typ.UInt64> [int64(smagic(64,c).m/2)]) x) (Const64 <typ.UInt64> [smagic(64,c).s-1])) (Rsh64x64 <t> x (Const64 <typ.UInt64> [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Sub64 <t> (Rsh64x64 <t> (Add64 <t> (Hmul64 <t> (Const64 <typ.UInt64> [int64(smagic(64,c).m)]) x) x) (Const64 <typ.UInt64> [smagic(64,c).s])) (Rsh64x64 <t> x (Const64 <typ.UInt64> [63])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const64F [f2i(i2f(c) / i2f(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond: reciprocalExact64(i2f(c))
// result: (Mul64F x (Const64F <t> [f2i(1/i2f(c))]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64F {
// cond: d != 0
// result: (Const64 [int64(uint64(c)/uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond: isPowerOfTwo(c)
// result: (Rsh64Ux64 n (Const64 <typ.UInt64> [log2(c)]))
for {
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: umagicOK(64, c) && config.RegSize == 8 && umagic(64,c).m&1 == 0
// result: (Rsh64Ux64 <typ.UInt64> (Hmul64u <typ.UInt64> (Const64 <typ.UInt64> [int64(1<<63+umagic(64,c).m/2)]) x) (Const64 <typ.UInt64> [umagic(64,c).s-1]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: umagicOK(64, c) && config.RegSize == 8 && c&1 == 0
// result: (Rsh64Ux64 <typ.UInt64> (Hmul64u <typ.UInt64> (Const64 <typ.UInt64> [int64(1<<63+(umagic(64,c).m+1)/2)]) (Rsh64Ux64 <typ.UInt64> x (Const64 <typ.UInt64> [1]))) (Const64 <typ.UInt64> [umagic(64,c).s-2]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: umagicOK(64, c) && config.RegSize == 8
// result: (Rsh64Ux64 <typ.UInt64> (Avg64u x (Hmul64u <typ.UInt64> (Const64 <typ.UInt64> [int64(umagic(64,c).m)]) x)) (Const64 <typ.UInt64> [umagic(64,c).s-1]))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: d != 0
// result: (Const8 [int64(int8(c)/int8(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: (Neg8 (Div8 <t> n (Const8 <t> [-c])))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// result: (Rsh8Ux64 (And8 <t> x (Neg8 <t> x)) (Const64 <typ.UInt64> [7 ]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// result: (Rsh8x64 (Add8 <t> n (Rsh8Ux64 <t> (Rsh8x64 <t> n (Const64 <typ.UInt64> [ 7])) (Const64 <typ.UInt64> [ 8-log2(c)]))) (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// result: (Sub8 <t> (Rsh32x64 <t> (Mul32 <typ.UInt32> (Const32 <typ.UInt32> [int64(smagic(8,c).m)]) (SignExt8to32 x)) (Const64 <typ.UInt64> [8+smagic(8,c).s])) (Rsh32x64 <t> (SignExt8to32 x) (Const64 <typ.UInt64> [31])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond: d != 0
// result: (Const8 [int64(int8(uint8(c)/uint8(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond: isPowerOfTwo(c&0xff)
// result: (Rsh8Ux64 n (Const64 <typ.UInt64> [log2(c&0xff)]))
for {
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond: umagicOK(8, c)
// result: (Trunc32to8 (Rsh32Ux64 <typ.UInt32> (Mul32 <typ.UInt32> (Const32 <typ.UInt32> [int64(1<<8+umagic(8,c).m)]) (ZeroExt8to32 x)) (Const64 <typ.UInt64> [8+umagic(8,c).s])))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Eq16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAdd16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond:
// result: (Eq16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAdd16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond:
// result: (Eq16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond:
// result: (Eq16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Eq32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAdd32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Eq32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAdd32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (Eq32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond:
// result: (Eq32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Eq64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAdd64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (Eq64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAdd64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (Eq64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond:
// result: (Eq64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Eq8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAdd8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
// cond:
// result: (Eq8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAdd8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond:
// result: (Eq8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond:
// result: (Eq8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstBool {
break
// cond:
// result: (ConstBool [b2i(c == d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstBool {
break
// cond:
// result: (Not x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstBool {
break
// cond:
// result: (Not x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConstBool {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstBool {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConstBool {
// cond:
// result: (EqPtr (ITab x) (ITab y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpEqPtr)
// cond:
// result: (Not (IsNonNil p))
for {
+ _ = v.Args[1]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConstNil {
// cond:
// result: (Not (IsNonNil p))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstNil {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (ConstBool [b2i(a == b)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAddr {
break
// cond:
// result: (ConstBool [b2i(a == b)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAddr {
break
// cond:
// result: (EqPtr (SlicePtr x) (SlicePtr y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpEqPtr)
// cond:
// result: (ConstBool [b2i(c >= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(uint16(c) >= uint16(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(c >= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(uint32(c) >= uint32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(c >= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(uint64(c) >= uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(c >= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(uint8(c) >= uint8(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(c > d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(uint16(c) > uint16(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(c > d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(uint32(c) > uint32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(c > d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(uint64(c) > uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(c > d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(uint8(c) > uint8(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (IMake typ val)
for {
+ _ = v.Args[1]
typ := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpStructMake1 {
// cond:
// result: (IMake typ val)
for {
+ _ = v.Args[1]
typ := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpArrayMake1 {
// result: (StaticCall [argsize] {devirt(v, itab, off)} mem)
for {
argsize := v.AuxInt
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLoad {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpOffPtr {
break
if v_0_0_0_0.Op != OpIMake {
break
}
+ _ = v_0_0_0_0.Args[1]
v_0_0_0_0_0 := v_0_0_0_0.Args[0]
if v_0_0_0_0_0.Op != OpAddr {
break
// cond: (1 << 8) <= c
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt8to32 {
break
// cond: (1 << 8) <= c
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt8to64 {
break
// cond: (1 << 16) <= c
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt16to32 {
break
// cond: (1 << 16) <= c
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt16to64 {
break
// cond:
// result: (ConstBool [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt8to16 {
break
if v_0_0.Op != OpAnd8 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpConst8 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt8to16 {
break
if v_0_0.Op != OpAnd8 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst8 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt8to32 {
break
if v_0_0.Op != OpAnd8 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpConst8 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt8to32 {
break
if v_0_0.Op != OpAnd8 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst8 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt8to64 {
break
if v_0_0.Op != OpAnd8 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpConst8 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt8to64 {
break
if v_0_0.Op != OpAnd8 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst8 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt16to32 {
break
if v_0_0.Op != OpAnd16 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpConst16 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt16to32 {
break
if v_0_0.Op != OpAnd16 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst16 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt16to64 {
break
if v_0_0.Op != OpAnd16 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpConst16 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt16to64 {
break
if v_0_0.Op != OpAnd16 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst16 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt32to64 {
break
if v_0_0.Op != OpAnd32 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpConst32 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpZeroExt32to64 {
break
if v_0_0.Op != OpAnd32 {
break
}
+ _ = v_0_0.Args[1]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst32 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond: 0 <= c && c < d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(0 <= c && c < d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(0 <= c && c < d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMod32u {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[1]
if y != v.Args[1] {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMod64u {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[1]
if y != v.Args[1] {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond: 0 <= c && c <= d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond: 0 <= c && c <= d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
break
// cond: 0 <= c && c <= d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond: 0 <= c && c <= d
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(0 <= c && c <= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(0 <= c && c <= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpSliceLen {
break
// cond:
// result: (ConstBool [b2i(c <= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(uint16(c) <= uint16(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(c <= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(uint32(c) <= uint32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(c <= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(uint64(c) <= uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(c <= d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(uint8(c) <= uint8(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(c < d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(uint16(c) < uint16(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(c < d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(uint32(c) < uint32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(c < d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(uint64(c) < uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(c < d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(uint8(c) < uint8(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: x
for {
t1 := v.Type
+ _ = v.Args[1]
p1 := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpStore {
break
}
t2 := v_1.Aux
+ _ = v_1.Args[2]
p2 := v_1.Args[0]
x := v_1.Args[1]
if !(isSamePtr(p1, p2) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == t2.(*types.Type).Size()) {
// result: (StructMake0)
for {
t := v.Type
+ _ = v.Args[1]
if !(t.IsStruct() && t.NumFields() == 0 && fe.CanSSA(t)) {
break
}
// result: (StructMake1 (Load <t.FieldType(0)> (OffPtr <t.FieldType(0).PtrTo()> [0] ptr) mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsStruct() && t.NumFields() == 1 && fe.CanSSA(t)) {
// result: (StructMake2 (Load <t.FieldType(0)> (OffPtr <t.FieldType(0).PtrTo()> [0] ptr) mem) (Load <t.FieldType(1)> (OffPtr <t.FieldType(1).PtrTo()> [t.FieldOff(1)] ptr) mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsStruct() && t.NumFields() == 2 && fe.CanSSA(t)) {
// result: (StructMake3 (Load <t.FieldType(0)> (OffPtr <t.FieldType(0).PtrTo()> [0] ptr) mem) (Load <t.FieldType(1)> (OffPtr <t.FieldType(1).PtrTo()> [t.FieldOff(1)] ptr) mem) (Load <t.FieldType(2)> (OffPtr <t.FieldType(2).PtrTo()> [t.FieldOff(2)] ptr) mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsStruct() && t.NumFields() == 3 && fe.CanSSA(t)) {
// result: (StructMake4 (Load <t.FieldType(0)> (OffPtr <t.FieldType(0).PtrTo()> [0] ptr) mem) (Load <t.FieldType(1)> (OffPtr <t.FieldType(1).PtrTo()> [t.FieldOff(1)] ptr) mem) (Load <t.FieldType(2)> (OffPtr <t.FieldType(2).PtrTo()> [t.FieldOff(2)] ptr) mem) (Load <t.FieldType(3)> (OffPtr <t.FieldType(3).PtrTo()> [t.FieldOff(3)] ptr) mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsStruct() && t.NumFields() == 4 && fe.CanSSA(t)) {
// result: (ArrayMake0)
for {
t := v.Type
+ _ = v.Args[1]
if !(t.IsArray() && t.NumElem() == 0) {
break
}
// result: (ArrayMake1 (Load <t.ElemType()> ptr mem))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
mem := v.Args[1]
if !(t.IsArray() && t.NumElem() == 1 && fe.CanSSA(t)) {
// result: (Lsh16x64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Lsh16x64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [int64(int16(c) << uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond: uint64(c) >= 16
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (Lsh16x64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh16x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond: uint64(c1) >= uint64(c2) && uint64(c3) >= uint64(c2) && !uaddOvf(c1-c2, c3)
// result: (Lsh16x64 x (Const64 <typ.UInt64> [c1-c2+c3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh16Ux64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLsh16x64 {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst64 {
// result: (Lsh16x64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Lsh32x64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Lsh32x64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [int64(int32(c) << uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond: uint64(c) >= 32
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (Lsh32x64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh32x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond: uint64(c1) >= uint64(c2) && uint64(c3) >= uint64(c2) && !uaddOvf(c1-c2, c3)
// result: (Lsh32x64 x (Const64 <typ.UInt64> [c1-c2+c3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh32Ux64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLsh32x64 {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst64 {
// result: (Lsh32x64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Lsh64x64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Lsh64x64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [c << uint64(d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond: uint64(c) >= 64
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (Lsh64x64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh64x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond: uint64(c1) >= uint64(c2) && uint64(c3) >= uint64(c2) && !uaddOvf(c1-c2, c3)
// result: (Lsh64x64 x (Const64 <typ.UInt64> [c1-c2+c3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh64Ux64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLsh64x64 {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst64 {
// result: (Lsh64x64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Lsh8x64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: (Lsh8x64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [int64(int8(c) << uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond: uint64(c) >= 8
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (Lsh8x64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh8x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond: uint64(c1) >= uint64(c2) && uint64(c3) >= uint64(c2) && !uaddOvf(c1-c2, c3)
// result: (Lsh8x64 x (Const64 <typ.UInt64> [c1-c2+c3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh8Ux64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLsh8x64 {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst64 {
// result: (Lsh8x64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond: d != 0
// result: (Const16 [int64(int16(c % d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Mod16 <t> n (Const16 <t> [-c]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// result: (Sub16 x (Mul16 <t> (Div16 <t> x (Const16 <t> [c])) (Const16 <t> [c])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond: d != 0
// result: (Const16 [int64(uint16(c) % uint16(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (And16 n (Const16 <t> [(c&0xffff)-1]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// result: (Sub16 x (Mul16 <t> (Div16u <t> x (Const16 <t> [c])) (Const16 <t> [c])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond: d != 0
// result: (Const32 [int64(int32(c % d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Mod32 <t> n (Const32 <t> [-c]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Sub32 x (Mul32 <t> (Div32 <t> x (Const32 <t> [c])) (Const32 <t> [c])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond: d != 0
// result: (Const32 [int64(uint32(c) % uint32(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (And32 n (Const32 <t> [(c&0xffffffff)-1]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Sub32 x (Mul32 <t> (Div32u <t> x (Const32 <t> [c])) (Const32 <t> [c])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond: d != 0
// result: (Const64 [c % d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Mod64 <t> n (Const64 <t> [-c]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Sub64 x (Mul64 <t> (Div64 <t> x (Const64 <t> [c])) (Const64 <t> [c])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: d != 0
// result: (Const64 [int64(uint64(c) % uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (And64 n (Const64 <t> [c-1]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Sub64 x (Mul64 <t> (Div64u <t> x (Const64 <t> [c])) (Const64 <t> [c])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond: d != 0
// result: (Const8 [int64(int8(c % d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: (Mod8 <t> n (Const8 <t> [-c]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// result: (Sub8 x (Mul8 <t> (Div8 <t> x (Const8 <t> [c])) (Const8 <t> [c])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond: d != 0
// result: (Const8 [int64(uint8(c) % uint8(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: (And8 n (Const8 <t> [(c&0xff)-1]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// result: (Sub8 x (Mul8 <t> (Div8u <t> x (Const8 <t> [c])) (Const8 <t> [c])))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const16 [int64(int16(c*d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [int64(int16(c*d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Neg16 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Neg16 x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// result: (Lsh16x64 <t> n (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// result: (Lsh16x64 <t> n (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Neg16 (Lsh16x64 <t> n (Const64 <typ.UInt64> [log2(-c)])))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// result: (Neg16 (Lsh16x64 <t> n (Const64 <typ.UInt64> [log2(-c)])))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
break
// cond:
// result: (Mul16 (Const16 <t> [int64(int16(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpMul16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond:
// result: (Mul16 (Const16 <t> [int64(int16(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpMul16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond:
// result: (Mul16 (Const16 <t> [int64(int16(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMul16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond:
// result: (Mul16 (Const16 <t> [int64(int16(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMul16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
// cond:
// result: (Const32 [int64(int32(c*d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [int64(int32(c*d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Neg32 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Neg32 x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Lsh32x64 <t> n (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Lsh32x64 <t> n (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Neg32 (Lsh32x64 <t> n (Const64 <typ.UInt64> [log2(-c)])))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// result: (Neg32 (Lsh32x64 <t> n (Const64 <typ.UInt64> [log2(-c)])))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c*d))]) (Mul32 <t> (Const32 <t> [c]) x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Type != t {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c*d))]) (Mul32 <t> (Const32 <t> [c]) x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Type != t {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c*d))]) (Mul32 <t> (Const32 <t> [c]) x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
t := v_0.Type
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c*d))]) (Mul32 <t> (Const32 <t> [c]) x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
t := v_0.Type
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
break
// cond:
// result: (Mul32 (Const32 <t> [int64(int32(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpMul32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Mul32 (Const32 <t> [int64(int32(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpMul32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (Mul32 (Const32 <t> [int64(int32(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMul32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond:
// result: (Mul32 (Const32 <t> [int64(int32(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMul32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond:
// result: (Const32F [f2i(float64(i2f32(c) * i2f32(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond:
// result: (Const32F [f2i(float64(i2f32(c) * i2f32(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32F {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond:
// result: (Neg32F x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32F {
// cond:
// result: (Neg32F x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond:
// result: (Add32F x x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32F {
// cond:
// result: (Add32F x x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond:
// result: (Const64 [c*d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [c*d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Neg64 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Neg64 x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Lsh64x64 <t> n (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Lsh64x64 <t> n (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Neg64 (Lsh64x64 <t> n (Const64 <typ.UInt64> [log2(-c)])))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// result: (Neg64 (Lsh64x64 <t> n (Const64 <typ.UInt64> [log2(-c)])))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Add64 (Const64 <t> [c*d]) (Mul64 <t> (Const64 <t> [c]) x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Type != t {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (Add64 (Const64 <t> [c*d]) (Mul64 <t> (Const64 <t> [c]) x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Type != t {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (Add64 (Const64 <t> [c*d]) (Mul64 <t> (Const64 <t> [c]) x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
t := v_0.Type
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond:
// result: (Add64 (Const64 <t> [c*d]) (Mul64 <t> (Const64 <t> [c]) x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
t := v_0.Type
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond:
// result: (Mul64 (Const64 <t> [c*d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpMul64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (Mul64 (Const64 <t> [c*d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpMul64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (Mul64 (Const64 <t> [c*d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMul64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond:
// result: (Mul64 (Const64 <t> [c*d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMul64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (Const64F [f2i(i2f(c) * i2f(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond:
// result: (Const64F [f2i(i2f(c) * i2f(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64F {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond:
// result: (Neg64F x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64F {
// cond:
// result: (Neg64F x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond:
// result: (Add64F x x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64F {
// cond:
// result: (Add64F x x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond:
// result: (Const8 [int64(int8(c*d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [int64(int8(c*d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Neg8 x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Neg8 x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// result: (Lsh8x64 <t> n (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// result: (Lsh8x64 <t> n (Const64 <typ.UInt64> [log2(c)]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: (Neg8 (Lsh8x64 <t> n (Const64 <typ.UInt64> [log2(-c)])))
for {
t := v.Type
+ _ = v.Args[1]
n := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// result: (Neg8 (Lsh8x64 <t> n (Const64 <typ.UInt64> [log2(-c)])))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
break
// cond:
// result: (Mul8 (Const8 <t> [int64(int8(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpMul8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
// cond:
// result: (Mul8 (Const8 <t> [int64(int8(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpMul8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond:
// result: (Mul8 (Const8 <t> [int64(int8(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMul8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond:
// result: (Mul8 (Const8 <t> [int64(int8(c*d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpMul8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
if v_0.Op != OpSub16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpSub16)
if v_0.Op != OpSub32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpSub32)
if v_0.Op != OpSub64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpSub64)
if v_0.Op != OpSub8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpSub8)
// cond:
// result: (ConstBool [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Neq16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAdd16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond:
// result: (Neq16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAdd16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond:
// result: (Neq16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond:
// result: (Neq16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (ConstBool [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Neq32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAdd32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Neq32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAdd32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (Neq32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond:
// result: (Neq32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (ConstBool [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Neq64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAdd64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (Neq64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAdd64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (Neq64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond:
// result: (Neq64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (ConstBool [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: (Neq8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAdd8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
// cond:
// result: (Neq8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAdd8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond:
// result: (Neq8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond:
// result: (Neq8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstBool {
break
// cond:
// result: (ConstBool [b2i(c != d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstBool {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstBool {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConstBool {
// cond:
// result: (Not x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstBool {
break
// cond:
// result: (Not x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConstBool {
// cond:
// result: (NeqB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpNot {
break
// cond:
// result: (NeqB x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpNot {
break
// cond:
// result: (NeqPtr (ITab x) (ITab y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpNeqPtr)
// cond:
// result: (IsNonNil p)
for {
+ _ = v.Args[1]
p := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConstNil {
// cond:
// result: (IsNonNil p)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConstNil {
break
// cond:
// result: (NeqPtr (SlicePtr x) (SlicePtr y))
for {
+ _ = v.Args[1]
x := v.Args[0]
y := v.Args[1]
v.reset(OpNeqPtr)
// cond:
// result: mem
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpGetG {
break
// cond: mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize && warnRule(fe.Debug_checknil() && v.Pos.Line() > 1, v, "removed nil check")
// result: (Invalid)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLoad {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpOffPtr {
break
// cond: mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize && warnRule(fe.Debug_checknil() && v.Pos.Line() > 1, v, "removed nil check")
// result: (Invalid)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOffPtr {
break
if v_0_0.Op != OpLoad {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpOffPtr {
break
if v_0.Op != OpEq64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpNeq64)
if v_0.Op != OpEq32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpNeq32)
if v_0.Op != OpEq16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpNeq16)
if v_0.Op != OpEq8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpNeq8)
if v_0.Op != OpEqB {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpNeqB)
if v_0.Op != OpNeq64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpEq64)
if v_0.Op != OpNeq32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpEq32)
if v_0.Op != OpNeq16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpEq16)
if v_0.Op != OpNeq8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpEq8)
if v_0.Op != OpNeqB {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpEqB)
if v_0.Op != OpGreater64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLeq64)
if v_0.Op != OpGreater32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLeq32)
if v_0.Op != OpGreater16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLeq16)
if v_0.Op != OpGreater8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLeq8)
if v_0.Op != OpGreater64U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLeq64U)
if v_0.Op != OpGreater32U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLeq32U)
if v_0.Op != OpGreater16U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLeq16U)
if v_0.Op != OpGreater8U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLeq8U)
if v_0.Op != OpGeq64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLess64)
if v_0.Op != OpGeq32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLess32)
if v_0.Op != OpGeq16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLess16)
if v_0.Op != OpGeq8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLess8)
if v_0.Op != OpGeq64U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLess64U)
if v_0.Op != OpGeq32U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLess32U)
if v_0.Op != OpGeq16U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLess16U)
if v_0.Op != OpGeq8U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpLess8U)
if v_0.Op != OpLess64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGeq64)
if v_0.Op != OpLess32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGeq32)
if v_0.Op != OpLess16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGeq16)
if v_0.Op != OpLess8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGeq8)
if v_0.Op != OpLess64U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGeq64U)
if v_0.Op != OpLess32U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGeq32U)
if v_0.Op != OpLess16U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGeq16U)
if v_0.Op != OpLess8U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGeq8U)
if v_0.Op != OpLeq64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGreater64)
if v_0.Op != OpLeq32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGreater32)
if v_0.Op != OpLeq16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGreater16)
if v_0.Op != OpLeq8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGreater8)
if v_0.Op != OpLeq64U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGreater64U)
if v_0.Op != OpLeq32U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGreater32U)
if v_0.Op != OpLeq16U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGreater16U)
if v_0.Op != OpLeq8U {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
v.reset(OpGreater8U)
// cond:
// result: (Const16 [int64(int16(c|d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [int64(int16(c|d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const16 [-1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [-1])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
break
// cond:
// result: (Or16 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr16 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (Or16 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr16 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (Or16 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (Or16 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr16 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: ^(c1 | c2) == 0
// result: (Or16 (Const16 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
// cond: ^(c1 | c2) == 0
// result: (Or16 (Const16 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond: ^(c1 | c2) == 0
// result: (Or16 (Const16 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAnd16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond: ^(c1 | c2) == 0
// result: (Or16 (Const16 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpAnd16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Or16 i (Or16 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr16 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Or16 i (Or16 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr16 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst16 {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Or16 i (Or16 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr16 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Or16 i (Or16 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr16 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst16 {
// cond:
// result: (Or16 (Const16 <t> [int64(int16(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpOr16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond:
// result: (Or16 (Const16 <t> [int64(int16(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpOr16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond:
// result: (Or16 (Const16 <t> [int64(int16(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond:
// result: (Or16 (Const16 <t> [int64(int16(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
// cond:
// result: (Const32 [int64(int32(c|d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [int64(int32(c|d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const32 [-1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [-1])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
break
// cond:
// result: (Or32 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr32 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (Or32 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr32 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (Or32 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (Or32 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr32 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: ^(c1 | c2) == 0
// result: (Or32 (Const32 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond: ^(c1 | c2) == 0
// result: (Or32 (Const32 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond: ^(c1 | c2) == 0
// result: (Or32 (Const32 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAnd32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond: ^(c1 | c2) == 0
// result: (Or32 (Const32 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpAnd32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Or32 i (Or32 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr32 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Or32 i (Or32 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr32 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst32 {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Or32 i (Or32 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr32 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Or32 i (Or32 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr32 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst32 {
// cond:
// result: (Or32 (Const32 <t> [int64(int32(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpOr32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Or32 (Const32 <t> [int64(int32(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpOr32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (Or32 (Const32 <t> [int64(int32(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond:
// result: (Or32 (Const32 <t> [int64(int32(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond:
// result: (Const64 [c|d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [c|d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const64 [-1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [-1])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// cond:
// result: (Or64 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr64 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (Or64 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr64 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (Or64 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (Or64 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr64 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: ^(c1 | c2) == 0
// result: (Or64 (Const64 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond: ^(c1 | c2) == 0
// result: (Or64 (Const64 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond: ^(c1 | c2) == 0
// result: (Or64 (Const64 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAnd64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond: ^(c1 | c2) == 0
// result: (Or64 (Const64 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpAnd64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Or64 i (Or64 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr64 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Or64 i (Or64 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr64 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst64 {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Or64 i (Or64 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr64 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Or64 i (Or64 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr64 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst64 {
// cond:
// result: (Or64 (Const64 <t> [c|d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpOr64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (Or64 (Const64 <t> [c|d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpOr64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (Or64 (Const64 <t> [c|d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond:
// result: (Or64 (Const64 <t> [c|d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (Const8 [int64(int8(c|d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [int64(int8(c|d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const8 [-1])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [-1])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
break
// cond:
// result: (Or8 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr8 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: (Or8 x y)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr8 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: (Or8 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: (Or8 x y)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr8 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: ^(c1 | c2) == 0
// result: (Or8 (Const8 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
// cond: ^(c1 | c2) == 0
// result: (Or8 (Const8 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAnd8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond: ^(c1 | c2) == 0
// result: (Or8 (Const8 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAnd8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond: ^(c1 | c2) == 0
// result: (Or8 (Const8 <t> [c1]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpAnd8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Or8 i (Or8 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr8 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Or8 i (Or8 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr8 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst8 {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Or8 i (Or8 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr8 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Or8 i (Or8 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpOr8 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst8 {
// cond:
// result: (Or8 (Const8 <t> [int64(int8(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpOr8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
// cond:
// result: (Or8 (Const8 <t> [int64(int8(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpOr8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond:
// result: (Or8 (Const8 <t> [int64(int8(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond:
// result: (Or8 (Const8 <t> [int64(int8(c|d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpOr8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
// cond:
// result: (Const8 [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const16 [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const32 [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const64 [c])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (AddPtr ptr (Mul32 <typ.Int> idx (Const32 <typ.Int> [t.ElemType().Size()])))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
idx := v.Args[1]
if !(config.PtrSize == 4) {
// result: (AddPtr ptr (Mul64 <typ.Int> idx (Const64 <typ.Int> [t.ElemType().Size()])))
for {
t := v.Type
+ _ = v.Args[1]
ptr := v.Args[0]
idx := v.Args[1]
if !(config.PtrSize == 8) {
// result: (Rsh16Ux64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Rsh16Ux64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [int64(int16(uint16(c) >> uint64(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond: uint64(c) >= 16
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (Rsh16Ux64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh16Ux64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond: uint64(c1) >= uint64(c2) && uint64(c3) >= uint64(c2) && !uaddOvf(c1-c2, c3)
// result: (Rsh16Ux64 x (Const64 <typ.UInt64> [c1-c2+c3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh16x64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpRsh16Ux64 {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst64 {
// cond:
// result: (ZeroExt8to16 (Trunc16to8 <typ.UInt8> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh16x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// result: (Rsh16Ux64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Rsh16x64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Rsh16x64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [int64(int16(c) >> uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Rsh16x64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh16x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (SignExt8to16 (Trunc16to8 <typ.Int8> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh16x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// result: (Rsh16x64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// result: (Rsh32Ux64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Rsh32Ux64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [int64(int32(uint32(c) >> uint64(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond: uint64(c) >= 32
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (Rsh32Ux64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh32Ux64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond: uint64(c1) >= uint64(c2) && uint64(c3) >= uint64(c2) && !uaddOvf(c1-c2, c3)
// result: (Rsh32Ux64 x (Const64 <typ.UInt64> [c1-c2+c3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh32x64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpRsh32Ux64 {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst64 {
// cond:
// result: (ZeroExt8to32 (Trunc32to8 <typ.UInt8> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh32x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (ZeroExt16to32 (Trunc32to16 <typ.UInt16> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh32x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// result: (Rsh32Ux64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Rsh32x64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Rsh32x64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [int64(int32(c) >> uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Rsh32x64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh32x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (SignExt8to32 (Trunc32to8 <typ.Int8> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh32x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (SignExt16to32 (Trunc32to16 <typ.Int16> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh32x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// result: (Rsh32x64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// result: (Rsh64Ux64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Rsh64Ux64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [int64(uint64(c) >> uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond: uint64(c) >= 64
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (Rsh64Ux64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh64Ux64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond: uint64(c1) >= uint64(c2) && uint64(c3) >= uint64(c2) && !uaddOvf(c1-c2, c3)
// result: (Rsh64Ux64 x (Const64 <typ.UInt64> [c1-c2+c3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh64x64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpRsh64Ux64 {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst64 {
// cond:
// result: (ZeroExt8to64 (Trunc64to8 <typ.UInt8> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh64x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (ZeroExt16to64 (Trunc64to16 <typ.UInt16> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh64x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (ZeroExt32to64 (Trunc64to32 <typ.UInt32> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh64x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// result: (Rsh64Ux64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Rsh64x64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Rsh64x64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [c >> uint64(d)])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Rsh64x64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh64x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (SignExt8to64 (Trunc64to8 <typ.Int8> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh64x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (SignExt16to64 (Trunc64to16 <typ.Int16> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh64x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (SignExt32to64 (Trunc64to32 <typ.Int32> x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh64x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// result: (Rsh64x64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// result: (Rsh8Ux64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: (Rsh8Ux64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [int64(int8(uint8(c) >> uint64(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond: uint64(c) >= 8
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
break
// result: (Rsh8Ux64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh8Ux64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond: uint64(c1) >= uint64(c2) && uint64(c3) >= uint64(c2) && !uaddOvf(c1-c2, c3)
// result: (Rsh8Ux64 x (Const64 <typ.UInt64> [c1-c2+c3]))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLsh8x64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpRsh8Ux64 {
break
}
+ _ = v_0_0.Args[1]
x := v_0_0.Args[0]
v_0_0_1 := v_0_0.Args[1]
if v_0_0_1.Op != OpConst64 {
// result: (Rsh8Ux64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: (Rsh8x64 x (Const64 <t> [int64(uint16(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: (Rsh8x64 x (Const64 <t> [int64(uint32(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [int64(int8(c) >> uint64(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// result: (Rsh8x64 x (Const64 <t> [c+d]))
for {
t := v.Type
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpRsh8x64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// result: (Rsh8x64 x (Const64 <t> [int64(uint8(c))]))
for {
t := v.Type
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if x.Op != OpRsh32x64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh64x64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh64x64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh16x64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh32x64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh64x64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
v_0_2 := v_0.Args[2]
if v_0_2.Op != OpConst64 {
break
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
v_0_2 := v_0.Args[2]
if v_0_2.Op != OpConst32 {
break
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
v_0_2 := v_0.Args[2]
if v_0_2.Op != OpSliceCap {
break
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
v_0_2 := v_0.Args[2]
if v_0_2.Op != OpSliceLen {
break
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
break
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
break
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpSliceLen {
break
if v_0.Op != OpSliceMake {
break
}
+ _ = v_0.Args[2]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpSlicePtr {
break
// result: mem
for {
t1 := v.Aux
+ _ = v.Args[2]
p1 := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpLoad {
break
}
t2 := v_1.Type
+ _ = v_1.Args[1]
p2 := v_1.Args[0]
mem := v_1.Args[1]
if mem != v.Args[2] {
// result: mem
for {
t1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpOffPtr {
break
break
}
t2 := v_1.Type
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpOffPtr {
break
break
}
t3 := mem.Aux
+ _ = mem.Args[2]
mem_0 := mem.Args[0]
if mem_0.Op != OpOffPtr {
break
// result: mem
for {
t1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpOffPtr {
break
break
}
t2 := v_1.Type
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpOffPtr {
break
break
}
t3 := mem.Aux
+ _ = mem.Args[2]
mem_0 := mem.Args[0]
if mem_0.Op != OpOffPtr {
break
break
}
t4 := mem_2.Aux
+ _ = mem_2.Args[2]
mem_2_0 := mem_2.Args[0]
if mem_2_0.Op != OpOffPtr {
break
// result: mem
for {
t1 := v.Aux
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpOffPtr {
break
break
}
t2 := v_1.Type
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpOffPtr {
break
break
}
t3 := mem.Aux
+ _ = mem.Args[2]
mem_0 := mem.Args[0]
if mem_0.Op != OpOffPtr {
break
break
}
t4 := mem_2.Aux
+ _ = mem_2.Args[2]
mem_2_0 := mem_2.Args[0]
if mem_2_0.Op != OpOffPtr {
break
break
}
t5 := mem_2_2.Aux
+ _ = mem_2_2.Args[2]
mem_2_2_0 := mem_2_2.Args[0]
if mem_2_2_0.Op != OpOffPtr {
break
// cond:
// result: mem
for {
+ _ = v.Args[2]
v_1 := v.Args[1]
if v_1.Op != OpStructMake0 {
break
// cond:
// result: (Store {t.FieldType(0)} (OffPtr <t.FieldType(0).PtrTo()> [0] dst) f0 mem)
for {
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpStructMake1 {
// cond:
// result: (Store {t.FieldType(1)} (OffPtr <t.FieldType(1).PtrTo()> [t.FieldOff(1)] dst) f1 (Store {t.FieldType(0)} (OffPtr <t.FieldType(0).PtrTo()> [0] dst) f0 mem))
for {
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpStructMake2 {
break
}
t := v_1.Type
+ _ = v_1.Args[1]
f0 := v_1.Args[0]
f1 := v_1.Args[1]
mem := v.Args[2]
// cond:
// result: (Store {t.FieldType(2)} (OffPtr <t.FieldType(2).PtrTo()> [t.FieldOff(2)] dst) f2 (Store {t.FieldType(1)} (OffPtr <t.FieldType(1).PtrTo()> [t.FieldOff(1)] dst) f1 (Store {t.FieldType(0)} (OffPtr <t.FieldType(0).PtrTo()> [0] dst) f0 mem)))
for {
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpStructMake3 {
break
}
t := v_1.Type
+ _ = v_1.Args[2]
f0 := v_1.Args[0]
f1 := v_1.Args[1]
f2 := v_1.Args[2]
// cond:
// result: (Store {t.FieldType(3)} (OffPtr <t.FieldType(3).PtrTo()> [t.FieldOff(3)] dst) f3 (Store {t.FieldType(2)} (OffPtr <t.FieldType(2).PtrTo()> [t.FieldOff(2)] dst) f2 (Store {t.FieldType(1)} (OffPtr <t.FieldType(1).PtrTo()> [t.FieldOff(1)] dst) f1 (Store {t.FieldType(0)} (OffPtr <t.FieldType(0).PtrTo()> [0] dst) f0 mem))))
for {
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpStructMake4 {
break
}
t := v_1.Type
+ _ = v_1.Args[3]
f0 := v_1.Args[0]
f1 := v_1.Args[1]
f2 := v_1.Args[2]
// result: (Move {t} [t.(*types.Type).Size()] dst src mem)
for {
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpLoad {
break
}
+ _ = v_1.Args[1]
src := v_1.Args[0]
mem := v_1.Args[1]
if mem != v.Args[2] {
// result: (Move {t} [t.(*types.Type).Size()] dst src (VarDef {x} mem))
for {
t := v.Aux
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpLoad {
break
}
+ _ = v_1.Args[1]
src := v_1.Args[0]
mem := v_1.Args[1]
v_2 := v.Args[2]
// cond:
// result: mem
for {
+ _ = v.Args[2]
v_1 := v.Args[1]
if v_1.Op != OpArrayMake0 {
break
// cond:
// result: (Store {e.Type} dst e mem)
for {
+ _ = v.Args[2]
dst := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpArrayMake1 {
// cond: isConstZero(x) && mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize
// result: mem
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpLoad {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpOffPtr {
break
// cond: isConstZero(x) && mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize
// result: mem
for {
+ _ = v.Args[2]
v_0 := v.Args[0]
if v_0.Op != OpOffPtr {
break
if v_0_0.Op != OpLoad {
break
}
+ _ = v_0_0.Args[1]
v_0_0_0 := v_0_0.Args[0]
if v_0_0_0.Op != OpOffPtr {
break
if v_0.Op != OpStringMake {
break
}
+ _ = v_0.Args[1]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
break
if v_0.Op != OpStringMake {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
if v_0.Op != OpStructMake2 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v.reset(OpCopy)
v.Type = x.Type
if v_0.Op != OpStructMake2 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[1]
v.reset(OpCopy)
v.Type = x.Type
if v_0.Op != OpStructMake3 {
break
}
+ _ = v_0.Args[2]
x := v_0.Args[0]
v.reset(OpCopy)
v.Type = x.Type
if v_0.Op != OpStructMake3 {
break
}
+ _ = v_0.Args[2]
x := v_0.Args[1]
v.reset(OpCopy)
v.Type = x.Type
if v_0.Op != OpStructMake3 {
break
}
+ _ = v_0.Args[2]
x := v_0.Args[2]
v.reset(OpCopy)
v.Type = x.Type
if v_0.Op != OpStructMake4 {
break
}
+ _ = v_0.Args[3]
x := v_0.Args[0]
v.reset(OpCopy)
v.Type = x.Type
if v_0.Op != OpStructMake4 {
break
}
+ _ = v_0.Args[3]
x := v_0.Args[1]
v.reset(OpCopy)
v.Type = x.Type
if v_0.Op != OpStructMake4 {
break
}
+ _ = v_0.Args[3]
x := v_0.Args[2]
v.reset(OpCopy)
v.Type = x.Type
if v_0.Op != OpStructMake4 {
break
}
+ _ = v_0.Args[3]
x := v_0.Args[3]
v.reset(OpCopy)
v.Type = x.Type
break
}
t := x.Type
+ _ = x.Args[1]
ptr := x.Args[0]
mem := x.Args[1]
if !(!fe.CanSSA(t)) {
// cond:
// result: (Const16 [int64(int16(c-d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond: x.Op != OpConst16
// result: (Add16 (Const16 <t> [int64(int16(-c))]) x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if y != v.Args[1] {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd16 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if y != v.Args[1] {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Sub16 (Add16 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Add16 i (Sub16 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst16 {
// cond:
// result: (Sub16 (Const16 <t> [int64(int16(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond:
// result: (Add16 (Const16 <t> [int64(int16(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpSub16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond:
// result: (Const32 [int64(int32(c-d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond: x.Op != OpConst32
// result: (Add32 (Const32 <t> [int64(int32(-c))]) x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if y != v.Args[1] {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd32 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if y != v.Args[1] {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Sub32 (Add32 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Add32 i (Sub32 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst32 {
// cond:
// result: (Sub32 (Const32 <t> [int64(int32(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (Add32 (Const32 <t> [int64(int32(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpSub32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Const32F [f2i(float64(i2f32(c) - i2f32(d)))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32F {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32F {
// cond:
// result: (Const64 [c-d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond: x.Op != OpConst64
// result: (Add64 (Const64 <t> [-c]) x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if y != v.Args[1] {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd64 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if y != v.Args[1] {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Sub64 (Add64 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Add64 i (Sub64 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst64 {
// cond:
// result: (Sub64 (Const64 <t> [c+d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (Add64 (Const64 <t> [c-d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpSub64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (Const64F [f2i(i2f(c) - i2f(d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64F {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64F {
// cond:
// result: (Const8 [int64(int8(c-d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond: x.Op != OpConst8
// result: (Add8 (Const8 <t> [int64(int8(-c))]) x)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if y != v.Args[1] {
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpAdd8 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if y != v.Args[1] {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Sub8 (Add8 <t> x z) i)
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Add8 i (Sub8 <t> x z))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst8 {
// cond:
// result: (Sub8 (Const8 <t> [int64(int8(c+d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond:
// result: (Add8 (Const8 <t> [int64(int8(c-d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpSub8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
if v_0.Op != OpAnd16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
if v_0.Op != OpAnd32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
if v_0.Op != OpAnd64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (Const16 [int64(int16(c^d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [int64(int16(c^d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: (Const16 [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst16 {
// cond:
// result: y
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor16 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: y
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor16 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor16 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Xor16 i (Xor16 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor16 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Xor16 i (Xor16 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor16 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst16 {
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Xor16 i (Xor16 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor16 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst16 {
break
// cond: (z.Op != OpConst16 && x.Op != OpConst16)
// result: (Xor16 i (Xor16 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor16 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst16 {
// cond:
// result: (Xor16 (Const16 <t> [int64(int16(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpXor16 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst16 {
break
// cond:
// result: (Xor16 (Const16 <t> [int64(int16(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst16 {
break
if v_1.Op != OpXor16 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst16 {
// cond:
// result: (Xor16 (Const16 <t> [int64(int16(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor16 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst16 {
break
// cond:
// result: (Xor16 (Const16 <t> [int64(int16(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor16 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst16 {
// cond:
// result: (Const32 [int64(int32(c^d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [int64(int32(c^d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: (Const32 [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst32 {
// cond:
// result: y
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor32 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: y
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor32 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor32 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Xor32 i (Xor32 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor32 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Xor32 i (Xor32 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor32 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst32 {
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Xor32 i (Xor32 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor32 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst32 {
break
// cond: (z.Op != OpConst32 && x.Op != OpConst32)
// result: (Xor32 i (Xor32 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor32 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst32 {
// cond:
// result: (Xor32 (Const32 <t> [int64(int32(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpXor32 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst32 {
break
// cond:
// result: (Xor32 (Const32 <t> [int64(int32(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst32 {
break
if v_1.Op != OpXor32 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst32 {
// cond:
// result: (Xor32 (Const32 <t> [int64(int32(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor32 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst32 {
break
// cond:
// result: (Xor32 (Const32 <t> [int64(int32(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor32 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst32 {
// cond:
// result: (Const64 [c^d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [c^d])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: (Const64 [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst64 {
// cond:
// result: y
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor64 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: y
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor64 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor64 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Xor64 i (Xor64 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor64 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Xor64 i (Xor64 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor64 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst64 {
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Xor64 i (Xor64 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor64 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst64 {
break
// cond: (z.Op != OpConst64 && x.Op != OpConst64)
// result: (Xor64 i (Xor64 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor64 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst64 {
// cond:
// result: (Xor64 (Const64 <t> [c^d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpXor64 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst64 {
break
// cond:
// result: (Xor64 (Const64 <t> [c^d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst64 {
break
if v_1.Op != OpXor64 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst64 {
// cond:
// result: (Xor64 (Const64 <t> [c^d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor64 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst64 {
break
// cond:
// result: (Xor64 (Const64 <t> [c^d]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor64 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst64 {
// cond:
// result: (Const8 [int64(int8(c^d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [int64(int8(c^d))])
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: (Const8 [0])
for {
+ _ = v.Args[1]
x := v.Args[0]
if x != v.Args[1] {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
// cond:
// result: x
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpConst8 {
// cond:
// result: y
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor8 {
break
}
+ _ = v_1.Args[1]
if x != v_1.Args[0] {
break
}
// cond:
// result: y
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor8 {
break
}
+ _ = v_1.Args[1]
y := v_1.Args[0]
if x != v_1.Args[1] {
break
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
y := v_0.Args[1]
if x != v.Args[1] {
// cond:
// result: y
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor8 {
break
}
+ _ = v_0.Args[1]
y := v_0.Args[0]
x := v_0.Args[1]
if x != v.Args[1] {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Xor8 i (Xor8 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor8 {
break
}
+ _ = v_0.Args[1]
i := v_0.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Xor8 i (Xor8 <t> z x))
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor8 {
break
}
+ _ = v_0.Args[1]
z := v_0.Args[0]
i := v_0.Args[1]
if i.Op != OpConst8 {
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Xor8 i (Xor8 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor8 {
break
}
+ _ = v_1.Args[1]
i := v_1.Args[0]
if i.Op != OpConst8 {
break
// cond: (z.Op != OpConst8 && x.Op != OpConst8)
// result: (Xor8 i (Xor8 <t> z x))
for {
+ _ = v.Args[1]
x := v.Args[0]
v_1 := v.Args[1]
if v_1.Op != OpXor8 {
break
}
+ _ = v_1.Args[1]
z := v_1.Args[0]
i := v_1.Args[1]
if i.Op != OpConst8 {
// cond:
// result: (Xor8 (Const8 <t> [int64(int8(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpXor8 {
break
}
+ _ = v_1.Args[1]
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpConst8 {
break
// cond:
// result: (Xor8 (Const8 <t> [int64(int8(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpConst8 {
break
if v_1.Op != OpXor8 {
break
}
+ _ = v_1.Args[1]
x := v_1.Args[0]
v_1_1 := v_1.Args[1]
if v_1_1.Op != OpConst8 {
// cond:
// result: (Xor8 (Const8 <t> [int64(int8(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor8 {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpConst8 {
break
// cond:
// result: (Xor8 (Const8 <t> [int64(int8(c^d))]) x)
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpXor8 {
break
}
+ _ = v_0.Args[1]
x := v_0.Args[0]
v_0_1 := v_0.Args[1]
if v_0_1.Op != OpConst8 {
// cond: mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize() + config.RegSize
// result: mem
for {
+ _ = v.Args[1]
v_0 := v.Args[0]
if v_0.Op != OpLoad {
break
}
+ _ = v_0.Args[1]
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpOffPtr {
break
if x.Op != OpRsh32Ux64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh64Ux64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh64Ux64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh16Ux64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh32Ux64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break
if x.Op != OpRsh64Ux64 {
break
}
+ _ = x.Args[1]
x_1 := x.Args[1]
if x_1.Op != OpConst64 {
break