[llvm] [PowerPC] Further refactor atomic loads (PR #194445)
Kai Nacke via llvm-commits
llvm-commits at lists.llvm.org
Tue May 5 12:46:58 PDT 2026
================
@@ -14040,90 +14059,79 @@ PPCTargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
BB->addSuccessor(readMBB);
BB->addSuccessor(sinkMBB);
- } else if (MI.getOpcode() == PPC::ATOMIC_LOAD_ADD_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_ADD_I16)
+ } else if (MI.getOpcode() == PPC::ATOMIC_LOAD_ADD_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, PPC::ADD4);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_ADD_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_ADD)
BB = EmitAtomicBinary(MI, BB, PPC::ADD4);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_ADD_I64)
BB = EmitAtomicBinary(MI, BB, PPC::ADD8);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_AND_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_AND_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_AND_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, PPC::AND);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_AND_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_AND)
BB = EmitAtomicBinary(MI, BB, PPC::AND);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_AND_I64)
BB = EmitAtomicBinary(MI, BB, PPC::AND8);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_OR_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_OR_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_OR_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, PPC::OR);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_OR_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_OR)
BB = EmitAtomicBinary(MI, BB, PPC::OR);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_OR_I64)
BB = EmitAtomicBinary(MI, BB, PPC::OR8);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_XOR_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_XOR_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_XOR_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, PPC::XOR);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_XOR_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_XOR)
BB = EmitAtomicBinary(MI, BB, PPC::XOR);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_XOR_I64)
BB = EmitAtomicBinary(MI, BB, PPC::XOR8);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_NAND_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_NAND_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_NAND_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, PPC::NAND);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_NAND_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_NAND)
BB = EmitAtomicBinary(MI, BB, PPC::NAND);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_NAND_I64)
BB = EmitAtomicBinary(MI, BB, PPC::NAND8);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_SUB_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_SUB_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_SUB_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, PPC::SUBF);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_SUB_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_SUB)
BB = EmitAtomicBinary(MI, BB, PPC::SUBF);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_SUB_I64)
BB = EmitAtomicBinary(MI, BB, PPC::SUBF8);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MIN_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_MIN_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MIN_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, 0, PPC::CMPW, PPC::PRED_LT);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MIN_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MIN)
BB = EmitAtomicBinary(MI, BB, 0, PPC::CMPW, PPC::PRED_LT);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MIN_I64)
BB = EmitAtomicBinary(MI, BB, 0, PPC::CMPD, PPC::PRED_LT);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MAX_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_MAX_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MAX_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, 0, PPC::CMPW, PPC::PRED_GT);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MAX_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MAX)
BB = EmitAtomicBinary(MI, BB, 0, PPC::CMPW, PPC::PRED_GT);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_MAX_I64)
BB = EmitAtomicBinary(MI, BB, 0, PPC::CMPD, PPC::PRED_GT);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, 0, PPC::CMPLW, PPC::PRED_LT);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN)
BB = EmitAtomicBinary(MI, BB, 0, PPC::CMPLW, PPC::PRED_LT);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMIN_I64)
BB = EmitAtomicBinary(MI, BB, 0, PPC::CMPLD, PPC::PRED_LT);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX_I8 ||
- MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, 0, PPC::CMPLW, PPC::PRED_GT);
- else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX)
BB = EmitAtomicBinary(MI, BB, 0, PPC::CMPLW, PPC::PRED_GT);
else if (MI.getOpcode() == PPC::ATOMIC_LOAD_UMAX_I64)
BB = EmitAtomicBinary(MI, BB, 0, PPC::CMPLD, PPC::PRED_GT);
- else if (MI.getOpcode() == PPC::ATOMIC_SWAP_I8 ||
- MI.getOpcode() == PPC::ATOMIC_SWAP_I16)
+ else if (MI.getOpcode() == PPC::ATOMIC_SWAP_NOWP)
BB = EmitPartwordAtomicBinary(MI, BB, 0);
- else if (MI.getOpcode() == PPC::ATOMIC_SWAP_I32)
+ else if (MI.getOpcode() == PPC::ATOMIC_SWAP)
BB = EmitAtomicBinary(MI, BB, 0);
else if (MI.getOpcode() == PPC::ATOMIC_SWAP_I64)
BB = EmitAtomicBinary(MI, BB, 0);
----------------
redstar wrote:
Good point, changed.
https://github.com/llvm/llvm-project/pull/194445
More information about the llvm-commits
mailing list