Lines Matching full:uimm
87 static bool tryOrrMovk(uint64_t UImm, uint64_t OrrImm, MachineInstr &MI,
104 const unsigned Imm16 = getChunk(UImm, ChunkIdx);
138 static bool tryToreplicateChunks(uint64_t UImm, MachineInstr &MI,
147 ++Counts[getChunk(UImm, Idx)];
177 Imm16 = (UImm >> ShiftAmt) & 0xFFFF;
202 Imm16 = (UImm >> ShiftAmt) & 0xFFFF;
272 static bool trySequenceOfOnes(uint64_t UImm, MachineInstr &MI,
283 int64_t Chunk = getChunk(UImm, Idx);
310 uint64_t OrrImm = UImm;
317 const uint64_t Chunk = getChunk(UImm, Idx);
363 .addImm(getChunk(UImm, FirstMovkIdx))
379 .addImm(getChunk(UImm, SecondMovkIdx))
398 uint64_t UImm = Imm << (64 - BitSize) >> (64 - BitSize);
400 if (AArch64_AM::processLogicalImmediate(UImm, BitSize, Encoding)) {
450 if (getChunk(UImm, 0) == getChunk(UImm, 2)) {
453 uint64_t OrrImm = replicateChunk(UImm, 3, 1);
454 if (tryOrrMovk(UImm, OrrImm, MI, MBB, MBBI, TII, 1))
459 OrrImm = replicateChunk(UImm, 1, 3);
460 if (tryOrrMovk(UImm, OrrImm, MI, MBB, MBBI, TII, 3))
465 } else if (getChunk(UImm, 1) == getChunk(UImm, 3)) {
468 uint64_t OrrImm = replicateChunk(UImm, 2, 0);
469 if (tryOrrMovk(UImm, OrrImm, MI, MBB, MBBI, TII, 0))
474 OrrImm = replicateChunk(UImm, 0, 2);
475 if (tryOrrMovk(UImm, OrrImm, MI, MBB, MBBI, TII, 2))
483 if (BitSize == 64 && tryToreplicateChunks(UImm, MI, MBB, MBBI, TII))
491 if (BitSize == 64 && trySequenceOfOnes(UImm, MI, MBB, MBBI, TII))