28 lines
1.0 KiB
Python
Executable File
28 lines
1.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# DESCRIPTION: Verilator: Verilog Test driver/expect definition
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify it
|
|
# under the terms of either the GNU Lesser General Public License Version 3
|
|
# or the Perl Artistic License Version 2.0.
|
|
# SPDX-FileCopyrightText: 2026 Wilson Snyder
|
|
# SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
|
|
|
|
import vltest_bootstrap
|
|
|
|
test.scenarios('vlt')
|
|
|
|
# --unroll-count 0 so the loops are recognized without relying on unrolling.
|
|
test.compile(verilator_flags2=['--stats', '--unroll-count', '0'])
|
|
|
|
# The leading-one positives lower to $mostsetbitp1, the count-ones positive to
|
|
# $countones; the negatives are left as loops (a wrong lowering would raise a count).
|
|
test.file_grep(test.stats,
|
|
r'Optimizations, Loop unrolling, Lowered priority-encoder to mostsetbitp1\s+(\d+)',
|
|
8)
|
|
test.file_grep(test.stats,
|
|
r'Optimizations, Loop unrolling, Lowered count-set-bits to countones\s+(\d+)', 1)
|
|
|
|
test.execute()
|
|
|
|
test.passes()
|