Lines Matching defs:Known
81 KnownBits Known;
82 computeKnownBitsImpl(R, Known, DemandedElts, Depth);
84 return Known;
100 dumpResult(const MachineInstr &MI, const KnownBits &Known, unsigned Depth) {
102 << "] Computed for: " << MI << "[" << Depth << "] Known: 0x"
103 << toString(Known.Zero | Known.One, 16, false) << "\n"
104 << "[" << Depth << "] Zero: 0x" << toString(Known.Zero, 16, false)
106 << "[" << Depth << "] One: 0x" << toString(Known.One, 16, false)
112 KnownBits &Known,
116 computeKnownBitsImpl(Src1, Known, DemandedElts, Depth);
119 if (Known.isUnknown())
126 Known = Known.intersectWith(Known2);
143 void GISelKnownBits::computeKnownBitsImpl(Register R, KnownBits &Known,
154 Known = KnownBits();
172 Known = CacheEntry->second;
174 LLVM_DEBUG(dumpResult(MI, Known, Depth));
175 assert(Known.getBitWidth() == BitWidth && "Cache entry size doesn't match");
178 Known = KnownBits(BitWidth); // Don't know anything
198 TL.computeKnownBitsForTargetInstr(*this, R, Known, DemandedElts, MRI,
203 Known.Zero.setAllBits(); Known.One.setAllBits();
211 // Known bits are the values that are shared by every demanded element.
212 Known = Known.intersectWith(Known2);
215 if (Known.isUnknown())
223 Known.One = APInt::getAllOnes(BitWidth);
224 Known.Zero = APInt::getAllOnes(BitWidth);
257 Known = Known.intersectWith(Known2);
260 if (Known.isUnknown())
264 Known = KnownBits(BitWidth);
271 Known = KnownBits::makeConstant(MI.getOperand(1).getCImm()->getValue());
276 TL.computeKnownBitsForFrameIndex(FrameIdx, Known, MF);
280 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
284 Known = KnownBits::sub(Known, Known2);
288 computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
293 Known ^= Known2;
306 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
310 Known = KnownBits::add(Known, Known2);
315 computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
320 Known &= Known2;
325 computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
330 Known |= Known2;
334 computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
338 Known = KnownBits::mul(Known, Known2);
343 Known, DemandedElts, Depth + 1);
349 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
353 Known = KnownBits::smin(Known, KnownRHS);
359 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
363 Known = KnownBits::smax(Known, KnownRHS);
368 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known,
372 Known = KnownBits::umin(Known, KnownRHS);
377 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known,
381 Known = KnownBits::umax(Known, KnownRHS);
392 Known.Zero.setBitsFrom(1);
396 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
400 Known = Known.sext(BitWidth);
405 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
407 Known = Known.sextInReg(MI.getOperand(2).getImm());
411 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
413 Known = Known.anyext(BitWidth);
421 Known = KnownRange.anyext(Known.getBitWidth());
432 Known = Opcode == TargetOpcode::G_SEXTLOAD
433 ? KnownRange.sext(Known.getBitWidth())
434 : KnownRange.zext(Known.getBitWidth());
443 Known = KnownBits::ashr(LHSKnown, RHSKnown);
452 Known = KnownBits::lshr(LHSKnown, RHSKnown);
461 Known = KnownBits::shl(LHSKnown, RHSKnown);
486 Known = Known.zextOrTrunc(SrcBitWidth);
487 computeKnownBitsImpl(SrcReg, Known, DemandedElts, Depth + 1);
488 Known = Known.zextOrTrunc(BitWidth);
490 Known.Zero.setBitsFrom(SrcBitWidth);
499 Known.Zero.setLowBits(LogOfAlign);
500 Known.One.clearLowBits(LogOfAlign);
511 Known.insertBits(SrcOpKnown, I * OpSize);
540 Known = std::move(SrcOpKnown);
542 Known = SrcOpKnown.extractBits(BitWidth, BitWidth * DstIdx);
547 computeKnownBitsImpl(SrcReg, Known, DemandedElts, Depth + 1);
548 Known = Known.byteSwap();
553 computeKnownBitsImpl(SrcReg, Known, DemandedElts, Depth + 1);
554 Known = Known.reverseBits();
564 Known.Zero.setBitsFrom(LowBits);
565 // TODO: we could bound Known.One using the lower bound on the number of
577 Known = extractBits(BitWidth, SrcOpKnown, OffsetKnown, WidthKnown);
588 Known = extractBits(BitWidth, SrcOpKnown, OffsetKnown, WidthKnown);
593 Known = KnownBits::ashr(KnownBits::shl(Known, ShiftKnown), ShiftKnown);
612 Known.Zero.setBitsFrom(1);
624 Known.Zero.setBitsFrom(LowBits);
629 LLVM_DEBUG(dumpResult(MI, Known, Depth));
632 ComputeKnownBitsCache[R] = Known;
848 KnownBits Known = getKnownBits(R, DemandedElts, Depth);
850 if (Known.isNonNegative()) { // sign bit is 0
851 Mask = Known.Zero;
852 } else if (Known.isNegative()) { // sign bit is 1;
853 Mask = Known.One;