Skip to content

[slang] Testing error when switching to slang master branch #9489

@dinoruic

Description

@dinoruic

Hi all,

when building with the latest slang master branch, there seems to be an issue with tests on basic.sv.

Specifically, I'm getting the following unexpected output

$ circt-translate --import-verilog test/Conversion/ImportVerilog/basic.sv | FileCheck test/Conversion/ImportVerilog/basic.sv

../test/Conversion/ImportVerilog/basic.sv:1740:12: error: CHECK: expected string not found in input
 // CHECK: [[V0:%.+]] = moore.extract_ref %z3 from 2
           ^
<stdin>:1431:36: note: scanning from here
 %11 = moore.extract_ref %z3 from 1 : <l3> -> <l1>
                                   ^
<stdin>:1435:2: note: possible intended match here
 %15 = moore.extract_ref %w3 from 0 : <l2> -> <l1>
 ^

Input file: <stdin>
Check file: ../test/Conversion/ImportVerilog/basic.sv

-dump-input=help explains the following input dump.

Input was:
<<<<<<
              .
              .
              .
           1426:  %z3 = moore.net wire : <l3> 
           1427:  %w3 = moore.net wire : <l2> 
           1428:  %8 = moore.read %x3 : <l1> 
           1429:  %9 = moore.read %y3 : <l1> 
           1430:  %10 = moore.extract_ref %z3 from 0 : <l3> -> <l1> 
           1431:  %11 = moore.extract_ref %z3 from 1 : <l3> -> <l1> 
check:1740'0                                        X~~~~~~~~~~~~~~~ error: no match found
           1432:  %12 = moore.read %z3 : <l3> 
check:1740'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           1433:  %13 = moore.constant 2 : i32 
check:1740'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           1434:  %14 = moore.dyn_extract %12 from %13 : l3, i32 -> l1 
check:1740'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           1435:  %15 = moore.extract_ref %w3 from 0 : <l2> -> <l1> 
check:1740'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check:1740'1      ?                                                  possible intended match
           1436:  %16 = moore.read %w3 : <l2> 
check:1740'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           1437:  %17 = moore.constant 1 : i32 
check:1740'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           1438:  %18 = moore.dyn_extract %16 from %17 : l2, i32 -> l1 
check:1740'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           1439:  %p3.v1, %p3.c1 = moore.instance "p3" @MultiPorts(a0: %8: !moore.l1, a1: %9: !moore.l1, v0: %14: !moore.l1, v2: %10: !moore.ref<l1>, c0: %18: !moore.l1) -> (v1: !moore.l1, c1: !moore.l1) 
check:1740'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           1440:  moore.assign %11, %p3.v1 : l1 
check:1740'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
              .
              .
              .
>>>>>>

It looks like moore.extract_ref %z3 from 2 is missing but therefore we have this:

%12 = moore.read %z3 : <l3>
%13 = moore.constant 2 : i32
%14 = moore.dyn_extract %12 from %13 : l3, i32 -> l1 

Do you have any advice on how to proceed with this?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions