Lines Matching defs:Identity
79 Value *const Identity) const;
81 Value *const Identity) const;
82 Value *buildShiftRight(IRBuilder<> &B, Value *V, Value *const Identity) const;
86 Value *const Identity, Value *V, Instruction &I,
399 Value *const Identity) const {
408 {Identity, V, B.getInt32(DPP::ROW_XMASK0 | 1 << Idx),
443 Value *Identity) const {
453 {Identity, V, B.getInt32(DPP::ROW_SHR0 | 1 << Idx),
461 {Identity, V, B.getInt32(DPP::BCAST15), B.getInt32(0xa),
466 {Identity, V, B.getInt32(DPP::BCAST31), B.getInt32(0xc),
481 UpdateDPP, {Identity, PermX, B.getInt32(DPP::QUAD_PERM_ID),
491 UpdateDPP, {Identity, Lane31, B.getInt32(DPP::QUAD_PERM_ID),
503 Value *Identity) const {
511 {Identity, V, B.getInt32(DPP::WAVE_SHR1), B.getInt32(0xf),
523 {Identity, V, B.getInt32(DPP::ROW_SHR0 + 1),
552 IRBuilder<> &B, AtomicRMWInst::BinOp Op, Value *const Identity, Value *V,
566 Accumulator->addIncoming(Identity, EntryBB);
733 Value *Identity = getIdentityValueForAtomicOp(Ty, ScanOp);
749 B.CreateIntrinsic(Intrinsic::amdgcn_set_inactive, Ty, {V, Identity});
754 NewV = buildReduction(B, ScanOp, NewV, Identity);
756 NewV = buildScan(B, ScanOp, NewV, Identity);
758 ExclScan = buildShiftRight(B, NewV, Identity);
772 std::tie(ExclScan, NewV) = buildScanIteratively(B, ScanOp, Identity, V, I,
936 LaneOffset = B.CreateSelect(Cond, Identity, V);