Add CKW binary and ternary statements

Resolves: COMPMID-6388
Signed-off-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Change-Id: Ia0cd1486f368af54053066f489cac83b9de01789
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10182
Reviewed-by: Gunes Bayir <gunes.bayir@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
diff --git a/compute_kernel_writer/include/ckw/types/Operators.h b/compute_kernel_writer/include/ckw/types/Operators.h
index ec2df08..1e5f9bd 100644
--- a/compute_kernel_writer/include/ckw/types/Operators.h
+++ b/compute_kernel_writer/include/ckw/types/Operators.h
@@ -52,6 +52,49 @@
     Decrement = 0x0001, // -=
 };
 
+/** Binary operators. */
+enum class BinaryOp : int32_t
+{
+    // Elementwise
+    Add = 0x0000, // +
+    Sub = 0x0001, // -
+    Mul = 0x0002, // *
+    Div = 0x0003, // /
+    Mod = 0x0004, // %
+
+    // Relational
+    Equal        = 0x1000, // ==
+    Less         = 0x1001, // <
+    LessEqual    = 0x1002, // <=
+    Greater      = 0x1003, // >
+    GreaterEqual = 0x1004, // >=
+
+    // Algebra
+    MatMul_Nt_Nt = 0x2000, // X
+    MatMul_Nt_T  = 0x2001, // X
+    MatMul_T_Nt  = 0x2002, // X
+    MatMul_T_T   = 0x2003, // X
+    Dot          = 0x2004, // .
+
+    // Logical
+    LogicalAnd = 0x3000, // &&
+    LogicalOr  = 0x3001, // ||
+
+    // Bitwise
+    BitwiseXOR = 0x4000, // ^
+
+    // Functions
+    Min = 0x8000,
+    Max = 0x8001,
+};
+
+/** Ternary operators. */
+enum class TernaryOp : int32_t
+{
+    Select = 0x0000,
+    Clamp  = 0x0001,
+};
+
 } // namespace ckw
 
 #endif // CKW_INCLUDE_CKW_TYPES_OPERATORS_H