(Div32F (Const32F [c]) (Const32F [d])) -> (Const32F [f2i(float64(i2f32(c) / i2f32(d)))])
(Div64F (Const64F [c]) (Const64F [d])) -> (Const64F [f2i(i2f(c) / i2f(d))])
+(Not (ConstBool [c])) -> (ConstBool [1-c])
+
// Convert x * 1 to x.
(Mul8 (Const8 [1]) x) -> x
(Mul16 (Const16 [1]) x) -> x
return false
}
func rewriteValuegeneric_OpNot_0(v *Value) bool {
+ // match: (Not (ConstBool [c]))
+ // cond:
+ // result: (ConstBool [1-c])
+ for {
+ v_0 := v.Args[0]
+ if v_0.Op != OpConstBool {
+ break
+ }
+ c := v_0.AuxInt
+ v.reset(OpConstBool)
+ v.AuxInt = 1 - c
+ return true
+ }
// match: (Not (Eq64 x y))
// cond:
// result: (Neq64 x y)
v.AddArg(y)
return true
}
+ return false
+}
+func rewriteValuegeneric_OpNot_10(v *Value) bool {
// match: (Not (NeqB x y))
// cond:
// result: (EqB x y)
v.AddArg(y)
return true
}
- return false
-}
-func rewriteValuegeneric_OpNot_10(v *Value) bool {
// match: (Not (Greater64 x y))
// cond:
// result: (Leq64 x y)
v.AddArg(y)
return true
}
+ return false
+}
+func rewriteValuegeneric_OpNot_20(v *Value) bool {
// match: (Not (Geq32 x y))
// cond:
// result: (Less32 x y)
v.AddArg(y)
return true
}
- return false
-}
-func rewriteValuegeneric_OpNot_20(v *Value) bool {
// match: (Not (Geq16 x y))
// cond:
// result: (Less16 x y)
v.AddArg(y)
return true
}
+ return false
+}
+func rewriteValuegeneric_OpNot_30(v *Value) bool {
// match: (Not (Less8 x y))
// cond:
// result: (Geq8 x y)
v.AddArg(y)
return true
}
- return false
-}
-func rewriteValuegeneric_OpNot_30(v *Value) bool {
// match: (Not (Less64U x y))
// cond:
// result: (Geq64U x y)
v.AddArg(y)
return true
}
+ return false
+}
+func rewriteValuegeneric_OpNot_40(v *Value) bool {
// match: (Not (Leq32U x y))
// cond:
// result: (Greater32U x y)
v.AddArg(y)
return true
}
- return false
-}
-func rewriteValuegeneric_OpNot_40(v *Value) bool {
// match: (Not (Leq16U x y))
// cond:
// result: (Greater16U x y)