diff --git a/test/libevmasm/Optimiser.cpp b/test/libevmasm/Optimiser.cpp
index 6b588e753..b622b4fb9 100644
--- a/test/libevmasm/Optimiser.cpp
+++ b/test/libevmasm/Optimiser.cpp
@@ -860,53 +860,78 @@ BOOST_AUTO_TEST_CASE(peephole_pop_calldatasize)
 
 BOOST_AUTO_TEST_CASE(peephole_commutative_swap1)
 {
-	AssemblyItems items{
-		u256(1),
-		u256(2),
-		Instruction::SWAP1,
+	vector<Instruction> ops{
 		Instruction::ADD,
-		u256(4),
-		u256(5)
+		Instruction::MUL,
+		Instruction::EQ,
+		Instruction::AND,
+		Instruction::OR,
+		Instruction::XOR
 	};
-	AssemblyItems expectation{
-		u256(1),
-		u256(2),
-		Instruction::ADD,
-		u256(4),
-		u256(5)
-	};
-	PeepholeOptimiser peepOpt(items);
-	BOOST_REQUIRE(peepOpt.optimise());
-	BOOST_CHECK_EQUAL_COLLECTIONS(
+	for (Instruction const op: ops)
+	{
+		AssemblyItems items{
+			u256(1),
+			u256(2),
+			Instruction::SWAP1,
+			op,
+			u256(4),
+			u256(5)
+		};
+		AssemblyItems expectation{
+			u256(1),
+			u256(2),
+			op,
+			u256(4),
+			u256(5)
+		};
+		PeepholeOptimiser peepOpt(items);
+		BOOST_REQUIRE(peepOpt.optimise());
+		BOOST_CHECK_EQUAL_COLLECTIONS(
 		items.begin(), items.end(),
-		expectation.begin(), expectation.end()
-	);
+			expectation.begin(), expectation.end()
+		);
+	}
 }
 
 BOOST_AUTO_TEST_CASE(peephole_noncommutative_swap1)
 {
-	AssemblyItems items{
-		u256(1),
-		u256(2),
-		Instruction::SWAP1,
+	// NOTE: not comprehensive
+	vector<Instruction> ops{
 		Instruction::SUB,
-		u256(4),
-		u256(5)
+		Instruction::DIV,
+		Instruction::SDIV,
+		Instruction::MOD,
+		Instruction::SMOD,
+		Instruction::EXP,
+		Instruction::LT,
+		Instruction::GT
 	};
-	AssemblyItems expectation{
-		u256(1),
-		u256(2),
-		Instruction::SWAP1,
-		Instruction::SUB,
-		u256(4),
-		u256(5)
-	};
-	PeepholeOptimiser peepOpt(items);
-	BOOST_REQUIRE(!peepOpt.optimise());
-	BOOST_CHECK_EQUAL_COLLECTIONS(
+	for (Instruction const op: ops)
+	{
+		AssemblyItems items{
+			u256(1),
+			u256(2),
+			Instruction::SWAP1,
+			op,
+			u256(4),
+			u256(5)
+		};
+		AssemblyItems expectation{
+			u256(1),
+			u256(2),
+			Instruction::SWAP1,
+			op,
+			u256(4),
+			u256(5)
+		};
+		PeepholeOptimiser peepOpt(items);
+		BOOST_REQUIRE(!peepOpt.optimise());
+		BOOST_CHECK_EQUAL_COLLECTIONS(
 		items.begin(), items.end(),
-		expectation.begin(), expectation.end()
-	);
+			expectation.begin(), expectation.end()
+		);
+	}
 }
 
 BOOST_AUTO_TEST_CASE(jumpdest_removal)