Fixed width detection for replicate operator
authorClifford Wolf <clifford@clifford.at>
Thu, 7 Nov 2013 11:43:04 +0000 (12:43 +0100)
committerClifford Wolf <clifford@clifford.at>
Thu, 7 Nov 2013 11:43:04 +0000 (12:43 +0100)
frontends/ast/genrtlil.cc

index f69ca69ead27fbe0fd9b0623a781b11a122faa61..58f1b54b8b8bf140534c44a2066284bd0752fa6b 100644 (file)
@@ -655,6 +655,7 @@ void AstNode::detectSignWidthWorker(int &width_hint, bool &sign_hint)
                break;
 
        case AST_REPLICATE:
+               while (children[0]->simplify(true, false, false, 1, -1, false) == true) { }
                if (children[0]->type != AST_CONSTANT)
                        log_error("Left operand of replicate expression is not constant at %s:%d!\n", filename.c_str(), linenum);
                children[1]->detectSignWidthWorker(sub_width_hint, sub_sign_hint);