eeric_core/rv_core/instruction/executor/v/utils/
shamt.rs1use crate::rv_core::vector_engine::sew::{DoubleSew, Sew};
2
3pub fn shamt(value: u64, sew: impl Sew) -> u64 {
4 value & ((1 << sew.bit_length().ilog2()) - 1)
5}
6
7pub fn narrow_shamt(value: u64, sew: DoubleSew) -> u64 {
8 shamt(value, sew)
9}