Home | History | Annotate | Download | only in X86

Lines Matching refs:AtomicRMWInst

59     bool shouldExpandAtomicRMW(AtomicRMWInst *AI);
61 bool expandAtomicRMW(AtomicRMWInst *AI);
79 if (isa<AtomicRMWInst>(&Inst) ||
89 if (AtomicRMWInst *AI = dyn_cast<AtomicRMWInst>(Inst))
120 bool X86AtomicExpandPass::shouldExpandAtomicRMW(AtomicRMWInst *AI) {
130 AtomicRMWInst::BinOp Op = AI->getOperation();
134 case AtomicRMWInst::Xchg:
135 case AtomicRMWInst::Add:
136 case AtomicRMWInst::Sub:
139 case AtomicRMWInst::Or:
140 case AtomicRMWInst::And:
141 case AtomicRMWInst::Xor:
145 case AtomicRMWInst::Nand:
146 case AtomicRMWInst::Max:
147 case AtomicRMWInst::Min:
148 case AtomicRMWInst::UMax:
149 case AtomicRMWInst::UMin:
164 if (AtomicRMWInst *AI = dyn_cast<AtomicRMWInst>(Inst))
173 static Value *performAtomicOp(AtomicRMWInst::BinOp Op, IRBuilder<> &Builder,
177 case AtomicRMWInst::Xchg:
179 case AtomicRMWInst::Add:
181 case AtomicRMWInst::Sub:
183 case AtomicRMWInst::And:
185 case AtomicRMWInst::Nand:
187 case AtomicRMWInst::Or:
189 case AtomicRMWInst::Xor:
191 case AtomicRMWInst::Max:
194 case AtomicRMWInst::Min:
197 case AtomicRMWInst::UMax:
200 case AtomicRMWInst::UMin:
209 bool X86AtomicExpandPass::expandAtomicRMW(AtomicRMWInst *AI) {
275 AtomicRMWInst *AI =
276 Builder.CreateAtomicRMW(AtomicRMWInst::Xchg, SI->getPointerOperand(),