[llvm] [SPIR-V] Parse parameterized Memory Access operands with a shared helper (PR #209262)
Arseniy Obolenskiy via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 14 06:22:23 PDT 2026
================
@@ -113,6 +113,42 @@ void SPIRVInstPrinter::printOpConstantVarOps(const MCInst *MI,
O << Imm;
}
+unsigned SPIRVInstPrinter::printMemoryOperand(const MCInst *MI, unsigned OpNo,
+ raw_ostream &O) {
+ O << ' ';
+ if (OpNo >= MI->getNumOperands())
+ return OpNo;
+ const uint64_t Mask = MI->getOperand(OpNo).getImm();
+ printSymbolicOperand<OperandCategory::MemoryOperandOperand>(MI, OpNo, O);
+ unsigned NextOp = OpNo + 1;
+ if (Mask & SPIRV::MemoryOperand::Aligned) {
+ O << ' ';
+ printOperand(MI, NextOp, O);
+ ++NextOp;
+ }
+ if (Mask & SPIRV::MemoryOperand::MakePointerAvailableKHR) {
+ O << ' ';
+ printOperand(MI, NextOp, O);
+ ++NextOp;
+ }
+ if (Mask & SPIRV::MemoryOperand::MakePointerVisibleKHR) {
+ O << ' ';
+ printOperand(MI, NextOp, O);
+ ++NextOp;
+ }
+ if (Mask & SPIRV::MemoryOperand::AliasScopeINTELMask) {
+ O << ' ';
+ printOperand(MI, NextOp, O);
+ ++NextOp;
+ }
+ if (Mask & SPIRV::MemoryOperand::NoAliasINTELMask) {
+ O << ' ';
+ printOperand(MI, NextOp, O);
+ ++NextOp;
+ }
+ return NextOp;
+}
----------------
aobolensk wrote:
Left only one place with the increment, unified handling for all cases
https://github.com/llvm/llvm-project/pull/209262
More information about the llvm-commits
mailing list