Lines Matching defs:Known

82   KnownBits Known;
83 computeKnownBitsImpl(R, Known, DemandedElts, Depth);
85 return Known;
101 dumpResult(const MachineInstr &MI, const KnownBits &Known, unsigned Depth) {
103 << "] Computed for: " << MI << "[" << Depth << "] Known: 0x"
104 << toString(Known.Zero | Known.One, 16, false) << "\n"
105 << "[" << Depth << "] Zero: 0x" << toString(Known.Zero, 16, false)
107 << "[" << Depth << "] One: 0x" << toString(Known.One, 16, false)
113 KnownBits &Known,
117 computeKnownBitsImpl(Src1, Known, DemandedElts, Depth);
120 if (Known.isUnknown())
127 Known = Known.intersectWith(Known2);
144 void GISelKnownBits::computeKnownBitsImpl(Register R, KnownBits &Known,
156 Known = KnownBits();
163 Known = CacheEntry->second;
165 LLVM_DEBUG(dumpResult(MI, Known, Depth));
166 assert(Known.getBitWidth() == BitWidth && "Cache entry size doesn't match");
169 Known = KnownBits(BitWidth); // Don't know anything
189 TL.computeKnownBitsForTargetInstr(*this, R, Known, DemandedElts, MRI,
194 Known.Zero.setAllBits(); Known.One.setAllBits();
202 // Known bits are the values that are shared by every demanded element.
203 Known = Known.intersectWith(Known2);
206 if (Known.isUnknown())
214 Known.One = APInt::getAllOnes(BitWidth);
215 Known.Zero = APInt::getAllOnes(BitWidth);
247 Known = Known.intersectWith(Known2);
250 if (Known.isUnknown())
254 Known = KnownBits(BitWidth);
261 Known = KnownBits::makeConstant(MI.getOperand(1).getCImm()->getValue());
266 TL.computeKnownBitsForFrameIndex(FrameIdx, Known, MF);
270 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
274 Known = KnownBits::computeForAddSub(/*Add=*/false, /*NSW=*/false,
275 /* NUW=*/false, Known, Known2);
279 computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
284 Known ^= Known2;
297 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
301 Known = KnownBits::computeForAddSub(/*Add=*/true, /*NSW=*/false,
302 /* NUW=*/false, Known, Known2);
307 computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
312 Known &= Known2;
317 computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
322 Known |= Known2;
326 computeKnownBitsImpl(MI.getOperand(2).getReg(), Known, DemandedElts,
330 Known = KnownBits::mul(Known, Known2);
335 Known, DemandedElts, Depth + 1);
341 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
345 Known = KnownBits::smin(Known, KnownRHS);
351 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
355 Known = KnownBits::smax(Known, KnownRHS);
360 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known,
364 Known = KnownBits::umin(Known, KnownRHS);
369 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known,
373 Known = KnownBits::umax(Known, KnownRHS);
384 Known.Zero.setBitsFrom(1);
388 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
392 Known = Known.sext(BitWidth);
397 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
399 Known = Known.sextInReg(MI.getOperand(2).getImm());
403 computeKnownBitsImpl(MI.getOperand(1).getReg(), Known, DemandedElts,
405 Known = Known.anyext(BitWidth);
413 Known = KnownRange.anyext(Known.getBitWidth());
424 Known = Opcode == TargetOpcode::G_SEXTLOAD
425 ? KnownRange.sext(Known.getBitWidth())
426 : KnownRange.zext(Known.getBitWidth());
435 Known = KnownBits::ashr(LHSKnown, RHSKnown);
444 Known = KnownBits::lshr(LHSKnown, RHSKnown);
453 Known = KnownBits::shl(LHSKnown, RHSKnown);
478 Known = Known.zextOrTrunc(SrcBitWidth);
479 computeKnownBitsImpl(SrcReg, Known, DemandedElts, Depth + 1);
480 Known = Known.zextOrTrunc(BitWidth);
482 Known.Zero.setBitsFrom(SrcBitWidth);
491 Known.Zero.setLowBits(LogOfAlign);
492 Known.One.clearLowBits(LogOfAlign);
503 Known.insertBits(SrcOpKnown, I * OpSize);
524 Known = SrcOpKnown.extractBits(BitWidth, BitWidth * DstIdx);
529 computeKnownBitsImpl(SrcReg, Known, DemandedElts, Depth + 1);
530 Known = Known.byteSwap();
535 computeKnownBitsImpl(SrcReg, Known, DemandedElts, Depth + 1);
536 Known = Known.reverseBits();
546 Known.Zero.setBitsFrom(LowBits);
547 // TODO: we could bound Known.One using the lower bound on the number of
559 Known = extractBits(BitWidth, SrcOpKnown, OffsetKnown, WidthKnown);
570 Known = extractBits(BitWidth, SrcOpKnown, OffsetKnown, WidthKnown);
576 Known = KnownBits::ashr(KnownBits::shl(Known, ShiftKnown), ShiftKnown);
595 Known.Zero.setBitsFrom(1);
607 Known.Zero.setBitsFrom(LowBits);
612 LLVM_DEBUG(dumpResult(MI, Known, Depth));
615 ComputeKnownBitsCache[R] = Known;
823 KnownBits Known = getKnownBits(R, DemandedElts, Depth);
825 if (Known.isNonNegative()) { // sign bit is 0
826 Mask = Known.Zero;
827 } else if (Known.isNegative()) { // sign bit is 1;
828 Mask = Known.One;