diff --git a/evm/src/cpu/kernel/optimizer.rs b/evm/src/cpu/kernel/optimizer.rs index 6d77f0fa..ac46011a 100644 --- a/evm/src/cpu/kernel/optimizer.rs +++ b/evm/src/cpu/kernel/optimizer.rs @@ -97,7 +97,7 @@ fn remove_swapped_pushes(code: &mut Vec) { fn remove_swaps_commutative(code: &mut Vec) { replace_windows(code, |window| { if let [StandardOp(swap1), StandardOp(f)] = window && &swap1 == "SWAP1" { - let commutative = matches!(f.as_str(), "ADD" | "MUL"); + let commutative = matches!(f.as_str(), "ADD" | "MUL" | "AND" | "OR" | "XOR" | "EQ"); commutative.then_some(vec![StandardOp(f)]) } else { None