[xlscc] ! Operator creates incorrect logic
Please see included example outlining ! Operator creates incorrect logic. This is a regression from previous behavior.
Test case: test.cc.txt
Current result: assign thisid6 = in1[0]; assign out = {30'h0000_0000, thisid6, 1'h0}; xls_test.v.txt
expected results: assign p0_thisid6_comb = {{32{in1[31]}}, in1}; assign out = {30'h0000_0000, p0_thisid6_comb != 64'h0000_0000_0000_0000, 1'h0}; ref_test.v.txt
Runner: runme.sh.txt
Thanks for taking a look!
I'm not able to reproduce this at HEAD in google3. I get:
module test_block( input wire [31:0] in1, input wire [31:0] atan, output wire [31:0] out ); assign out = {30'h0000_0000, in1 != 32'h0000_0000, 1'h0}; endmodule
This appears to be correct from my manual examination of the C++.
Checked also in OSS at git hash ebedb29fa41258af54a41960d7e06c79c39f3d1c