=> (Invalid)
// Evaluate constant address comparisons.
-(EqPtr x x) -> (ConstBool [1])
-(NeqPtr x x) -> (ConstBool [0])
-(EqPtr (Addr {a} _) (Addr {b} _)) -> (ConstBool [b2i(a == b)])
-(EqPtr (Addr {a} _) (OffPtr [o] (Addr {b} _))) -> (ConstBool [b2i(a == b && o == 0)])
-(EqPtr (OffPtr [o1] (Addr {a} _)) (OffPtr [o2] (Addr {b} _))) -> (ConstBool [b2i(a == b && o1 == o2)])
-(NeqPtr (Addr {a} _) (Addr {b} _)) -> (ConstBool [b2i(a != b)])
-(NeqPtr (Addr {a} _) (OffPtr [o] (Addr {b} _))) -> (ConstBool [b2i(a != b || o != 0)])
-(NeqPtr (OffPtr [o1] (Addr {a} _)) (OffPtr [o2] (Addr {b} _))) -> (ConstBool [b2i(a != b || o1 != o2)])
-(EqPtr (LocalAddr {a} _ _) (LocalAddr {b} _ _)) -> (ConstBool [b2i(a == b)])
-(EqPtr (LocalAddr {a} _ _) (OffPtr [o] (LocalAddr {b} _ _))) -> (ConstBool [b2i(a == b && o == 0)])
-(EqPtr (OffPtr [o1] (LocalAddr {a} _ _)) (OffPtr [o2] (LocalAddr {b} _ _))) -> (ConstBool [b2i(a == b && o1 == o2)])
-(NeqPtr (LocalAddr {a} _ _) (LocalAddr {b} _ _)) -> (ConstBool [b2i(a != b)])
-(NeqPtr (LocalAddr {a} _ _) (OffPtr [o] (LocalAddr {b} _ _))) -> (ConstBool [b2i(a != b || o != 0)])
-(NeqPtr (OffPtr [o1] (LocalAddr {a} _ _)) (OffPtr [o2] (LocalAddr {b} _ _))) -> (ConstBool [b2i(a != b || o1 != o2)])
-(EqPtr (OffPtr [o1] p1) p2) && isSamePtr(p1, p2) -> (ConstBool [b2i(o1 == 0)])
-(NeqPtr (OffPtr [o1] p1) p2) && isSamePtr(p1, p2) -> (ConstBool [b2i(o1 != 0)])
-(EqPtr (OffPtr [o1] p1) (OffPtr [o2] p2)) && isSamePtr(p1, p2) -> (ConstBool [b2i(o1 == o2)])
-(NeqPtr (OffPtr [o1] p1) (OffPtr [o2] p2)) && isSamePtr(p1, p2) -> (ConstBool [b2i(o1 != o2)])
-(EqPtr (Const(32|64) [c]) (Const(32|64) [d])) -> (ConstBool [b2i(c == d)])
-(NeqPtr (Const(32|64) [c]) (Const(32|64) [d])) -> (ConstBool [b2i(c != d)])
-
-(EqPtr (LocalAddr _ _) (Addr _)) -> (ConstBool [0])
-(EqPtr (OffPtr (LocalAddr _ _)) (Addr _)) -> (ConstBool [0])
-(EqPtr (LocalAddr _ _) (OffPtr (Addr _))) -> (ConstBool [0])
-(EqPtr (OffPtr (LocalAddr _ _)) (OffPtr (Addr _))) -> (ConstBool [0])
-(NeqPtr (LocalAddr _ _) (Addr _)) -> (ConstBool [1])
-(NeqPtr (OffPtr (LocalAddr _ _)) (Addr _)) -> (ConstBool [1])
-(NeqPtr (LocalAddr _ _) (OffPtr (Addr _))) -> (ConstBool [1])
-(NeqPtr (OffPtr (LocalAddr _ _)) (OffPtr (Addr _))) -> (ConstBool [1])
+(EqPtr x x) => (ConstBool [true])
+(NeqPtr x x) => (ConstBool [false])
+(EqPtr (Addr {a} _) (Addr {b} _)) => (ConstBool [a == b])
+(EqPtr (Addr {a} _) (OffPtr [o] (Addr {b} _))) => (ConstBool [a == b && o == 0])
+(EqPtr (OffPtr [o1] (Addr {a} _)) (OffPtr [o2] (Addr {b} _))) => (ConstBool [a == b && o1 == o2])
+(NeqPtr (Addr {a} _) (Addr {b} _)) => (ConstBool [a != b])
+(NeqPtr (Addr {a} _) (OffPtr [o] (Addr {b} _))) => (ConstBool [a != b || o != 0])
+(NeqPtr (OffPtr [o1] (Addr {a} _)) (OffPtr [o2] (Addr {b} _))) => (ConstBool [a != b || o1 != o2])
+(EqPtr (LocalAddr {a} _ _) (LocalAddr {b} _ _)) => (ConstBool [a == b])
+(EqPtr (LocalAddr {a} _ _) (OffPtr [o] (LocalAddr {b} _ _))) => (ConstBool [a == b && o == 0])
+(EqPtr (OffPtr [o1] (LocalAddr {a} _ _)) (OffPtr [o2] (LocalAddr {b} _ _))) => (ConstBool [a == b && o1 == o2])
+(NeqPtr (LocalAddr {a} _ _) (LocalAddr {b} _ _)) => (ConstBool [a != b])
+(NeqPtr (LocalAddr {a} _ _) (OffPtr [o] (LocalAddr {b} _ _))) => (ConstBool [a != b || o != 0])
+(NeqPtr (OffPtr [o1] (LocalAddr {a} _ _)) (OffPtr [o2] (LocalAddr {b} _ _))) => (ConstBool [a != b || o1 != o2])
+(EqPtr (OffPtr [o1] p1) p2) && isSamePtr(p1, p2) => (ConstBool [o1 == 0])
+(NeqPtr (OffPtr [o1] p1) p2) && isSamePtr(p1, p2) => (ConstBool [o1 != 0])
+(EqPtr (OffPtr [o1] p1) (OffPtr [o2] p2)) && isSamePtr(p1, p2) => (ConstBool [o1 == o2])
+(NeqPtr (OffPtr [o1] p1) (OffPtr [o2] p2)) && isSamePtr(p1, p2) => (ConstBool [o1 != o2])
+(EqPtr (Const(32|64) [c]) (Const(32|64) [d])) => (ConstBool [c == d])
+(NeqPtr (Const(32|64) [c]) (Const(32|64) [d])) => (ConstBool [c != d])
+
+(EqPtr (LocalAddr _ _) (Addr _)) => (ConstBool [false])
+(EqPtr (OffPtr (LocalAddr _ _)) (Addr _)) => (ConstBool [false])
+(EqPtr (LocalAddr _ _) (OffPtr (Addr _))) => (ConstBool [false])
+(EqPtr (OffPtr (LocalAddr _ _)) (OffPtr (Addr _))) => (ConstBool [false])
+(NeqPtr (LocalAddr _ _) (Addr _)) => (ConstBool [true])
+(NeqPtr (OffPtr (LocalAddr _ _)) (Addr _)) => (ConstBool [true])
+(NeqPtr (LocalAddr _ _) (OffPtr (Addr _))) => (ConstBool [true])
+(NeqPtr (OffPtr (LocalAddr _ _)) (OffPtr (Addr _))) => (ConstBool [true])
// Simplify address comparisons.
-(EqPtr (AddPtr p1 o1) p2) && isSamePtr(p1, p2) -> (Not (IsNonNil o1))
-(NeqPtr (AddPtr p1 o1) p2) && isSamePtr(p1, p2) -> (IsNonNil o1)
-(EqPtr (Const(32|64) [0]) p) -> (Not (IsNonNil p))
-(NeqPtr (Const(32|64) [0]) p) -> (IsNonNil p)
-(EqPtr (ConstNil) p) -> (Not (IsNonNil p))
-(NeqPtr (ConstNil) p) -> (IsNonNil p)
+(EqPtr (AddPtr p1 o1) p2) && isSamePtr(p1, p2) => (Not (IsNonNil o1))
+(NeqPtr (AddPtr p1 o1) p2) && isSamePtr(p1, p2) => (IsNonNil o1)
+(EqPtr (Const(32|64) [0]) p) => (Not (IsNonNil p))
+(NeqPtr (Const(32|64) [0]) p) => (IsNonNil p)
+(EqPtr (ConstNil) p) => (Not (IsNonNil p))
+(NeqPtr (ConstNil) p) => (IsNonNil p)
// Evaluate constant user nil checks.
-(IsNonNil (ConstNil)) -> (ConstBool [0])
-(IsNonNil (Const(32|64) [c])) -> (ConstBool [b2i(c != 0)])
-(IsNonNil (Addr _)) -> (ConstBool [1])
-(IsNonNil (LocalAddr _ _)) -> (ConstBool [1])
+(IsNonNil (ConstNil)) => (ConstBool [false])
+(IsNonNil (Const(32|64) [c])) => (ConstBool [c != 0])
+(IsNonNil (Addr _)) => (ConstBool [true])
+(IsNonNil (LocalAddr _ _)) => (ConstBool [true])
// Inline small or disjoint runtime.memmove calls with constant length.
// See the comment in op Move in genericOps.go for discussion of the type.
b := v.Block
typ := &b.Func.Config.Types
// match: (EqPtr x x)
- // result: (ConstBool [1])
+ // result: (ConstBool [true])
for {
x := v_0
if x != v_1 {
break
}
v.reset(OpConstBool)
- v.AuxInt = 1
+ v.AuxInt = boolToAuxInt(true)
return true
}
// match: (EqPtr (Addr {a} _) (Addr {b} _))
- // result: (ConstBool [b2i(a == b)])
+ // result: (ConstBool [a == b])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpAddr {
continue
}
- a := v_0.Aux
+ a := auxToSym(v_0.Aux)
if v_1.Op != OpAddr {
continue
}
- b := v_1.Aux
+ b := auxToSym(v_1.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a == b)
+ v.AuxInt = boolToAuxInt(a == b)
return true
}
break
}
// match: (EqPtr (Addr {a} _) (OffPtr [o] (Addr {b} _)))
- // result: (ConstBool [b2i(a == b && o == 0)])
+ // result: (ConstBool [a == b && o == 0])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpAddr {
continue
}
- a := v_0.Aux
+ a := auxToSym(v_0.Aux)
if v_1.Op != OpOffPtr {
continue
}
- o := v_1.AuxInt
+ o := auxIntToInt64(v_1.AuxInt)
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAddr {
continue
}
- b := v_1_0.Aux
+ b := auxToSym(v_1_0.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a == b && o == 0)
+ v.AuxInt = boolToAuxInt(a == b && o == 0)
return true
}
break
}
// match: (EqPtr (OffPtr [o1] (Addr {a} _)) (OffPtr [o2] (Addr {b} _)))
- // result: (ConstBool [b2i(a == b && o1 == o2)])
+ // result: (ConstBool [a == b && o1 == o2])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
- o1 := v_0.AuxInt
+ o1 := auxIntToInt64(v_0.AuxInt)
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAddr {
continue
}
- a := v_0_0.Aux
+ a := auxToSym(v_0_0.Aux)
if v_1.Op != OpOffPtr {
continue
}
- o2 := v_1.AuxInt
+ o2 := auxIntToInt64(v_1.AuxInt)
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAddr {
continue
}
- b := v_1_0.Aux
+ b := auxToSym(v_1_0.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a == b && o1 == o2)
+ v.AuxInt = boolToAuxInt(a == b && o1 == o2)
return true
}
break
}
// match: (EqPtr (LocalAddr {a} _ _) (LocalAddr {b} _ _))
- // result: (ConstBool [b2i(a == b)])
+ // result: (ConstBool [a == b])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr {
continue
}
- a := v_0.Aux
+ a := auxToSym(v_0.Aux)
if v_1.Op != OpLocalAddr {
continue
}
- b := v_1.Aux
+ b := auxToSym(v_1.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a == b)
+ v.AuxInt = boolToAuxInt(a == b)
return true
}
break
}
// match: (EqPtr (LocalAddr {a} _ _) (OffPtr [o] (LocalAddr {b} _ _)))
- // result: (ConstBool [b2i(a == b && o == 0)])
+ // result: (ConstBool [a == b && o == 0])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr {
continue
}
- a := v_0.Aux
+ a := auxToSym(v_0.Aux)
if v_1.Op != OpOffPtr {
continue
}
- o := v_1.AuxInt
+ o := auxIntToInt64(v_1.AuxInt)
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpLocalAddr {
continue
}
- b := v_1_0.Aux
+ b := auxToSym(v_1_0.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a == b && o == 0)
+ v.AuxInt = boolToAuxInt(a == b && o == 0)
return true
}
break
}
// match: (EqPtr (OffPtr [o1] (LocalAddr {a} _ _)) (OffPtr [o2] (LocalAddr {b} _ _)))
- // result: (ConstBool [b2i(a == b && o1 == o2)])
+ // result: (ConstBool [a == b && o1 == o2])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
- o1 := v_0.AuxInt
+ o1 := auxIntToInt64(v_0.AuxInt)
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLocalAddr {
continue
}
- a := v_0_0.Aux
+ a := auxToSym(v_0_0.Aux)
if v_1.Op != OpOffPtr {
continue
}
- o2 := v_1.AuxInt
+ o2 := auxIntToInt64(v_1.AuxInt)
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpLocalAddr {
continue
}
- b := v_1_0.Aux
+ b := auxToSym(v_1_0.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a == b && o1 == o2)
+ v.AuxInt = boolToAuxInt(a == b && o1 == o2)
return true
}
break
}
// match: (EqPtr (OffPtr [o1] p1) p2)
// cond: isSamePtr(p1, p2)
- // result: (ConstBool [b2i(o1 == 0)])
+ // result: (ConstBool [o1 == 0])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
- o1 := v_0.AuxInt
+ o1 := auxIntToInt64(v_0.AuxInt)
p1 := v_0.Args[0]
p2 := v_1
if !(isSamePtr(p1, p2)) {
continue
}
v.reset(OpConstBool)
- v.AuxInt = b2i(o1 == 0)
+ v.AuxInt = boolToAuxInt(o1 == 0)
return true
}
break
}
// match: (EqPtr (OffPtr [o1] p1) (OffPtr [o2] p2))
// cond: isSamePtr(p1, p2)
- // result: (ConstBool [b2i(o1 == o2)])
+ // result: (ConstBool [o1 == o2])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
- o1 := v_0.AuxInt
+ o1 := auxIntToInt64(v_0.AuxInt)
p1 := v_0.Args[0]
if v_1.Op != OpOffPtr {
continue
}
- o2 := v_1.AuxInt
+ o2 := auxIntToInt64(v_1.AuxInt)
p2 := v_1.Args[0]
if !(isSamePtr(p1, p2)) {
continue
}
v.reset(OpConstBool)
- v.AuxInt = b2i(o1 == o2)
+ v.AuxInt = boolToAuxInt(o1 == o2)
return true
}
break
}
// match: (EqPtr (Const32 [c]) (Const32 [d]))
- // result: (ConstBool [b2i(c == d)])
+ // result: (ConstBool [c == d])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst32 {
continue
}
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpConst32 {
continue
}
- d := v_1.AuxInt
+ d := auxIntToInt32(v_1.AuxInt)
v.reset(OpConstBool)
- v.AuxInt = b2i(c == d)
+ v.AuxInt = boolToAuxInt(c == d)
return true
}
break
}
// match: (EqPtr (Const64 [c]) (Const64 [d]))
- // result: (ConstBool [b2i(c == d)])
+ // result: (ConstBool [c == d])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst64 {
continue
}
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpConst64 {
continue
}
- d := v_1.AuxInt
+ d := auxIntToInt64(v_1.AuxInt)
v.reset(OpConstBool)
- v.AuxInt = b2i(c == d)
+ v.AuxInt = boolToAuxInt(c == d)
return true
}
break
}
// match: (EqPtr (LocalAddr _ _) (Addr _))
- // result: (ConstBool [0])
+ // result: (ConstBool [false])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr || v_1.Op != OpAddr {
continue
}
v.reset(OpConstBool)
- v.AuxInt = 0
+ v.AuxInt = boolToAuxInt(false)
return true
}
break
}
// match: (EqPtr (OffPtr (LocalAddr _ _)) (Addr _))
- // result: (ConstBool [0])
+ // result: (ConstBool [false])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
v.reset(OpConstBool)
- v.AuxInt = 0
+ v.AuxInt = boolToAuxInt(false)
return true
}
break
}
// match: (EqPtr (LocalAddr _ _) (OffPtr (Addr _)))
- // result: (ConstBool [0])
+ // result: (ConstBool [false])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr || v_1.Op != OpOffPtr {
continue
}
v.reset(OpConstBool)
- v.AuxInt = 0
+ v.AuxInt = boolToAuxInt(false)
return true
}
break
}
// match: (EqPtr (OffPtr (LocalAddr _ _)) (OffPtr (Addr _)))
- // result: (ConstBool [0])
+ // result: (ConstBool [false])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
v.reset(OpConstBool)
- v.AuxInt = 0
+ v.AuxInt = boolToAuxInt(false)
return true
}
break
// result: (Not (IsNonNil p))
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
- if v_0.Op != OpConst32 || v_0.AuxInt != 0 {
+ if v_0.Op != OpConst32 || auxIntToInt32(v_0.AuxInt) != 0 {
continue
}
p := v_1
// result: (Not (IsNonNil p))
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
- if v_0.Op != OpConst64 || v_0.AuxInt != 0 {
+ if v_0.Op != OpConst64 || auxIntToInt64(v_0.AuxInt) != 0 {
continue
}
p := v_1
func rewriteValuegeneric_OpIsNonNil(v *Value) bool {
v_0 := v.Args[0]
// match: (IsNonNil (ConstNil))
- // result: (ConstBool [0])
+ // result: (ConstBool [false])
for {
if v_0.Op != OpConstNil {
break
}
v.reset(OpConstBool)
- v.AuxInt = 0
+ v.AuxInt = boolToAuxInt(false)
return true
}
// match: (IsNonNil (Const32 [c]))
- // result: (ConstBool [b2i(c != 0)])
+ // result: (ConstBool [c != 0])
for {
if v_0.Op != OpConst32 {
break
}
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
v.reset(OpConstBool)
- v.AuxInt = b2i(c != 0)
+ v.AuxInt = boolToAuxInt(c != 0)
return true
}
// match: (IsNonNil (Const64 [c]))
- // result: (ConstBool [b2i(c != 0)])
+ // result: (ConstBool [c != 0])
for {
if v_0.Op != OpConst64 {
break
}
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
v.reset(OpConstBool)
- v.AuxInt = b2i(c != 0)
+ v.AuxInt = boolToAuxInt(c != 0)
return true
}
// match: (IsNonNil (Addr _))
- // result: (ConstBool [1])
+ // result: (ConstBool [true])
for {
if v_0.Op != OpAddr {
break
}
v.reset(OpConstBool)
- v.AuxInt = 1
+ v.AuxInt = boolToAuxInt(true)
return true
}
// match: (IsNonNil (LocalAddr _ _))
- // result: (ConstBool [1])
+ // result: (ConstBool [true])
for {
if v_0.Op != OpLocalAddr {
break
}
v.reset(OpConstBool)
- v.AuxInt = 1
+ v.AuxInt = boolToAuxInt(true)
return true
}
return false
v_1 := v.Args[1]
v_0 := v.Args[0]
// match: (NeqPtr x x)
- // result: (ConstBool [0])
+ // result: (ConstBool [false])
for {
x := v_0
if x != v_1 {
break
}
v.reset(OpConstBool)
- v.AuxInt = 0
+ v.AuxInt = boolToAuxInt(false)
return true
}
// match: (NeqPtr (Addr {a} _) (Addr {b} _))
- // result: (ConstBool [b2i(a != b)])
+ // result: (ConstBool [a != b])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpAddr {
continue
}
- a := v_0.Aux
+ a := auxToSym(v_0.Aux)
if v_1.Op != OpAddr {
continue
}
- b := v_1.Aux
+ b := auxToSym(v_1.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a != b)
+ v.AuxInt = boolToAuxInt(a != b)
return true
}
break
}
// match: (NeqPtr (Addr {a} _) (OffPtr [o] (Addr {b} _)))
- // result: (ConstBool [b2i(a != b || o != 0)])
+ // result: (ConstBool [a != b || o != 0])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpAddr {
continue
}
- a := v_0.Aux
+ a := auxToSym(v_0.Aux)
if v_1.Op != OpOffPtr {
continue
}
- o := v_1.AuxInt
+ o := auxIntToInt64(v_1.AuxInt)
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAddr {
continue
}
- b := v_1_0.Aux
+ b := auxToSym(v_1_0.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a != b || o != 0)
+ v.AuxInt = boolToAuxInt(a != b || o != 0)
return true
}
break
}
// match: (NeqPtr (OffPtr [o1] (Addr {a} _)) (OffPtr [o2] (Addr {b} _)))
- // result: (ConstBool [b2i(a != b || o1 != o2)])
+ // result: (ConstBool [a != b || o1 != o2])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
- o1 := v_0.AuxInt
+ o1 := auxIntToInt64(v_0.AuxInt)
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpAddr {
continue
}
- a := v_0_0.Aux
+ a := auxToSym(v_0_0.Aux)
if v_1.Op != OpOffPtr {
continue
}
- o2 := v_1.AuxInt
+ o2 := auxIntToInt64(v_1.AuxInt)
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpAddr {
continue
}
- b := v_1_0.Aux
+ b := auxToSym(v_1_0.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a != b || o1 != o2)
+ v.AuxInt = boolToAuxInt(a != b || o1 != o2)
return true
}
break
}
// match: (NeqPtr (LocalAddr {a} _ _) (LocalAddr {b} _ _))
- // result: (ConstBool [b2i(a != b)])
+ // result: (ConstBool [a != b])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr {
continue
}
- a := v_0.Aux
+ a := auxToSym(v_0.Aux)
if v_1.Op != OpLocalAddr {
continue
}
- b := v_1.Aux
+ b := auxToSym(v_1.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a != b)
+ v.AuxInt = boolToAuxInt(a != b)
return true
}
break
}
// match: (NeqPtr (LocalAddr {a} _ _) (OffPtr [o] (LocalAddr {b} _ _)))
- // result: (ConstBool [b2i(a != b || o != 0)])
+ // result: (ConstBool [a != b || o != 0])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr {
continue
}
- a := v_0.Aux
+ a := auxToSym(v_0.Aux)
if v_1.Op != OpOffPtr {
continue
}
- o := v_1.AuxInt
+ o := auxIntToInt64(v_1.AuxInt)
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpLocalAddr {
continue
}
- b := v_1_0.Aux
+ b := auxToSym(v_1_0.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a != b || o != 0)
+ v.AuxInt = boolToAuxInt(a != b || o != 0)
return true
}
break
}
// match: (NeqPtr (OffPtr [o1] (LocalAddr {a} _ _)) (OffPtr [o2] (LocalAddr {b} _ _)))
- // result: (ConstBool [b2i(a != b || o1 != o2)])
+ // result: (ConstBool [a != b || o1 != o2])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
- o1 := v_0.AuxInt
+ o1 := auxIntToInt64(v_0.AuxInt)
v_0_0 := v_0.Args[0]
if v_0_0.Op != OpLocalAddr {
continue
}
- a := v_0_0.Aux
+ a := auxToSym(v_0_0.Aux)
if v_1.Op != OpOffPtr {
continue
}
- o2 := v_1.AuxInt
+ o2 := auxIntToInt64(v_1.AuxInt)
v_1_0 := v_1.Args[0]
if v_1_0.Op != OpLocalAddr {
continue
}
- b := v_1_0.Aux
+ b := auxToSym(v_1_0.Aux)
v.reset(OpConstBool)
- v.AuxInt = b2i(a != b || o1 != o2)
+ v.AuxInt = boolToAuxInt(a != b || o1 != o2)
return true
}
break
}
// match: (NeqPtr (OffPtr [o1] p1) p2)
// cond: isSamePtr(p1, p2)
- // result: (ConstBool [b2i(o1 != 0)])
+ // result: (ConstBool [o1 != 0])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
- o1 := v_0.AuxInt
+ o1 := auxIntToInt64(v_0.AuxInt)
p1 := v_0.Args[0]
p2 := v_1
if !(isSamePtr(p1, p2)) {
continue
}
v.reset(OpConstBool)
- v.AuxInt = b2i(o1 != 0)
+ v.AuxInt = boolToAuxInt(o1 != 0)
return true
}
break
}
// match: (NeqPtr (OffPtr [o1] p1) (OffPtr [o2] p2))
// cond: isSamePtr(p1, p2)
- // result: (ConstBool [b2i(o1 != o2)])
+ // result: (ConstBool [o1 != o2])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
- o1 := v_0.AuxInt
+ o1 := auxIntToInt64(v_0.AuxInt)
p1 := v_0.Args[0]
if v_1.Op != OpOffPtr {
continue
}
- o2 := v_1.AuxInt
+ o2 := auxIntToInt64(v_1.AuxInt)
p2 := v_1.Args[0]
if !(isSamePtr(p1, p2)) {
continue
}
v.reset(OpConstBool)
- v.AuxInt = b2i(o1 != o2)
+ v.AuxInt = boolToAuxInt(o1 != o2)
return true
}
break
}
// match: (NeqPtr (Const32 [c]) (Const32 [d]))
- // result: (ConstBool [b2i(c != d)])
+ // result: (ConstBool [c != d])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst32 {
continue
}
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpConst32 {
continue
}
- d := v_1.AuxInt
+ d := auxIntToInt32(v_1.AuxInt)
v.reset(OpConstBool)
- v.AuxInt = b2i(c != d)
+ v.AuxInt = boolToAuxInt(c != d)
return true
}
break
}
// match: (NeqPtr (Const64 [c]) (Const64 [d]))
- // result: (ConstBool [b2i(c != d)])
+ // result: (ConstBool [c != d])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst64 {
continue
}
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpConst64 {
continue
}
- d := v_1.AuxInt
+ d := auxIntToInt64(v_1.AuxInt)
v.reset(OpConstBool)
- v.AuxInt = b2i(c != d)
+ v.AuxInt = boolToAuxInt(c != d)
return true
}
break
}
// match: (NeqPtr (LocalAddr _ _) (Addr _))
- // result: (ConstBool [1])
+ // result: (ConstBool [true])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr || v_1.Op != OpAddr {
continue
}
v.reset(OpConstBool)
- v.AuxInt = 1
+ v.AuxInt = boolToAuxInt(true)
return true
}
break
}
// match: (NeqPtr (OffPtr (LocalAddr _ _)) (Addr _))
- // result: (ConstBool [1])
+ // result: (ConstBool [true])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
v.reset(OpConstBool)
- v.AuxInt = 1
+ v.AuxInt = boolToAuxInt(true)
return true
}
break
}
// match: (NeqPtr (LocalAddr _ _) (OffPtr (Addr _)))
- // result: (ConstBool [1])
+ // result: (ConstBool [true])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpLocalAddr || v_1.Op != OpOffPtr {
continue
}
v.reset(OpConstBool)
- v.AuxInt = 1
+ v.AuxInt = boolToAuxInt(true)
return true
}
break
}
// match: (NeqPtr (OffPtr (LocalAddr _ _)) (OffPtr (Addr _)))
- // result: (ConstBool [1])
+ // result: (ConstBool [true])
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpOffPtr {
continue
}
v.reset(OpConstBool)
- v.AuxInt = 1
+ v.AuxInt = boolToAuxInt(true)
return true
}
break
// result: (IsNonNil p)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
- if v_0.Op != OpConst32 || v_0.AuxInt != 0 {
+ if v_0.Op != OpConst32 || auxIntToInt32(v_0.AuxInt) != 0 {
continue
}
p := v_1
// result: (IsNonNil p)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
- if v_0.Op != OpConst64 || v_0.AuxInt != 0 {
+ if v_0.Op != OpConst64 || auxIntToInt64(v_0.AuxInt) != 0 {
continue
}
p := v_1