Lines Matching defs:BitPart
3726 struct BitPart {
3727 BitPart(Value *P, unsigned BW) : Provider(P) {
3754 /// BitPart is returned with Provider set to %X and Provenance[24-31] set to
3761 /// To avoid revisiting values, the BitPart results are memoized into the
3770 static const std::optional<BitPart> &
3772 std::map<Value *, std::optional<BitPart>> &BPS, int Depth,
3809 Result = BitPart(A->Provider, BitWidth);
3811 if (A->Provenance[BitIdx] != BitPart::Unset &&
3812 B->Provenance[BitIdx] != BitPart::Unset &&
3816 if (A->Provenance[BitIdx] == BitPart::Unset)
3847 P.insert(P.begin(), BitShift.getZExtValue(), BitPart::Unset);
3850 P.insert(P.end(), BitShift.getZExtValue(), BitPart::Unset);
3876 Result->Provenance[BitIdx] = BitPart::Unset;
3887 Result = BitPart(Res->Provider, BitWidth);
3892 Result->Provenance[BitIdx] = BitPart::Unset;
3903 Result = BitPart(Res->Provider, BitWidth);
3917 Result = BitPart(Res->Provider, BitWidth);
3931 Result = BitPart(Res->Provider, BitWidth);
3968 Result = BitPart(LHS->Provider, BitWidth);
3985 Result = BitPart(V, BitWidth);
4023 std::map<Value *, std::optional<BitPart>> BPS;
4030 [](int8_t I) { return I == BitPart::Unset || 0 <= I; }) &&
4035 if (BitProvenance.back() == BitPart::Unset) {
4036 while (!BitProvenance.empty() && BitProvenance.back() == BitPart::Unset)
4057 if (BitProvenance[BitIdx] == BitPart::Unset) {