Lines Matching refs:Imm

98   inline unsigned getSORegOpc(ShiftOpc ShOp, unsigned Imm) {  in getSORegOpc()  argument
99 return ShOp | (Imm << 3); in getSORegOpc()
106 inline unsigned getSOImmValImm(unsigned Imm) { return Imm & 0xFF; } in getSOImmValImm() argument
109 inline unsigned getSOImmValRot(unsigned Imm) { return (Imm >> 8) * 2; } in getSOImmValRot() argument
115 inline unsigned getSOImmValRotate(unsigned Imm) { in getSOImmValRotate() argument
118 if ((Imm & ~255U) == 0) return 0; in getSOImmValRotate()
121 unsigned TZ = llvm::countr_zero(Imm); in getSOImmValRotate()
128 if ((llvm::rotr<uint32_t>(Imm, RotAmt) & ~255U) == 0) in getSOImmValRotate()
133 if (Imm & 63U) { in getSOImmValRotate()
134 unsigned TZ2 = llvm::countr_zero(Imm & ~63U); in getSOImmValRotate()
136 if ((llvm::rotr<uint32_t>(Imm, RotAmt2) & ~255U) == 0) in getSOImmValRotate()
210 inline unsigned getThumbImmValShift(unsigned Imm) { in getThumbImmValShift() argument
213 if ((Imm & ~255U) == 0) return 0; in getThumbImmValShift()
216 return llvm::countr_zero(Imm); in getThumbImmValShift()
229 inline unsigned getThumbImm16ValShift(unsigned Imm) { in getThumbImm16ValShift() argument
232 if ((Imm & ~65535U) == 0) return 0; in getThumbImm16ValShift()
235 return llvm::countr_zero(Imm); in getThumbImm16ValShift()
263 unsigned u, Vs, Imm; in getT2SOImmValSplatVal() local
271 Imm = Vs & 0xff; in getT2SOImmValSplatVal()
273 u = Imm | (Imm << 16); in getT2SOImmValSplatVal()
277 return (((Vs == V) ? 1 : 2) << 8) | Imm; in getT2SOImmValSplatVal()
281 return (3 << 8) | Imm; in getT2SOImmValSplatVal()
328 inline bool isT2SOImmTwoPartVal(unsigned Imm) { in isT2SOImmTwoPartVal() argument
329 unsigned V = Imm; in isT2SOImmTwoPartVal()
343 V = Imm; in isT2SOImmTwoPartVal()
355 inline unsigned getT2SOImmTwoPartFirst(unsigned Imm) { in getT2SOImmTwoPartFirst() argument
356 assert (isT2SOImmTwoPartVal(Imm) && in getT2SOImmTwoPartFirst()
359 unsigned V = llvm::rotr<uint32_t>(~255, getT2SOImmValRotate(Imm)) & Imm; in getT2SOImmTwoPartFirst()
364 if (getT2SOImmValSplatVal(Imm & 0xff00ff00U) != -1) in getT2SOImmTwoPartFirst()
365 return Imm & 0xff00ff00U; in getT2SOImmTwoPartFirst()
368 assert (getT2SOImmValSplatVal(Imm & 0x00ff00ffU) != -1); in getT2SOImmTwoPartFirst()
369 return Imm & 0x00ff00ffU; in getT2SOImmTwoPartFirst()
372 inline unsigned getT2SOImmTwoPartSecond(unsigned Imm) { in getT2SOImmTwoPartSecond() argument
374 Imm ^= getT2SOImmTwoPartFirst(Imm); in getT2SOImmTwoPartSecond()
376 assert (getT2SOImmVal(Imm) != -1 && in getT2SOImmTwoPartSecond()
378 return Imm; in getT2SOImmTwoPartSecond()
631 inline float getFPImmFloat(unsigned Imm) { in getFPImmFloat() argument
634 uint8_t Sign = (Imm >> 7) & 0x1; in getFPImmFloat()
635 uint8_t Exp = (Imm >> 4) & 0x7; in getFPImmFloat()
636 uint8_t Mantissa = Imm & 0xf; in getFPImmFloat()
654 inline int getFP16Imm(const APInt &Imm) { in getFP16Imm() argument
655 uint32_t Sign = Imm.lshr(15).getZExtValue() & 1; in getFP16Imm()
656 int32_t Exp = (Imm.lshr(10).getSExtValue() & 0x1f) - 15; // -14 to 15 in getFP16Imm()
657 int64_t Mantissa = Imm.getZExtValue() & 0x3ff; // 10 bits in getFP16Imm()
679 inline int getFP32FP16Imm(const APInt &Imm) { in getFP32FP16Imm() argument
680 if (Imm.getActiveBits() > 16) in getFP32FP16Imm()
682 return ARM_AM::getFP16Imm(Imm.trunc(16)); in getFP32FP16Imm()
692 inline int getFP32Imm(const APInt &Imm) { in getFP32Imm() argument
693 uint32_t Sign = Imm.lshr(31).getZExtValue() & 1; in getFP32Imm()
694 int32_t Exp = (Imm.lshr(23).getSExtValue() & 0xff) - 127; // -126 to 127 in getFP32Imm()
695 int64_t Mantissa = Imm.getZExtValue() & 0x7fffff; // 23 bits in getFP32Imm()
720 inline int getFP64Imm(const APInt &Imm) { in getFP64Imm() argument
721 uint64_t Sign = Imm.lshr(63).getZExtValue() & 1; in getFP64Imm()
722 int64_t Exp = (Imm.lshr(52).getSExtValue() & 0x7ff) - 1023; // -1022 to 1023 in getFP64Imm()
723 uint64_t Mantissa = Imm.getZExtValue() & 0xfffffffffffffULL; in getFP64Imm()