diff --git a/tests/opt/opt_expr_shift.ys b/tests/opt/opt_expr_shift.ys index 5944bfa33..943d370dc 100644 --- a/tests/opt/opt_expr_shift.ys +++ b/tests/opt/opt_expr_shift.ys @@ -20,7 +20,11 @@ module top ( output wire [7:0] sshr_uu, output wire signed [7:0] sshr_us, output wire [7:0] sshr_su, - output wire signed [7:0] sshr_ss + output wire signed [7:0] sshr_ss, + output wire [7:0] shiftx_uu, + output wire signed [7:0] shiftx_us, + output wire [7:0] shiftx_su, + output wire signed [7:0] shiftx_ss ); assign shl_uu = in_u << 20; assign shl_us = in_u << 20; @@ -38,9 +42,20 @@ module top ( assign sshr_us = in_u >>> 20; assign sshr_su = in_s >>> 20; assign sshr_ss = in_s >>> 20; + wire [7:0] shamt = 20; + assign shiftx_uu = in_u[shamt +: 8]; + assign shiftx_us = in_u[shamt +: 8]; + assign shiftx_su = in_s[shamt +: 8]; + assign shiftx_ss = in_s[shamt +: 8]; endmodule EOT +select -assert-count 4 t:$shl +select -assert-count 4 t:$shr +select -assert-count 4 t:$sshl +select -assert-count 4 t:$sshr +select -assert-count 4 t:$shiftx + equiv_opt opt_expr design -load postopt @@ -48,21 +63,46 @@ select -assert-none t:$shl select -assert-none t:$shr select -assert-none t:$sshl select -assert-none t:$sshr +select -assert-none t:$shiftx design -reset read_verilog <> 36'hfffffffff; + assign sshl = in <<< 36'hfffffffff; + assign sshr = in >>> 36'hfffffffff; + assign shiftx = in[36'hfffffffff +: 8]; - assign out1 = (in >> 36'hfffffffff); wire signed [35:0] shamt = 36'hfffffffff; - assign out2 = (in >> shamt); + assign shl_s = in << shamt; + assign shr_s = in >> shamt; + assign sshl_s = in <<< shamt; + assign sshr_s = in >>> shamt; + assign shiftx_s = in[shamt +: 8]; endmodule EOT +select -assert-count 2 t:$shl +select -assert-count 2 t:$shr +select -assert-count 2 t:$sshl +select -assert-count 2 t:$sshr +select -assert-count 1 t:$shiftx + equiv_opt opt_expr design -load postopt @@ -70,3 +110,4 @@ select -assert-none t:$shl select -assert-none t:$shr select -assert-none t:$sshl select -assert-none t:$sshr +select -assert-none t:$shiftx