Skip to content

[Comb] divs folder produces value of incorrect type #8694

@fabianschuiki

Description

@fabianschuiki
rtl/expression_00060.v:60:16: error: 'comb.divs' op folder produced a value of incorrect type: 'i41', expected: 'i6'
  assign y3 = ((b5>>>p5)/p10);
               ^
rtl/expression_00060.v:60:16: note: see current operation: %53 = "comb.divs"(%52, %16) : (i41, i6) -> i6

Generated by circt-verilog on the following input:

module expression_00060(a0, a1, a2, a3, a4, a5, b0, b1, b2, b3, b4, b5, y);
  input [3:0] a0;
  input [4:0] a1;
  input [5:0] a2;
  input signed [3:0] a3;
  input signed [4:0] a4;
  input signed [5:0] a5;

  input [3:0] b0;
  input [4:0] b1;
  input [5:0] b2;
  input signed [3:0] b3;
  input signed [4:0] b4;
  input signed [5:0] b5;

  wire [3:0] y0;
  wire [4:0] y1;
  wire [5:0] y2;
  wire signed [3:0] y3;
  wire signed [4:0] y4;
  wire signed [5:0] y5;
  wire [3:0] y6;
  wire [4:0] y7;
  wire [5:0] y8;
  wire signed [3:0] y9;
  wire signed [4:0] y10;
  wire signed [5:0] y11;
  wire [3:0] y12;
  wire [4:0] y13;
  wire [5:0] y14;
  wire signed [3:0] y15;
  wire signed [4:0] y16;
  wire signed [5:0] y17;

  output [89:0] y;
  assign y = {y0,y1,y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15,y16,y17};

  localparam [3:0] p0 = ((((3'd3)===(4'sd0))&&((5'd20)|(4'sd4)))>=(((2'sd1)||(5'd21))+((5'sd3)^~(-2'sd0))));
  localparam [4:0] p1 = (^(3'd5));
  localparam [5:0] p2 = (~|{4{((4'd3)||(4'd14))}});
  localparam signed [3:0] p3 = (-2'sd1);
  localparam signed [4:0] p4 = (~|((5'd1)?(-5'sd10):(3'sd0)));
  localparam signed [5:0] p5 = {3{((-2'sd1)-(5'd22))}};
  localparam [3:0] p6 = ((^((3'd2)?(-2'sd1):(2'sd0)))?((2'd3)?(3'sd2):(-5'sd7)):((3'd5)?(4'd14):(-4'sd5)));
  localparam [4:0] p7 = (^((5'sd2)?(5'd21):(-5'sd2)));
  localparam [5:0] p8 = (4'd1);
  localparam signed [3:0] p9 = (3'sd1);
  localparam signed [4:0] p10 = (|(-(-4'sd7)));
  localparam signed [5:0] p11 = {2{{3{{2{(-2'sd0)}}}}}};
  localparam [3:0] p12 = ({3{((-3'sd0)^~(4'sd3))}}+(5'd17));
  localparam [4:0] p13 = {3{(-4'sd7)}};
  localparam [5:0] p14 = ((^(4'sd1))-((4'd11)?(5'sd5):(-2'sd1)));
  localparam signed [3:0] p15 = (((-2'sd0)?(5'd6):(3'd7))?((-3'sd2)?(5'd18):(5'd8)):((4'd0)?(2'd3):(3'sd0)));
  localparam signed [4:0] p16 = {2{(~(5'sd12))}};
  localparam signed [5:0] p17 = (~&(~|(-3'sd0)));

  assign y0 = (~(|(~|$signed((~^(+(~|(~|(($unsigned((((&(~|(!(~|(~$signed(p9)))))))))))))))))));
  assign y1 = (({1{a0}}>=(b1!==b2))<=((p12<<<a3)<={2{b3}}));
  assign y2 = ((2'd1));
  assign y3 = ((b5>>>p5)/p10);
  assign y4 = (((b4?p5:b4)?(p9>=a2):(a2?p9:a2))<<<((b5>=p3)?(b0?a4:p2):(b0*a0)));
  assign y5 = (-(~&(~&(-(~&(~&(&(^(~(&(~&((|a4)===(~&b5)))))))))))));
  assign y6 = (-(({p2,p2,p8}<<(!p13))?((p6)+(a4===a3)):{((p13?p11:p15)<<<(p13>p9))}));
  assign y7 = (2'd1);
  assign y8 = (+(2'd0));
  assign y9 = (^(~|(!(!(-(~(+(~&(~^(~(|(^a3))))))))))));
  assign y10 = {3{(~(p2||b4))}};
  assign y11 = {(2'd1),{b1,p1,p0}};
  assign y12 = {4{$signed(p8)}};
  assign y13 = {{2{{3{b0}}}},(-(+{({2{a2}}|(4'd6))}))};
  assign y14 = {$signed({1{(p2||p13)}}),($unsigned(p9)<$signed(p10))};
  assign y15 = (((b0!==b1)?(a2<b4):(a4?b0:a4))|((b1?a2:b1)?(~b3):(p10?a5:b4)));
  assign y16 = ((5'sd12)/p1);
  assign y17 = ($signed((b1<b5))%a0);
endmodule

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions