aboutsummaryrefslogtreecommitdiff
path: root/backend/include/rcc/CodeGen
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-28 23:59:37 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-28 23:59:37 +0800
commit2623df180b9e86512fe69b8f90563fbd8add89c3 (patch)
treec4afb7c9500d5c4789dcc0eaa81e2c11c9341aa9 /backend/include/rcc/CodeGen
parent7ee5d1913c7cfd0261f86b0ff7be6968b8c07d84 (diff)
downloadrcc-project-2623df180b9e86512fe69b8f90563fbd8add89c3.tar.gz
rcc-project-2623df180b9e86512fe69b8f90563fbd8add89c3.tar.xz
[CodeGen] Complete LaneMask bitwise operations
Diffstat (limited to 'backend/include/rcc/CodeGen')
-rw-r--r--backend/include/rcc/CodeGen/MachineIRTypes.h14
1 files changed, 14 insertions, 0 deletions
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 {