(Xor8 (Xor8 i:(Const8 <t>) z) x) && (z.Op != OpConst8 && x.Op != OpConst8) => (Xor8 i (Xor8 <t> z x))
// C + (D + x) -> (C + D) + x
-(Add64 (Const64 <t> [c]) (Add64 (Const64 <t> [d]) x)) -> (Add64 (Const64 <t> [c+d]) x)
-(Add32 (Const32 <t> [c]) (Add32 (Const32 <t> [d]) x)) -> (Add32 (Const32 <t> [int64(int32(c+d))]) x)
-(Add16 (Const16 <t> [c]) (Add16 (Const16 <t> [d]) x)) -> (Add16 (Const16 <t> [int64(int16(c+d))]) x)
-(Add8 (Const8 <t> [c]) (Add8 (Const8 <t> [d]) x)) -> (Add8 (Const8 <t> [int64(int8(c+d))]) x)
+(Add64 (Const64 <t> [c]) (Add64 (Const64 <t> [d]) x)) => (Add64 (Const64 <t> [c+d]) x)
+(Add32 (Const32 <t> [c]) (Add32 (Const32 <t> [d]) x)) => (Add32 (Const32 <t> [c+d]) x)
+(Add16 (Const16 <t> [c]) (Add16 (Const16 <t> [d]) x)) => (Add16 (Const16 <t> [c+d]) x)
+(Add8 (Const8 <t> [c]) (Add8 (Const8 <t> [d]) x)) => (Add8 (Const8 <t> [c+d]) x)
// C + (D - x) -> (C + D) - x
-(Add64 (Const64 <t> [c]) (Sub64 (Const64 <t> [d]) x)) -> (Sub64 (Const64 <t> [c+d]) x)
-(Add32 (Const32 <t> [c]) (Sub32 (Const32 <t> [d]) x)) -> (Sub32 (Const32 <t> [int64(int32(c+d))]) x)
-(Add16 (Const16 <t> [c]) (Sub16 (Const16 <t> [d]) x)) -> (Sub16 (Const16 <t> [int64(int16(c+d))]) x)
-(Add8 (Const8 <t> [c]) (Sub8 (Const8 <t> [d]) x)) -> (Sub8 (Const8 <t> [int64(int8(c+d))]) x)
+(Add64 (Const64 <t> [c]) (Sub64 (Const64 <t> [d]) x)) => (Sub64 (Const64 <t> [c+d]) x)
+(Add32 (Const32 <t> [c]) (Sub32 (Const32 <t> [d]) x)) => (Sub32 (Const32 <t> [c+d]) x)
+(Add16 (Const16 <t> [c]) (Sub16 (Const16 <t> [d]) x)) => (Sub16 (Const16 <t> [c+d]) x)
+(Add8 (Const8 <t> [c]) (Sub8 (Const8 <t> [d]) x)) => (Sub8 (Const8 <t> [c+d]) x)
// C + (x - D) -> (C - D) + x
-(Add64 (Const64 <t> [c]) (Sub64 x (Const64 <t> [d]))) -> (Add64 (Const64 <t> [c-d]) x)
-(Add32 (Const32 <t> [c]) (Sub32 x (Const32 <t> [d]))) -> (Add32 (Const32 <t> [int64(int32(c-d))]) x)
-(Add16 (Const16 <t> [c]) (Sub16 x (Const16 <t> [d]))) -> (Add16 (Const16 <t> [int64(int16(c-d))]) x)
-(Add8 (Const8 <t> [c]) (Sub8 x (Const8 <t> [d]))) -> (Add8 (Const8 <t> [int64(int8(c-d))]) x)
+(Add64 (Const64 <t> [c]) (Sub64 x (Const64 <t> [d]))) => (Add64 (Const64 <t> [c-d]) x)
+(Add32 (Const32 <t> [c]) (Sub32 x (Const32 <t> [d]))) => (Add32 (Const32 <t> [c-d]) x)
+(Add16 (Const16 <t> [c]) (Sub16 x (Const16 <t> [d]))) => (Add16 (Const16 <t> [c-d]) x)
+(Add8 (Const8 <t> [c]) (Sub8 x (Const8 <t> [d]))) => (Add8 (Const8 <t> [c-d]) x)
// C - (x - D) -> (C + D) - x
-(Sub64 (Const64 <t> [c]) (Sub64 x (Const64 <t> [d]))) -> (Sub64 (Const64 <t> [c+d]) x)
-(Sub32 (Const32 <t> [c]) (Sub32 x (Const32 <t> [d]))) -> (Sub32 (Const32 <t> [int64(int32(c+d))]) x)
-(Sub16 (Const16 <t> [c]) (Sub16 x (Const16 <t> [d]))) -> (Sub16 (Const16 <t> [int64(int16(c+d))]) x)
-(Sub8 (Const8 <t> [c]) (Sub8 x (Const8 <t> [d]))) -> (Sub8 (Const8 <t> [int64(int8(c+d))]) x)
+(Sub64 (Const64 <t> [c]) (Sub64 x (Const64 <t> [d]))) => (Sub64 (Const64 <t> [c+d]) x)
+(Sub32 (Const32 <t> [c]) (Sub32 x (Const32 <t> [d]))) => (Sub32 (Const32 <t> [c+d]) x)
+(Sub16 (Const16 <t> [c]) (Sub16 x (Const16 <t> [d]))) => (Sub16 (Const16 <t> [c+d]) x)
+(Sub8 (Const8 <t> [c]) (Sub8 x (Const8 <t> [d]))) => (Sub8 (Const8 <t> [c+d]) x)
// C - (D - x) -> (C - D) + x
-(Sub64 (Const64 <t> [c]) (Sub64 (Const64 <t> [d]) x)) -> (Add64 (Const64 <t> [c-d]) x)
-(Sub32 (Const32 <t> [c]) (Sub32 (Const32 <t> [d]) x)) -> (Add32 (Const32 <t> [int64(int32(c-d))]) x)
-(Sub16 (Const16 <t> [c]) (Sub16 (Const16 <t> [d]) x)) -> (Add16 (Const16 <t> [int64(int16(c-d))]) x)
-(Sub8 (Const8 <t> [c]) (Sub8 (Const8 <t> [d]) x)) -> (Add8 (Const8 <t> [int64(int8(c-d))]) x)
+(Sub64 (Const64 <t> [c]) (Sub64 (Const64 <t> [d]) x)) => (Add64 (Const64 <t> [c-d]) x)
+(Sub32 (Const32 <t> [c]) (Sub32 (Const32 <t> [d]) x)) => (Add32 (Const32 <t> [c-d]) x)
+(Sub16 (Const16 <t> [c]) (Sub16 (Const16 <t> [d]) x)) => (Add16 (Const16 <t> [c-d]) x)
+(Sub8 (Const8 <t> [c]) (Sub8 (Const8 <t> [d]) x)) => (Add8 (Const8 <t> [c-d]) x)
// C & (D & x) -> (C & D) & x
-(And64 (Const64 <t> [c]) (And64 (Const64 <t> [d]) x)) -> (And64 (Const64 <t> [c&d]) x)
-(And32 (Const32 <t> [c]) (And32 (Const32 <t> [d]) x)) -> (And32 (Const32 <t> [int64(int32(c&d))]) x)
-(And16 (Const16 <t> [c]) (And16 (Const16 <t> [d]) x)) -> (And16 (Const16 <t> [int64(int16(c&d))]) x)
-(And8 (Const8 <t> [c]) (And8 (Const8 <t> [d]) x)) -> (And8 (Const8 <t> [int64(int8(c&d))]) x)
+(And64 (Const64 <t> [c]) (And64 (Const64 <t> [d]) x)) => (And64 (Const64 <t> [c&d]) x)
+(And32 (Const32 <t> [c]) (And32 (Const32 <t> [d]) x)) => (And32 (Const32 <t> [c&d]) x)
+(And16 (Const16 <t> [c]) (And16 (Const16 <t> [d]) x)) => (And16 (Const16 <t> [c&d]) x)
+(And8 (Const8 <t> [c]) (And8 (Const8 <t> [d]) x)) => (And8 (Const8 <t> [c&d]) x)
// C | (D | x) -> (C | D) | x
-(Or64 (Const64 <t> [c]) (Or64 (Const64 <t> [d]) x)) -> (Or64 (Const64 <t> [c|d]) x)
-(Or32 (Const32 <t> [c]) (Or32 (Const32 <t> [d]) x)) -> (Or32 (Const32 <t> [int64(int32(c|d))]) x)
-(Or16 (Const16 <t> [c]) (Or16 (Const16 <t> [d]) x)) -> (Or16 (Const16 <t> [int64(int16(c|d))]) x)
-(Or8 (Const8 <t> [c]) (Or8 (Const8 <t> [d]) x)) -> (Or8 (Const8 <t> [int64(int8(c|d))]) x)
+(Or64 (Const64 <t> [c]) (Or64 (Const64 <t> [d]) x)) => (Or64 (Const64 <t> [c|d]) x)
+(Or32 (Const32 <t> [c]) (Or32 (Const32 <t> [d]) x)) => (Or32 (Const32 <t> [c|d]) x)
+(Or16 (Const16 <t> [c]) (Or16 (Const16 <t> [d]) x)) => (Or16 (Const16 <t> [c|d]) x)
+(Or8 (Const8 <t> [c]) (Or8 (Const8 <t> [d]) x)) => (Or8 (Const8 <t> [c|d]) x)
// C ^ (D ^ x) -> (C ^ D) ^ x
-(Xor64 (Const64 <t> [c]) (Xor64 (Const64 <t> [d]) x)) -> (Xor64 (Const64 <t> [c^d]) x)
-(Xor32 (Const32 <t> [c]) (Xor32 (Const32 <t> [d]) x)) -> (Xor32 (Const32 <t> [int64(int32(c^d))]) x)
-(Xor16 (Const16 <t> [c]) (Xor16 (Const16 <t> [d]) x)) -> (Xor16 (Const16 <t> [int64(int16(c^d))]) x)
-(Xor8 (Const8 <t> [c]) (Xor8 (Const8 <t> [d]) x)) -> (Xor8 (Const8 <t> [int64(int8(c^d))]) x)
+(Xor64 (Const64 <t> [c]) (Xor64 (Const64 <t> [d]) x)) => (Xor64 (Const64 <t> [c^d]) x)
+(Xor32 (Const32 <t> [c]) (Xor32 (Const32 <t> [d]) x)) => (Xor32 (Const32 <t> [c^d]) x)
+(Xor16 (Const16 <t> [c]) (Xor16 (Const16 <t> [d]) x)) => (Xor16 (Const16 <t> [c^d]) x)
+(Xor8 (Const8 <t> [c]) (Xor8 (Const8 <t> [d]) x)) => (Xor8 (Const8 <t> [c^d]) x)
// C * (D * x) = (C * D) * x
-(Mul64 (Const64 <t> [c]) (Mul64 (Const64 <t> [d]) x)) -> (Mul64 (Const64 <t> [c*d]) x)
-(Mul32 (Const32 <t> [c]) (Mul32 (Const32 <t> [d]) x)) -> (Mul32 (Const32 <t> [int64(int32(c*d))]) x)
-(Mul16 (Const16 <t> [c]) (Mul16 (Const16 <t> [d]) x)) -> (Mul16 (Const16 <t> [int64(int16(c*d))]) x)
-(Mul8 (Const8 <t> [c]) (Mul8 (Const8 <t> [d]) x)) -> (Mul8 (Const8 <t> [int64(int8(c*d))]) x)
+(Mul64 (Const64 <t> [c]) (Mul64 (Const64 <t> [d]) x)) => (Mul64 (Const64 <t> [c*d]) x)
+(Mul32 (Const32 <t> [c]) (Mul32 (Const32 <t> [d]) x)) => (Mul32 (Const32 <t> [c*d]) x)
+(Mul16 (Const16 <t> [c]) (Mul16 (Const16 <t> [d]) x)) => (Mul16 (Const16 <t> [c*d]) x)
+(Mul8 (Const8 <t> [c]) (Mul8 (Const8 <t> [d]) x)) => (Mul8 (Const8 <t> [c*d]) x)
// floating point optimizations
(Mul(32|64)F x (Const(32|64)F [auxFrom64F(1)])) -> x
break
}
// match: (Add16 (Const16 <t> [c]) (Add16 (Const16 <t> [d]) x))
- // result: (Add16 (Const16 <t> [int64(int16(c+d))]) x)
+ // result: (Add16 (Const16 <t> [c+d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst16 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt16(v_0.AuxInt)
if v_1.Op != OpAdd16 {
continue
}
if v_1_0.Op != OpConst16 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt16(v_1_0.AuxInt)
x := v_1_1
v.reset(OpAdd16)
v0 := b.NewValue0(v.Pos, OpConst16, t)
- v0.AuxInt = int64(int16(c + d))
+ v0.AuxInt = int16ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Add16 (Const16 <t> [c]) (Sub16 (Const16 <t> [d]) x))
- // result: (Sub16 (Const16 <t> [int64(int16(c+d))]) x)
+ // result: (Sub16 (Const16 <t> [c+d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst16 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt16(v_0.AuxInt)
if v_1.Op != OpSub16 {
continue
}
if v_1_0.Op != OpConst16 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt16(v_1_0.AuxInt)
v.reset(OpSub16)
v0 := b.NewValue0(v.Pos, OpConst16, t)
- v0.AuxInt = int64(int16(c + d))
+ v0.AuxInt = int16ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Add16 (Const16 <t> [c]) (Sub16 x (Const16 <t> [d])))
- // result: (Add16 (Const16 <t> [int64(int16(c-d))]) x)
+ // result: (Add16 (Const16 <t> [c-d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst16 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt16(v_0.AuxInt)
if v_1.Op != OpSub16 {
continue
}
if v_1_1.Op != OpConst16 || v_1_1.Type != t {
continue
}
- d := v_1_1.AuxInt
+ d := auxIntToInt16(v_1_1.AuxInt)
v.reset(OpAdd16)
v0 := b.NewValue0(v.Pos, OpConst16, t)
- v0.AuxInt = int64(int16(c - d))
+ v0.AuxInt = int16ToAuxInt(c - d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Add32 (Const32 <t> [c]) (Add32 (Const32 <t> [d]) x))
- // result: (Add32 (Const32 <t> [int64(int32(c+d))]) x)
+ // result: (Add32 (Const32 <t> [c+d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst32 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpAdd32 {
continue
}
if v_1_0.Op != OpConst32 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt32(v_1_0.AuxInt)
x := v_1_1
v.reset(OpAdd32)
v0 := b.NewValue0(v.Pos, OpConst32, t)
- v0.AuxInt = int64(int32(c + d))
+ v0.AuxInt = int32ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Add32 (Const32 <t> [c]) (Sub32 (Const32 <t> [d]) x))
- // result: (Sub32 (Const32 <t> [int64(int32(c+d))]) x)
+ // result: (Sub32 (Const32 <t> [c+d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst32 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpSub32 {
continue
}
if v_1_0.Op != OpConst32 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt32(v_1_0.AuxInt)
v.reset(OpSub32)
v0 := b.NewValue0(v.Pos, OpConst32, t)
- v0.AuxInt = int64(int32(c + d))
+ v0.AuxInt = int32ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Add32 (Const32 <t> [c]) (Sub32 x (Const32 <t> [d])))
- // result: (Add32 (Const32 <t> [int64(int32(c-d))]) x)
+ // result: (Add32 (Const32 <t> [c-d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst32 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpSub32 {
continue
}
if v_1_1.Op != OpConst32 || v_1_1.Type != t {
continue
}
- d := v_1_1.AuxInt
+ d := auxIntToInt32(v_1_1.AuxInt)
v.reset(OpAdd32)
v0 := b.NewValue0(v.Pos, OpConst32, t)
- v0.AuxInt = int64(int32(c - d))
+ v0.AuxInt = int32ToAuxInt(c - d)
v.AddArg2(v0, x)
return true
}
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpAdd64 {
continue
}
if v_1_0.Op != OpConst64 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt64(v_1_0.AuxInt)
x := v_1_1
v.reset(OpAdd64)
v0 := b.NewValue0(v.Pos, OpConst64, t)
- v0.AuxInt = c + d
+ v0.AuxInt = int64ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpSub64 {
continue
}
if v_1_0.Op != OpConst64 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt64(v_1_0.AuxInt)
v.reset(OpSub64)
v0 := b.NewValue0(v.Pos, OpConst64, t)
- v0.AuxInt = c + d
+ v0.AuxInt = int64ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpSub64 {
continue
}
if v_1_1.Op != OpConst64 || v_1_1.Type != t {
continue
}
- d := v_1_1.AuxInt
+ d := auxIntToInt64(v_1_1.AuxInt)
v.reset(OpAdd64)
v0 := b.NewValue0(v.Pos, OpConst64, t)
- v0.AuxInt = c - d
+ v0.AuxInt = int64ToAuxInt(c - d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Add8 (Const8 <t> [c]) (Add8 (Const8 <t> [d]) x))
- // result: (Add8 (Const8 <t> [int64(int8(c+d))]) x)
+ // result: (Add8 (Const8 <t> [c+d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst8 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt8(v_0.AuxInt)
if v_1.Op != OpAdd8 {
continue
}
if v_1_0.Op != OpConst8 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt8(v_1_0.AuxInt)
x := v_1_1
v.reset(OpAdd8)
v0 := b.NewValue0(v.Pos, OpConst8, t)
- v0.AuxInt = int64(int8(c + d))
+ v0.AuxInt = int8ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Add8 (Const8 <t> [c]) (Sub8 (Const8 <t> [d]) x))
- // result: (Sub8 (Const8 <t> [int64(int8(c+d))]) x)
+ // result: (Sub8 (Const8 <t> [c+d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst8 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt8(v_0.AuxInt)
if v_1.Op != OpSub8 {
continue
}
if v_1_0.Op != OpConst8 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt8(v_1_0.AuxInt)
v.reset(OpSub8)
v0 := b.NewValue0(v.Pos, OpConst8, t)
- v0.AuxInt = int64(int8(c + d))
+ v0.AuxInt = int8ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Add8 (Const8 <t> [c]) (Sub8 x (Const8 <t> [d])))
- // result: (Add8 (Const8 <t> [int64(int8(c-d))]) x)
+ // result: (Add8 (Const8 <t> [c-d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst8 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt8(v_0.AuxInt)
if v_1.Op != OpSub8 {
continue
}
if v_1_1.Op != OpConst8 || v_1_1.Type != t {
continue
}
- d := v_1_1.AuxInt
+ d := auxIntToInt8(v_1_1.AuxInt)
v.reset(OpAdd8)
v0 := b.NewValue0(v.Pos, OpConst8, t)
- v0.AuxInt = int64(int8(c - d))
+ v0.AuxInt = int8ToAuxInt(c - d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (And16 (Const16 <t> [c]) (And16 (Const16 <t> [d]) x))
- // result: (And16 (Const16 <t> [int64(int16(c&d))]) x)
+ // result: (And16 (Const16 <t> [c&d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst16 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt16(v_0.AuxInt)
if v_1.Op != OpAnd16 {
continue
}
if v_1_0.Op != OpConst16 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt16(v_1_0.AuxInt)
x := v_1_1
v.reset(OpAnd16)
v0 := b.NewValue0(v.Pos, OpConst16, t)
- v0.AuxInt = int64(int16(c & d))
+ v0.AuxInt = int16ToAuxInt(c & d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (And32 (Const32 <t> [c]) (And32 (Const32 <t> [d]) x))
- // result: (And32 (Const32 <t> [int64(int32(c&d))]) x)
+ // result: (And32 (Const32 <t> [c&d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst32 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpAnd32 {
continue
}
if v_1_0.Op != OpConst32 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt32(v_1_0.AuxInt)
x := v_1_1
v.reset(OpAnd32)
v0 := b.NewValue0(v.Pos, OpConst32, t)
- v0.AuxInt = int64(int32(c & d))
+ v0.AuxInt = int32ToAuxInt(c & d)
v.AddArg2(v0, x)
return true
}
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpAnd64 {
continue
}
if v_1_0.Op != OpConst64 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt64(v_1_0.AuxInt)
x := v_1_1
v.reset(OpAnd64)
v0 := b.NewValue0(v.Pos, OpConst64, t)
- v0.AuxInt = c & d
+ v0.AuxInt = int64ToAuxInt(c & d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (And8 (Const8 <t> [c]) (And8 (Const8 <t> [d]) x))
- // result: (And8 (Const8 <t> [int64(int8(c&d))]) x)
+ // result: (And8 (Const8 <t> [c&d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst8 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt8(v_0.AuxInt)
if v_1.Op != OpAnd8 {
continue
}
if v_1_0.Op != OpConst8 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt8(v_1_0.AuxInt)
x := v_1_1
v.reset(OpAnd8)
v0 := b.NewValue0(v.Pos, OpConst8, t)
- v0.AuxInt = int64(int8(c & d))
+ v0.AuxInt = int8ToAuxInt(c & d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Mul16 (Const16 <t> [c]) (Mul16 (Const16 <t> [d]) x))
- // result: (Mul16 (Const16 <t> [int64(int16(c*d))]) x)
+ // result: (Mul16 (Const16 <t> [c*d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst16 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt16(v_0.AuxInt)
if v_1.Op != OpMul16 {
continue
}
if v_1_0.Op != OpConst16 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt16(v_1_0.AuxInt)
x := v_1_1
v.reset(OpMul16)
v0 := b.NewValue0(v.Pos, OpConst16, t)
- v0.AuxInt = int64(int16(c * d))
+ v0.AuxInt = int16ToAuxInt(c * d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Mul32 (Const32 <t> [c]) (Mul32 (Const32 <t> [d]) x))
- // result: (Mul32 (Const32 <t> [int64(int32(c*d))]) x)
+ // result: (Mul32 (Const32 <t> [c*d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst32 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpMul32 {
continue
}
if v_1_0.Op != OpConst32 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt32(v_1_0.AuxInt)
x := v_1_1
v.reset(OpMul32)
v0 := b.NewValue0(v.Pos, OpConst32, t)
- v0.AuxInt = int64(int32(c * d))
+ v0.AuxInt = int32ToAuxInt(c * d)
v.AddArg2(v0, x)
return true
}
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpMul64 {
continue
}
if v_1_0.Op != OpConst64 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt64(v_1_0.AuxInt)
x := v_1_1
v.reset(OpMul64)
v0 := b.NewValue0(v.Pos, OpConst64, t)
- v0.AuxInt = c * d
+ v0.AuxInt = int64ToAuxInt(c * d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Mul8 (Const8 <t> [c]) (Mul8 (Const8 <t> [d]) x))
- // result: (Mul8 (Const8 <t> [int64(int8(c*d))]) x)
+ // result: (Mul8 (Const8 <t> [c*d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst8 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt8(v_0.AuxInt)
if v_1.Op != OpMul8 {
continue
}
if v_1_0.Op != OpConst8 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt8(v_1_0.AuxInt)
x := v_1_1
v.reset(OpMul8)
v0 := b.NewValue0(v.Pos, OpConst8, t)
- v0.AuxInt = int64(int8(c * d))
+ v0.AuxInt = int8ToAuxInt(c * d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Or16 (Const16 <t> [c]) (Or16 (Const16 <t> [d]) x))
- // result: (Or16 (Const16 <t> [int64(int16(c|d))]) x)
+ // result: (Or16 (Const16 <t> [c|d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst16 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt16(v_0.AuxInt)
if v_1.Op != OpOr16 {
continue
}
if v_1_0.Op != OpConst16 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt16(v_1_0.AuxInt)
x := v_1_1
v.reset(OpOr16)
v0 := b.NewValue0(v.Pos, OpConst16, t)
- v0.AuxInt = int64(int16(c | d))
+ v0.AuxInt = int16ToAuxInt(c | d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Or32 (Const32 <t> [c]) (Or32 (Const32 <t> [d]) x))
- // result: (Or32 (Const32 <t> [int64(int32(c|d))]) x)
+ // result: (Or32 (Const32 <t> [c|d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst32 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpOr32 {
continue
}
if v_1_0.Op != OpConst32 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt32(v_1_0.AuxInt)
x := v_1_1
v.reset(OpOr32)
v0 := b.NewValue0(v.Pos, OpConst32, t)
- v0.AuxInt = int64(int32(c | d))
+ v0.AuxInt = int32ToAuxInt(c | d)
v.AddArg2(v0, x)
return true
}
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpOr64 {
continue
}
if v_1_0.Op != OpConst64 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt64(v_1_0.AuxInt)
x := v_1_1
v.reset(OpOr64)
v0 := b.NewValue0(v.Pos, OpConst64, t)
- v0.AuxInt = c | d
+ v0.AuxInt = int64ToAuxInt(c | d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Or8 (Const8 <t> [c]) (Or8 (Const8 <t> [d]) x))
- // result: (Or8 (Const8 <t> [int64(int8(c|d))]) x)
+ // result: (Or8 (Const8 <t> [c|d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst8 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt8(v_0.AuxInt)
if v_1.Op != OpOr8 {
continue
}
if v_1_0.Op != OpConst8 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt8(v_1_0.AuxInt)
x := v_1_1
v.reset(OpOr8)
v0 := b.NewValue0(v.Pos, OpConst8, t)
- v0.AuxInt = int64(int8(c | d))
+ v0.AuxInt = int8ToAuxInt(c | d)
v.AddArg2(v0, x)
return true
}
return true
}
// match: (Sub16 (Const16 <t> [c]) (Sub16 x (Const16 <t> [d])))
- // result: (Sub16 (Const16 <t> [int64(int16(c+d))]) x)
+ // result: (Sub16 (Const16 <t> [c+d]) x)
for {
if v_0.Op != OpConst16 {
break
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt16(v_0.AuxInt)
if v_1.Op != OpSub16 {
break
}
if v_1_1.Op != OpConst16 || v_1_1.Type != t {
break
}
- d := v_1_1.AuxInt
+ d := auxIntToInt16(v_1_1.AuxInt)
v.reset(OpSub16)
v0 := b.NewValue0(v.Pos, OpConst16, t)
- v0.AuxInt = int64(int16(c + d))
+ v0.AuxInt = int16ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
// match: (Sub16 (Const16 <t> [c]) (Sub16 (Const16 <t> [d]) x))
- // result: (Add16 (Const16 <t> [int64(int16(c-d))]) x)
+ // result: (Add16 (Const16 <t> [c-d]) x)
for {
if v_0.Op != OpConst16 {
break
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt16(v_0.AuxInt)
if v_1.Op != OpSub16 {
break
}
if v_1_0.Op != OpConst16 || v_1_0.Type != t {
break
}
- d := v_1_0.AuxInt
+ d := auxIntToInt16(v_1_0.AuxInt)
v.reset(OpAdd16)
v0 := b.NewValue0(v.Pos, OpConst16, t)
- v0.AuxInt = int64(int16(c - d))
+ v0.AuxInt = int16ToAuxInt(c - d)
v.AddArg2(v0, x)
return true
}
return true
}
// match: (Sub32 (Const32 <t> [c]) (Sub32 x (Const32 <t> [d])))
- // result: (Sub32 (Const32 <t> [int64(int32(c+d))]) x)
+ // result: (Sub32 (Const32 <t> [c+d]) x)
for {
if v_0.Op != OpConst32 {
break
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpSub32 {
break
}
if v_1_1.Op != OpConst32 || v_1_1.Type != t {
break
}
- d := v_1_1.AuxInt
+ d := auxIntToInt32(v_1_1.AuxInt)
v.reset(OpSub32)
v0 := b.NewValue0(v.Pos, OpConst32, t)
- v0.AuxInt = int64(int32(c + d))
+ v0.AuxInt = int32ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
// match: (Sub32 (Const32 <t> [c]) (Sub32 (Const32 <t> [d]) x))
- // result: (Add32 (Const32 <t> [int64(int32(c-d))]) x)
+ // result: (Add32 (Const32 <t> [c-d]) x)
for {
if v_0.Op != OpConst32 {
break
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpSub32 {
break
}
if v_1_0.Op != OpConst32 || v_1_0.Type != t {
break
}
- d := v_1_0.AuxInt
+ d := auxIntToInt32(v_1_0.AuxInt)
v.reset(OpAdd32)
v0 := b.NewValue0(v.Pos, OpConst32, t)
- v0.AuxInt = int64(int32(c - d))
+ v0.AuxInt = int32ToAuxInt(c - d)
v.AddArg2(v0, x)
return true
}
break
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpSub64 {
break
}
if v_1_1.Op != OpConst64 || v_1_1.Type != t {
break
}
- d := v_1_1.AuxInt
+ d := auxIntToInt64(v_1_1.AuxInt)
v.reset(OpSub64)
v0 := b.NewValue0(v.Pos, OpConst64, t)
- v0.AuxInt = c + d
+ v0.AuxInt = int64ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
break
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpSub64 {
break
}
if v_1_0.Op != OpConst64 || v_1_0.Type != t {
break
}
- d := v_1_0.AuxInt
+ d := auxIntToInt64(v_1_0.AuxInt)
v.reset(OpAdd64)
v0 := b.NewValue0(v.Pos, OpConst64, t)
- v0.AuxInt = c - d
+ v0.AuxInt = int64ToAuxInt(c - d)
v.AddArg2(v0, x)
return true
}
return true
}
// match: (Sub8 (Const8 <t> [c]) (Sub8 x (Const8 <t> [d])))
- // result: (Sub8 (Const8 <t> [int64(int8(c+d))]) x)
+ // result: (Sub8 (Const8 <t> [c+d]) x)
for {
if v_0.Op != OpConst8 {
break
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt8(v_0.AuxInt)
if v_1.Op != OpSub8 {
break
}
if v_1_1.Op != OpConst8 || v_1_1.Type != t {
break
}
- d := v_1_1.AuxInt
+ d := auxIntToInt8(v_1_1.AuxInt)
v.reset(OpSub8)
v0 := b.NewValue0(v.Pos, OpConst8, t)
- v0.AuxInt = int64(int8(c + d))
+ v0.AuxInt = int8ToAuxInt(c + d)
v.AddArg2(v0, x)
return true
}
// match: (Sub8 (Const8 <t> [c]) (Sub8 (Const8 <t> [d]) x))
- // result: (Add8 (Const8 <t> [int64(int8(c-d))]) x)
+ // result: (Add8 (Const8 <t> [c-d]) x)
for {
if v_0.Op != OpConst8 {
break
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt8(v_0.AuxInt)
if v_1.Op != OpSub8 {
break
}
if v_1_0.Op != OpConst8 || v_1_0.Type != t {
break
}
- d := v_1_0.AuxInt
+ d := auxIntToInt8(v_1_0.AuxInt)
v.reset(OpAdd8)
v0 := b.NewValue0(v.Pos, OpConst8, t)
- v0.AuxInt = int64(int8(c - d))
+ v0.AuxInt = int8ToAuxInt(c - d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Xor16 (Const16 <t> [c]) (Xor16 (Const16 <t> [d]) x))
- // result: (Xor16 (Const16 <t> [int64(int16(c^d))]) x)
+ // result: (Xor16 (Const16 <t> [c^d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst16 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt16(v_0.AuxInt)
if v_1.Op != OpXor16 {
continue
}
if v_1_0.Op != OpConst16 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt16(v_1_0.AuxInt)
x := v_1_1
v.reset(OpXor16)
v0 := b.NewValue0(v.Pos, OpConst16, t)
- v0.AuxInt = int64(int16(c ^ d))
+ v0.AuxInt = int16ToAuxInt(c ^ d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Xor32 (Const32 <t> [c]) (Xor32 (Const32 <t> [d]) x))
- // result: (Xor32 (Const32 <t> [int64(int32(c^d))]) x)
+ // result: (Xor32 (Const32 <t> [c^d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst32 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt32(v_0.AuxInt)
if v_1.Op != OpXor32 {
continue
}
if v_1_0.Op != OpConst32 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt32(v_1_0.AuxInt)
x := v_1_1
v.reset(OpXor32)
v0 := b.NewValue0(v.Pos, OpConst32, t)
- v0.AuxInt = int64(int32(c ^ d))
+ v0.AuxInt = int32ToAuxInt(c ^ d)
v.AddArg2(v0, x)
return true
}
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt64(v_0.AuxInt)
if v_1.Op != OpXor64 {
continue
}
if v_1_0.Op != OpConst64 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt64(v_1_0.AuxInt)
x := v_1_1
v.reset(OpXor64)
v0 := b.NewValue0(v.Pos, OpConst64, t)
- v0.AuxInt = c ^ d
+ v0.AuxInt = int64ToAuxInt(c ^ d)
v.AddArg2(v0, x)
return true
}
break
}
// match: (Xor8 (Const8 <t> [c]) (Xor8 (Const8 <t> [d]) x))
- // result: (Xor8 (Const8 <t> [int64(int8(c^d))]) x)
+ // result: (Xor8 (Const8 <t> [c^d]) x)
for {
for _i0 := 0; _i0 <= 1; _i0, v_0, v_1 = _i0+1, v_1, v_0 {
if v_0.Op != OpConst8 {
continue
}
t := v_0.Type
- c := v_0.AuxInt
+ c := auxIntToInt8(v_0.AuxInt)
if v_1.Op != OpXor8 {
continue
}
if v_1_0.Op != OpConst8 || v_1_0.Type != t {
continue
}
- d := v_1_0.AuxInt
+ d := auxIntToInt8(v_1_0.AuxInt)
x := v_1_1
v.reset(OpXor8)
v0 := b.NewValue0(v.Pos, OpConst8, t)
- v0.AuxInt = int64(int8(c ^ d))
+ v0.AuxInt = int8ToAuxInt(c ^ d)
v.AddArg2(v0, x)
return true
}