Merge "Add missing inequality operators to NNAPI Canonical Types"
diff --git a/nn/common/TypeUtils.cpp b/nn/common/TypeUtils.cpp
index 79d493e..16f8281 100644
--- a/nn/common/TypeUtils.cpp
+++ b/nn/common/TypeUtils.cpp
@@ -849,7 +849,6 @@
 bool operator==(const Timing& a, const Timing& b) {
     return a.timeOnDevice == b.timeOnDevice && a.timeInDriver == b.timeInDriver;
 }
-
 bool operator!=(const Timing& a, const Timing& b) {
     return !(a == b);
 }
@@ -857,11 +856,18 @@
 bool operator==(const Capabilities::PerformanceInfo& a, const Capabilities::PerformanceInfo& b) {
     return a.execTime == b.execTime && a.powerUsage == b.powerUsage;
 }
+bool operator!=(const Capabilities::PerformanceInfo& a, const Capabilities::PerformanceInfo& b) {
+    return !(a == b);
+}
 
 bool operator==(const Capabilities::OperandPerformance& a,
                 const Capabilities::OperandPerformance& b) {
     return a.type == b.type && a.info == b.info;
 }
+bool operator!=(const Capabilities::OperandPerformance& a,
+                const Capabilities::OperandPerformance& b) {
+    return !(a == b);
+}
 
 bool operator==(const Capabilities& a, const Capabilities& b) {
     return a.relaxedFloat32toFloat16PerformanceScalar ==
@@ -871,15 +877,25 @@
            a.operandPerformance.asVector() == b.operandPerformance.asVector() &&
            a.ifPerformance == b.ifPerformance && a.whilePerformance == b.whilePerformance;
 }
+bool operator!=(const Capabilities& a, const Capabilities& b) {
+    return !(a == b);
+}
 
 bool operator==(const Extension::OperandTypeInformation& a,
                 const Extension::OperandTypeInformation& b) {
     return a.type == b.type && a.isTensor == b.isTensor && a.byteSize == b.byteSize;
 }
+bool operator!=(const Extension::OperandTypeInformation& a,
+                const Extension::OperandTypeInformation& b) {
+    return !(a == b);
+}
 
 bool operator==(const Extension& a, const Extension& b) {
     return a.name == b.name && a.operandTypes == b.operandTypes;
 }
+bool operator!=(const Extension& a, const Extension& b) {
+    return !(a == b);
+}
 
 bool operator==(const Operand::SymmPerChannelQuantParams& a,
                 const Operand::SymmPerChannelQuantParams& b) {
diff --git a/nn/common/include/nnapi/TypeUtils.h b/nn/common/include/nnapi/TypeUtils.h
index b32f78b..06c0b2f 100644
--- a/nn/common/include/nnapi/TypeUtils.h
+++ b/nn/common/include/nnapi/TypeUtils.h
@@ -111,12 +111,19 @@
 bool operator==(const Timing& a, const Timing& b);
 bool operator!=(const Timing& a, const Timing& b);
 bool operator==(const Capabilities::PerformanceInfo& a, const Capabilities::PerformanceInfo& b);
+bool operator!=(const Capabilities::PerformanceInfo& a, const Capabilities::PerformanceInfo& b);
 bool operator==(const Capabilities::OperandPerformance& a,
                 const Capabilities::OperandPerformance& b);
+bool operator!=(const Capabilities::OperandPerformance& a,
+                const Capabilities::OperandPerformance& b);
 bool operator==(const Capabilities& a, const Capabilities& b);
+bool operator!=(const Capabilities& a, const Capabilities& b);
 bool operator==(const Extension::OperandTypeInformation& a,
                 const Extension::OperandTypeInformation& b);
+bool operator!=(const Extension::OperandTypeInformation& a,
+                const Extension::OperandTypeInformation& b);
 bool operator==(const Extension& a, const Extension& b);
+bool operator!=(const Extension& a, const Extension& b);
 bool operator==(const Operand::SymmPerChannelQuantParams& a,
                 const Operand::SymmPerChannelQuantParams& b);
 bool operator!=(const Operand::SymmPerChannelQuantParams& a,