diff --git a/src/reader/spirv/function.cc b/src/reader/spirv/function.cc
index 5dd261a..e779227 100644
--- a/src/reader/spirv/function.cc
+++ b/src/reader/spirv/function.cc
@@ -91,9 +91,11 @@
       return ast::BinaryOp::kShiftRight;
     case SpvOpShiftRightArithmetic:
       return ast::BinaryOp::kShiftRightArith;
+    case SpvOpLogicalEqual:
     case SpvOpIEqual:
     case SpvOpFOrdEqual:
       return ast::BinaryOp::kEqual;
+    case SpvOpLogicalNotEqual:
     case SpvOpINotEqual:
     case SpvOpFOrdNotEqual:
       return ast::BinaryOp::kNotEqual;
diff --git a/src/reader/spirv/function_logical_test.cc b/src/reader/spirv/function_logical_test.cc
index 5778396..001a551 100644
--- a/src/reader/spirv/function_logical_test.cc
+++ b/src/reader/spirv/function_logical_test.cc
@@ -189,7 +189,6 @@
       << ToString(fe.ast_body());
 }
 
-
 struct BinaryData {
   const std::string res_type;
   const std::string lhs;
@@ -322,13 +321,33 @@
                                  AstFor("v2bool_t_f"), "logical_or",
                                  AstFor("v2bool_f_t")}));
 
+INSTANTIATE_TEST_SUITE_P(
+    SpvParserTest_LogicalEqual,
+    SpvBinaryLogicalTest,
+    ::testing::Values(BinaryData{"bool", "true", "OpLogicalEqual", "false",
+                                 "__bool", "ScalarConstructor{true}", "equal",
+                                 "ScalarConstructor{false}"},
+                      BinaryData{"v2bool", "v2bool_t_f", "OpLogicalEqual",
+                                 "v2bool_f_t", "__vec_2__bool",
+                                 AstFor("v2bool_t_f"), "equal",
+                                 AstFor("v2bool_f_t")}));
+
+INSTANTIATE_TEST_SUITE_P(
+    SpvParserTest_LogicalNotEqual,
+    SpvBinaryLogicalTest,
+    ::testing::Values(BinaryData{"bool", "true", "OpLogicalNotEqual", "false",
+                                 "__bool", "ScalarConstructor{true}",
+                                 "not_equal", "ScalarConstructor{false}"},
+                      BinaryData{"v2bool", "v2bool_t_f", "OpLogicalNotEqual",
+                                 "v2bool_f_t", "__vec_2__bool",
+                                 AstFor("v2bool_t_f"), "not_equal",
+                                 AstFor("v2bool_f_t")}));
+
 // TODO(dneto): OpAny
 // TODO(dneto): OpAll
 // TODO(dneto): OpIsNan
 // TODO(dneto): OpIsInf
 // TODO(dneto): Kernel-guarded instructions.
-// TODO(dneto): OpLogicalEqual
-// TODO(dneto): OpLogicalNotEqual
 // TODO(dneto): OpSelect
 // TODO(dneto): OpUGreaterThan
 // TODO(dneto): OpSGreaterThan
