Lines Matching defs:UsefulBits
2798 static void getUsefulBits(SDValue Op, APInt &UsefulBits, unsigned Depth = 0);
2800 static void getUsefulBitsFromAndWithImmediate(SDValue Op, APInt &UsefulBits,
2804 Imm = AArch64_AM::decodeLogicalImmediate(Imm, UsefulBits.getBitWidth());
2805 UsefulBits &= APInt(UsefulBits.getBitWidth(), Imm);
2806 getUsefulBits(Op, UsefulBits, Depth + 1);
2809 static void getUsefulBitsFromBitfieldMoveOpd(SDValue Op, APInt &UsefulBits,
2813 APInt OpUsefulBits(UsefulBits);
2833 UsefulBits &= OpUsefulBits;
2836 static void getUsefulBitsFromUBFM(SDValue Op, APInt &UsefulBits,
2843 getUsefulBitsFromBitfieldMoveOpd(Op, UsefulBits, Imm, MSB, Depth);
2846 static void getUsefulBitsFromOrWithShiftedReg(SDValue Op, APInt &UsefulBits,
2850 APInt Mask(UsefulBits);
2871 UsefulBits &= Mask;
2874 static void getUsefulBitsFromBFM(SDValue Op, SDValue Orig, APInt &UsefulBits,
2881 APInt OpUsefulBits(UsefulBits);
2884 APInt ResultUsefulBits(UsefulBits.getBitWidth(), 0);
2886 APInt Mask(UsefulBits.getBitWidth(), 0);
2910 uint64_t LSB = UsefulBits.getBitWidth() - Imm;
2926 UsefulBits &= Mask;
2929 static void getUsefulBitsForUse(SDNode *UserNode, APInt &UsefulBits,
2945 return getUsefulBitsFromAndWithImmediate(SDValue(UserNode, 0), UsefulBits,
2949 return getUsefulBitsFromUBFM(SDValue(UserNode, 0), UsefulBits, Depth);
2954 getUsefulBitsFromOrWithShiftedReg(SDValue(UserNode, 0), UsefulBits,
2959 return getUsefulBitsFromBFM(SDValue(UserNode, 0), Orig, UsefulBits, Depth);
2965 UsefulBits &= APInt(UsefulBits.getBitWidth(), 0xff);
2972 UsefulBits &= APInt(UsefulBits.getBitWidth(), 0xffff);
2977 static void getUsefulBits(SDValue Op, APInt &UsefulBits, unsigned Depth) {
2980 // Initialize UsefulBits
2984 UsefulBits = APInt(Bitwidth, 0);
2985 UsefulBits.flipAllBits();
2987 APInt UsersUsefulBits(UsefulBits.getBitWidth(), 0);
2991 APInt UsefulBitsForUse = APInt(UsefulBits);
2995 // UsefulBits contains the produced bits that are meaningful for the
2998 UsefulBits &= UsersUsefulBits;
3504 static bool tryBitfieldInsertOpFromOr(SDNode *N, const APInt &UsefulBits,
3517 unsigned NumberOfIgnoredLowBits = UsefulBits.countr_zero();
3518 unsigned NumberOfIgnoredHighBits = UsefulBits.countl_zero();