Index: mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td =================================================================== --- mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td +++ mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td @@ -113,7 +113,10 @@ AnyTypeOf<[LLVM_ScalarOrVectorOf, LLVM_ScalarOrVectorOf]>:$rhs); let builders = [ - OpBuilder<(ins "ICmpPredicate":$predicate, "Value":$lhs, "Value":$rhs)> + OpBuilder<(ins "ICmpPredicate":$predicate, "Value":$lhs, "Value":$rhs), [{ + build($_builder, $_state, ::getI1SameShape(lhs.getType()), + predicate, lhs, rhs); + }]> ]; let hasCustomAssemblyFormat = 1; string llvmInstName = "ICmp"; @@ -139,7 +142,10 @@ DefaultValuedAttr:$fastmathFlags); let builders = [ - OpBuilder<(ins "FCmpPredicate":$predicate, "Value":$lhs, "Value":$rhs)> + OpBuilder<(ins "FCmpPredicate":$predicate, "Value":$lhs, "Value":$rhs), [{ + build($_builder, $_state, ::getI1SameShape(lhs.getType()), + predicate, lhs, rhs); + }]> ]; let hasCustomAssemblyFormat = 1; string llvmInstName = "FCmp"; Index: mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp =================================================================== --- mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp +++ mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp @@ -96,19 +96,8 @@ } //===----------------------------------------------------------------------===// -// Printing, parsing and builder for LLVM::CmpOp. +// Printing and parsing for LLVM::CmpOp. //===----------------------------------------------------------------------===// - -void ICmpOp::build(OpBuilder &builder, OperationState &result, - ICmpPredicate predicate, Value lhs, Value rhs) { - build(builder, result, getI1SameShape(lhs.getType()), predicate, lhs, rhs); -} - -void FCmpOp::build(OpBuilder &builder, OperationState &result, - FCmpPredicate predicate, Value lhs, Value rhs) { - build(builder, result, getI1SameShape(lhs.getType()), predicate, lhs, rhs); -} - void ICmpOp::print(OpAsmPrinter &p) { p << " \"" << stringifyICmpPredicate(getPredicate()) << "\" " << getOperand(0) << ", " << getOperand(1);