From be2424bb8c99bb4e44d220de797746f39c38820f Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Tue, 29 Apr 2025 14:22:36 -0700 Subject: [PATCH] Add vector mask element helpers --- riscv/vector_unit.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/riscv/vector_unit.h b/riscv/vector_unit.h index a057c62f..0e806188 100644 --- a/riscv/vector_unit.h +++ b/riscv/vector_unit.h @@ -108,6 +108,17 @@ public: template EG& elt_group(reg_t vReg, reg_t n, bool is_write = false); + bool mask_elt(reg_t vReg, reg_t n) + { + return (elt(vReg, n / 8) >> (n % 8)) & 1; + } + + void set_mask_elt(reg_t vReg, reg_t n, bool value) + { + auto& e = elt(vReg, n / 8, true); + e = (e & ~(1U << (n % 8))) | (value << (n % 8)); + } + public: void reset();