From 372dd331aeafc326db84328794ce09dc7b376268 Mon Sep 17 00:00:00 2001 From: Bea Healy <57840981+TaoBi22@users.noreply.github.com> Date: Fri, 22 Nov 2024 11:29:26 +0000 Subject: [PATCH] [HWToBTOR2] Error on variadic ops (#7866) --- lib/Conversion/HWToBTOR2/HWToBTOR2.cpp | 6 ++++++ test/Conversion/HWToBTOR2/errors.mlir | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/lib/Conversion/HWToBTOR2/HWToBTOR2.cpp b/lib/Conversion/HWToBTOR2/HWToBTOR2.cpp index 5162bd656f54..78be174f33cd 100644 --- a/lib/Conversion/HWToBTOR2/HWToBTOR2.cpp +++ b/lib/Conversion/HWToBTOR2/HWToBTOR2.cpp @@ -273,6 +273,12 @@ struct ConvertHWToBTOR2Pass // and a result width. void genBinOp(StringRef inst, Operation *binop, Value op1, Value op2, size_t width) { + // TODO: adding support for most variadic ops shouldn't be too hard + if (binop->getNumOperands() != 2) { + binop->emitError("variadic operations not are not currently supported"); + return; + } + // Set the LID for this operation size_t opLID = getOpLID(binop); diff --git a/test/Conversion/HWToBTOR2/errors.mlir b/test/Conversion/HWToBTOR2/errors.mlir index 4bf37ea42b21..4dc1e09ade5a 100644 --- a/test/Conversion/HWToBTOR2/errors.mlir +++ b/test/Conversion/HWToBTOR2/errors.mlir @@ -23,3 +23,10 @@ hw.module @reg_with_argument_initial(in %clk: !seq.clock, in %in: i32, in %init: %1 = seq.compreg %in, %clk initial %init : i32 hw.output %1 : i32 } + +// ----- + +hw.module @variadic_op(in %input: i32) { + // expected-error @below {{variadic operations not are not currently supported}} + %and = comb.and %input, %input, %input : i32 +}