From 2623df180b9e86512fe69b8f90563fbd8add89c3 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Fri, 28 Aug 2026 23:59:37 +0800 Subject: [CodeGen] Complete LaneMask bitwise operations --- backend/include/rcc/CodeGen/MachineIRTypes.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'backend/include') diff --git a/backend/include/rcc/CodeGen/MachineIRTypes.h b/backend/include/rcc/CodeGen/MachineIRTypes.h index 66369e0..abd547e 100644 --- a/backend/include/rcc/CodeGen/MachineIRTypes.h +++ b/backend/include/rcc/CodeGen/MachineIRTypes.h @@ -173,6 +173,20 @@ public: return RawValue; } + [[nodiscard]] constexpr LaneMask operator~() const noexcept { + return LaneMask(~RawValue); + } + + constexpr LaneMask &operator|=(LaneMask Other) noexcept { + RawValue |= Other.RawValue; + return *this; + } + + constexpr LaneMask &operator&=(LaneMask Other) noexcept { + RawValue &= Other.RawValue; + return *this; + } + friend constexpr bool operator==(LaneMask Left, LaneMask Right) noexcept = default; friend constexpr LaneMask operator|(LaneMask Left, LaneMask Right) noexcept { -- cgit v1.2.3