Lines Matching refs:AtomicRMWInst

35   AtomicRMWInst::BinOp Op;
50 Value *buildScan(IRBuilder<> &B, AtomicRMWInst::BinOp Op, Value *V,
53 void optimizeAtomic(Instruction &I, AtomicRMWInst::BinOp Op, unsigned ValIdx,
69 void visitAtomicRMWInst(AtomicRMWInst &I);
107 void AMDGPUAtomicOptimizer::visitAtomicRMWInst(AtomicRMWInst &I) { in visitAtomicRMWInst()
117 AtomicRMWInst::BinOp Op = I.getOperation(); in visitAtomicRMWInst()
122 case AtomicRMWInst::Add: in visitAtomicRMWInst()
123 case AtomicRMWInst::Sub: in visitAtomicRMWInst()
124 case AtomicRMWInst::And: in visitAtomicRMWInst()
125 case AtomicRMWInst::Or: in visitAtomicRMWInst()
126 case AtomicRMWInst::Xor: in visitAtomicRMWInst()
127 case AtomicRMWInst::Max: in visitAtomicRMWInst()
128 case AtomicRMWInst::Min: in visitAtomicRMWInst()
129 case AtomicRMWInst::UMax: in visitAtomicRMWInst()
130 case AtomicRMWInst::UMin: in visitAtomicRMWInst()
163 AtomicRMWInst::BinOp Op; in visitIntrinsicInst()
171 Op = AtomicRMWInst::Add; in visitIntrinsicInst()
176 Op = AtomicRMWInst::Sub; in visitIntrinsicInst()
181 Op = AtomicRMWInst::And; in visitIntrinsicInst()
186 Op = AtomicRMWInst::Or; in visitIntrinsicInst()
191 Op = AtomicRMWInst::Xor; in visitIntrinsicInst()
196 Op = AtomicRMWInst::Min; in visitIntrinsicInst()
201 Op = AtomicRMWInst::UMin; in visitIntrinsicInst()
206 Op = AtomicRMWInst::Max; in visitIntrinsicInst()
211 Op = AtomicRMWInst::UMax; in visitIntrinsicInst()
246 static Value *buildNonAtomicBinOp(IRBuilder<> &B, AtomicRMWInst::BinOp Op, in buildNonAtomicBinOp()
253 case AtomicRMWInst::Add: in buildNonAtomicBinOp()
255 case AtomicRMWInst::Sub: in buildNonAtomicBinOp()
257 case AtomicRMWInst::And: in buildNonAtomicBinOp()
259 case AtomicRMWInst::Or: in buildNonAtomicBinOp()
261 case AtomicRMWInst::Xor: in buildNonAtomicBinOp()
264 case AtomicRMWInst::Max: in buildNonAtomicBinOp()
267 case AtomicRMWInst::Min: in buildNonAtomicBinOp()
270 case AtomicRMWInst::UMax: in buildNonAtomicBinOp()
273 case AtomicRMWInst::UMin: in buildNonAtomicBinOp()
283 Value *AMDGPUAtomicOptimizer::buildScan(IRBuilder<> &B, AtomicRMWInst::BinOp Op, in buildScan()
386 static APInt getIdentityValueForAtomicOp(AtomicRMWInst::BinOp Op, in getIdentityValueForAtomicOp()
391 case AtomicRMWInst::Add: in getIdentityValueForAtomicOp()
392 case AtomicRMWInst::Sub: in getIdentityValueForAtomicOp()
393 case AtomicRMWInst::Or: in getIdentityValueForAtomicOp()
394 case AtomicRMWInst::Xor: in getIdentityValueForAtomicOp()
395 case AtomicRMWInst::UMax: in getIdentityValueForAtomicOp()
397 case AtomicRMWInst::And: in getIdentityValueForAtomicOp()
398 case AtomicRMWInst::UMin: in getIdentityValueForAtomicOp()
400 case AtomicRMWInst::Max: in getIdentityValueForAtomicOp()
402 case AtomicRMWInst::Min: in getIdentityValueForAtomicOp()
413 AtomicRMWInst::BinOp Op, in optimizeAtomic()
489 const AtomicRMWInst::BinOp ScanOp = in optimizeAtomic()
490 Op == AtomicRMWInst::Sub ? AtomicRMWInst::Add : Op; in optimizeAtomic()
525 case AtomicRMWInst::Add: in optimizeAtomic()
526 case AtomicRMWInst::Sub: { in optimizeAtomic()
535 case AtomicRMWInst::And: in optimizeAtomic()
536 case AtomicRMWInst::Or: in optimizeAtomic()
537 case AtomicRMWInst::Max: in optimizeAtomic()
538 case AtomicRMWInst::Min: in optimizeAtomic()
539 case AtomicRMWInst::UMax: in optimizeAtomic()
540 case AtomicRMWInst::UMin: in optimizeAtomic()
546 case AtomicRMWInst::Xor: in optimizeAtomic()
628 case AtomicRMWInst::Add: in optimizeAtomic()
629 case AtomicRMWInst::Sub: in optimizeAtomic()
632 case AtomicRMWInst::And: in optimizeAtomic()
633 case AtomicRMWInst::Or: in optimizeAtomic()
634 case AtomicRMWInst::Max: in optimizeAtomic()
635 case AtomicRMWInst::Min: in optimizeAtomic()
636 case AtomicRMWInst::UMax: in optimizeAtomic()
637 case AtomicRMWInst::UMin: in optimizeAtomic()
640 case AtomicRMWInst::Xor: in optimizeAtomic()