[clang] [CIR] Upstream comparison ops for VectorType (PR #140597)
Bruno Cardoso Lopes via cfe-commits
cfe-commits at lists.llvm.org
Mon May 19 17:07:00 PDT 2025
================
@@ -2083,4 +2083,33 @@ def VecExtractOp : CIR_Op<"vec.extract", [Pure,
let hasFolder = 1;
}
+//===----------------------------------------------------------------------===//
+// VecCmpOp
+//===----------------------------------------------------------------------===//
+
+def VecCmpOp : CIR_Op<"vec.cmp", [Pure, SameTypeOperands]> {
+
+ let summary = "Compare two vectors";
+ let description = [{
+ The `cir.vec.cmp` operation does an element-wise comparison of two vectors
+ of the same type. The result is a vector of the same size as the operands
+ whose element type is the signed integral type that is the same size as the
+ element type of the operands. The values in the result are 0 or -1.
+
+ ```mlir
+ %eq = cir.vec.cmp(eq, %vec_a, %vec_b) : !cir.vector<4 x !s32i>, !cir.vector<4 x !s32i>
+ %lt = cir.vec.cmp(lt, %vec_a, %vec_b) : !cir.vector<4 x !s32i>, !cir.vector<4 x !s32i>
+ ```
+ }];
+
+ let arguments = (ins Arg<CmpOpKind, "cmp kind">:$kind, CIR_VectorType:$lhs,
+ CIR_VectorType:$rhs);
+ let results = (outs CIR_VectorType:$result);
+
+ let assemblyFormat = [{
+ `(` $kind `,` $lhs `,` $rhs `)` `:` qualified(type($lhs)) `,`
+ qualified(type($result)) attr-dict
+ }];
----------------
bcardosolopes wrote:
Looks like we could get a folder here as well as follow up work at some point :)
https://github.com/llvm/llvm-project/pull/140597
More information about the cfe-commits
mailing list