Lines Matching full:uimm
99 static bool tryOrrMovk(uint64_t UImm, uint64_t OrrImm, MachineInstr &MI,
116 const unsigned Imm16 = getChunk(UImm, ChunkIdx);
150 static bool tryToreplicateChunks(uint64_t UImm, MachineInstr &MI,
159 ++Counts[getChunk(UImm, Idx)];
189 Imm16 = (UImm >> ShiftAmt) & 0xFFFF;
214 Imm16 = (UImm >> ShiftAmt) & 0xFFFF;
284 static bool trySequenceOfOnes(uint64_t UImm, MachineInstr &MI,
295 int64_t Chunk = getChunk(UImm, Idx);
322 uint64_t OrrImm = UImm;
329 const uint64_t Chunk = getChunk(UImm, Idx);
375 .addImm(getChunk(UImm, FirstMovkIdx))
391 .addImm(getChunk(UImm, SecondMovkIdx))
410 uint64_t UImm = Imm << (64 - BitSize) >> (64 - BitSize);
412 if (AArch64_AM::processLogicalImmediate(UImm, BitSize, Encoding)) {
462 if (getChunk(UImm, 0) == getChunk(UImm, 2)) {
465 uint64_t OrrImm = replicateChunk(UImm, 3, 1);
466 if (tryOrrMovk(UImm, OrrImm, MI, MBB, MBBI, TII, 1))
471 OrrImm = replicateChunk(UImm, 1, 3);
472 if (tryOrrMovk(UImm, OrrImm, MI, MBB, MBBI, TII, 3))
477 } else if (getChunk(UImm, 1) == getChunk(UImm, 3)) {
480 uint64_t OrrImm = replicateChunk(UImm, 2, 0);
481 if (tryOrrMovk(UImm, OrrImm, MI, MBB, MBBI, TII, 0))
486 OrrImm = replicateChunk(UImm, 0, 2);
487 if (tryOrrMovk(UImm, OrrImm, MI, MBB, MBBI, TII, 2))
495 if (BitSize == 64 && tryToreplicateChunks(UImm, MI, MBB, MBBI, TII))
503 if (BitSize == 64 && trySequenceOfOnes(UImm, MI, MBB, MBBI, TII))