Lines Matching refs:Identity
78 Value *const Identity) const;
80 Value *const Identity) const;
81 Value *buildShiftRight(IRBuilder<> &B, Value *V, Value *const Identity) const;
85 Value *const Identity, Value *V, Instruction &I,
395 Value *const Identity) const { in buildReduction()
407 {Identity, V, B.getInt32(DPP::ROW_XMASK0 | 1 << Idx), in buildReduction()
447 Value *Identity) const { in buildScan()
459 {Identity, V, B.getInt32(DPP::ROW_SHR0 | 1 << Idx), in buildScan()
467 {Identity, V, B.getInt32(DPP::BCAST15), B.getInt32(0xa), in buildScan()
472 {Identity, V, B.getInt32(DPP::BCAST31), B.getInt32(0xc), in buildScan()
487 B.CreateCall(UpdateDPP, {Identity, B.CreateBitCast(PermX, AtomicTy), in buildScan()
499 UpdateDPP, {Identity, Lane31, B.getInt32(DPP::QUAD_PERM_ID), in buildScan()
512 Value *Identity) const { in buildShiftRight()
522 {Identity, V, B.getInt32(DPP::WAVE_SHR1), B.getInt32(0xf), in buildShiftRight()
534 {Identity, V, B.getInt32(DPP::ROW_SHR0 + 1), in buildShiftRight()
568 IRBuilder<> &B, AtomicRMWInst::BinOp Op, Value *const Identity, Value *V, in buildScanIteratively() argument
582 Accumulator->addIncoming(Identity, EntryBB); in buildScanIteratively()
754 Value *Identity = getIdentityValueForAtomicOp(Ty, ScanOp); in optimizeAtomic() local
770 Identity = B.CreateBitCast(Identity, IntNTy); in optimizeAtomic()
772 {V, Identity}); in optimizeAtomic()
775 Identity = B.CreateBitCast(Identity, Ty); in optimizeAtomic()
780 NewV = buildReduction(B, ScanOp, NewV, Identity); in optimizeAtomic()
782 NewV = buildScan(B, ScanOp, NewV, Identity); in optimizeAtomic()
784 ExclScan = buildShiftRight(B, NewV, Identity); in optimizeAtomic()
801 std::tie(ExclScan, NewV) = buildScanIteratively(B, ScanOp, Identity, V, I, in optimizeAtomic()
976 LaneOffset = B.CreateSelect(Cond, Identity, V); in optimizeAtomic()