Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions mlir/docs/DefiningDialects/Operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -1649,6 +1649,15 @@ inline constexpr MyBitEnum operator&(MyBitEnum a, MyBitEnum b) {
inline constexpr MyBitEnum operator^(MyBitEnum a, MyBitEnum b) {
return static_cast<MyBitEnum>(static_cast<uint32_t>(a) ^ static_cast<uint32_t>(b));
}
inline constexpr MyBitEnum &operator|=(MyBitEnum &a, MyBitEnum b) {
return a = a | b;
}
inline constexpr MyBitEnum &operator&=(MyBitEnum &a, MyBitEnum b) {
return a = a & b;
}
inline constexpr MyBitEnum &operator^=(MyBitEnum &a, MyBitEnum b) {
return a = a ^ b;
}
inline constexpr MyBitEnum operator~(MyBitEnum bits) {
// Ensure only bits that can be present in the enum are set
return static_cast<MyBitEnum>(~static_cast<uint32_t>(bits) & static_cast<uint32_t>(15u));
Expand Down
2 changes: 1 addition & 1 deletion mlir/lib/Conversion/MemRefToSPIRV/MemRefToSPIRV.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ calculateMemoryRequirements(Value accessedPtr, bool isNontemporal,
if (!sizeInBytes.has_value())
return failure();

memoryAccess = memoryAccess | spirv::MemoryAccess::Aligned;
memoryAccess |= spirv::MemoryAccess::Aligned;
auto memAccessAttr = spirv::MemoryAccessAttr::get(ctx, memoryAccess);
auto alignmentValue = preferredAlignment ? preferredAlignment : *sizeInBytes;
auto alignment = IntegerAttr::get(IntegerType::get(ctx, 32), alignmentValue);
Expand Down
4 changes: 2 additions & 2 deletions mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -753,7 +753,7 @@ struct VectorLoadOpConverter final
spirv::MemoryAccessAttr memoryAccessAttr;
IntegerAttr alignmentAttr;
if (alignment.has_value()) {
memoryAccess = memoryAccess | spirv::MemoryAccess::Aligned;
memoryAccess |= spirv::MemoryAccess::Aligned;
memoryAccessAttr =
spirv::MemoryAccessAttr::get(rewriter.getContext(), memoryAccess);
alignmentAttr = rewriter.getI32IntegerAttr(alignment.value());
Expand Down Expand Up @@ -822,7 +822,7 @@ struct VectorStoreOpConverter final
spirv::MemoryAccessAttr memoryAccessAttr;
IntegerAttr alignmentAttr;
if (alignment.has_value()) {
memoryAccess = memoryAccess | spirv::MemoryAccess::Aligned;
memoryAccess |= spirv::MemoryAccess::Aligned;
memoryAccessAttr =
spirv::MemoryAccessAttr::get(rewriter.getContext(), memoryAccess);
alignmentAttr = rewriter.getI32IntegerAttr(alignment.value());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ static void addScopeToFunction(LLVM::LLVMFuncOp llvmFunc,
auto subprogramFlags = LLVM::DISubprogramFlags::Optimized;
if (!llvmFunc.isExternal()) {
id = DistinctAttr::create(UnitAttr::get(context));
subprogramFlags = subprogramFlags | LLVM::DISubprogramFlags::Definition;
subprogramFlags |= LLVM::DISubprogramFlags::Definition;
} else {
compileUnitAttr = {};
}
Expand Down
12 changes: 12 additions & 0 deletions mlir/tools/mlir-tblgen/EnumsGen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,9 @@ getAllBitsUnsetCase(llvm::ArrayRef<EnumCase> cases) {
// inline constexpr <enum-type> operator|(<enum-type> a, <enum-type> b);
// inline constexpr <enum-type> operator&(<enum-type> a, <enum-type> b);
// inline constexpr <enum-type> operator^(<enum-type> a, <enum-type> b);
// inline constexpr <enum-type> &operator|=(<enum-type> &a, <enum-type> b);
// inline constexpr <enum-type> &operator&=(<enum-type> &a, <enum-type> b);
// inline constexpr <enum-type> &operator^=(<enum-type> &a, <enum-type> b);
// inline constexpr <enum-type> operator~(<enum-type> bits);
// inline constexpr bool bitEnumContainsAll(<enum-type> bits, <enum-type> bit);
// inline constexpr bool bitEnumContainsAny(<enum-type> bits, <enum-type> bit);
Expand All @@ -385,6 +388,15 @@ inline constexpr {0} operator&({0} a, {0} b) {{
inline constexpr {0} operator^({0} a, {0} b) {{
return static_cast<{0}>(static_cast<{1}>(a) ^ static_cast<{1}>(b));
}
inline constexpr {0} &operator|=({0} &a, {0} b) {{
return a = a | b;
}
inline constexpr {0} &operator&=({0} &a, {0} b) {{
return a = a & b;
}
inline constexpr {0} &operator^=({0} &a, {0} b) {{
return a = a ^ b;
}
inline constexpr {0} operator~({0} bits) {{
// Ensure only bits that can be present in the enum are set
return static_cast<{0}>(~static_cast<{1}>(bits) & static_cast<{1}>({2}u));
Expand Down
Loading