Lines Matching refs:AtomicRMWInst
24 bool isIdempotentRMW(AtomicRMWInst& RMWI) { in isIdempotentRMW()
27 case AtomicRMWInst::FAdd: // -0.0 in isIdempotentRMW()
29 case AtomicRMWInst::FSub: // +0.0 in isIdempotentRMW()
40 case AtomicRMWInst::Add: in isIdempotentRMW()
41 case AtomicRMWInst::Sub: in isIdempotentRMW()
42 case AtomicRMWInst::Or: in isIdempotentRMW()
43 case AtomicRMWInst::Xor: in isIdempotentRMW()
45 case AtomicRMWInst::And: in isIdempotentRMW()
47 case AtomicRMWInst::Min: in isIdempotentRMW()
49 case AtomicRMWInst::Max: in isIdempotentRMW()
51 case AtomicRMWInst::UMin: in isIdempotentRMW()
53 case AtomicRMWInst::UMax: in isIdempotentRMW()
62 bool isSaturating(AtomicRMWInst& RMWI) { in isSaturating()
65 case AtomicRMWInst::FMax: in isSaturating()
68 case AtomicRMWInst::FMin: in isSaturating()
71 case AtomicRMWInst::FAdd: in isSaturating()
72 case AtomicRMWInst::FSub: in isSaturating()
85 case AtomicRMWInst::Xchg: in isSaturating()
87 case AtomicRMWInst::Or: in isSaturating()
89 case AtomicRMWInst::And: in isSaturating()
91 case AtomicRMWInst::Min: in isSaturating()
93 case AtomicRMWInst::Max: in isSaturating()
95 case AtomicRMWInst::UMin: in isSaturating()
97 case AtomicRMWInst::UMax: in isSaturating()
103 Instruction *InstCombinerImpl::visitAtomicRMWInst(AtomicRMWInst &RMWI) { in visitAtomicRMWInst()
114 RMWI.getOperation() != AtomicRMWInst::Xchg) { in visitAtomicRMWInst()
115 RMWI.setOperation(AtomicRMWInst::Xchg); in visitAtomicRMWInst()
131 RMWI.getOperation() != AtomicRMWInst::Or) { in visitAtomicRMWInst()
132 RMWI.setOperation(AtomicRMWInst::Or); in visitAtomicRMWInst()
135 RMWI.getOperation() != AtomicRMWInst::FAdd) { in visitAtomicRMWInst()
136 RMWI.setOperation(AtomicRMWInst::FAdd); in visitAtomicRMWInst()