# Tests for opt_compact_prefix. log -header "Forward dense pack self-equivalence" log -push design -reset verific -cfg veri_optimize_wide_selector 1 verific -cfg db_infer_wide_muxes_post_elaboration 0 read -sv opt_compact_prefix_pack.sv verific -import opt_compact_prefix_pack proc; opt_clean rename opt_compact_prefix_pack gold read -sv opt_compact_prefix_pack.sv verific -import opt_compact_prefix_pack proc; opt_clean opt_compact_prefix opt_clean rename opt_compact_prefix_pack gate miter -equiv -flatten -make_assert gold gate miter hierarchy -top miter proc; opt; memory; opt sat -prove-asserts -verify design -reset log -pop log -header "Forward dense pack structural rewrite" log -push design -reset verific -cfg veri_optimize_wide_selector 1 verific -cfg db_infer_wide_muxes_post_elaboration 0 read -sv opt_compact_prefix_pack.sv verific -import opt_compact_prefix_pack proc; opt_clean opt_compact_prefix opt_clean select -assert-none t:$shl select -assert-none t:$mux select -assert-count 7 t:$add select -assert-count 8 t:$gt design -reset log -pop log -header "Reverse suffix read self-equivalence" log -push design -reset verific -cfg veri_optimize_wide_selector 1 verific -cfg db_infer_wide_muxes_post_elaboration 0 read -sv opt_compact_prefix_sub.sv verific -import opt_compact_prefix_sub proc; opt_clean rename opt_compact_prefix_sub gold read -sv opt_compact_prefix_sub.sv verific -import opt_compact_prefix_sub proc; opt_clean opt_compact_prefix opt_clean rename opt_compact_prefix_sub gate miter -equiv -flatten -make_assert gold gate miter hierarchy -top miter proc; opt; memory; opt sat -prove-asserts -verify design -reset log -pop log -header "Reverse suffix read structural rewrite" log -push design -reset verific -cfg veri_optimize_wide_selector 1 verific -cfg db_infer_wide_muxes_post_elaboration 0 read -sv opt_compact_prefix_sub.sv verific -import opt_compact_prefix_sub proc; opt_clean opt_compact_prefix opt_clean select -assert-none t:$sub select -assert-none t:$mux select -assert-min 1 t:$add select -assert-min 1 t:$eq design -reset log -pop log -header "Negative: unrelated mux module unchanged" log -push design -reset read_verilog <