Lines Matching refs:BitSize
245 /// MOVZ or MOVN of width BitSize followed by up to 3 MOVK instructions.
246 static inline void expandMOVImmSimple(uint64_t Imm, unsigned BitSize,
264 if (BitSize == 32) {
291 unsigned Opc = (BitSize == 32 ? AArch64::MOVKWi : AArch64::MOVKXi);
305 void expandMOVImm(uint64_t Imm, unsigned BitSize,
313 for (unsigned Shift = 0; Shift < BitSize; Shift += 16) {
322 if ((BitSize / 16) - OneChunks <= 1 || (BitSize / 16) - ZeroChunks <= 1) {
323 expandMOVImmSimple(Imm, BitSize, OneChunks, ZeroChunks, Insn);
328 uint64_t UImm = Imm << (64 - BitSize) >> (64 - BitSize);
330 if (AArch64_AM::processLogicalImmediate(UImm, BitSize, Encoding)) {
331 unsigned Opc = (BitSize == 32 ? AArch64::ORRWri : AArch64::ORRXri);
340 if (OneChunks >= (BitSize / 16) - 2 || ZeroChunks >= (BitSize / 16) - 2) {
341 expandMOVImmSimple(Imm, BitSize, OneChunks, ZeroChunks, Insn);
345 assert(BitSize == 64 && "All 32-bit immediates can be expanded with a"
356 for (unsigned Shift = 0; Shift < BitSize; Shift += 16) {
362 if (AArch64_AM::processLogicalImmediate(ZeroChunk, BitSize, Encoding) ||
363 AArch64_AM::processLogicalImmediate(OneChunk, BitSize, Encoding) ||
364 AArch64_AM::processLogicalImmediate(ReplicateChunk, BitSize,
386 expandMOVImmSimple(Imm, BitSize, OneChunks, ZeroChunks, Insn);
393 if (BitSize == 64 && tryToreplicateChunks(UImm, Insn))
401 if (BitSize == 64 && trySequenceOfOnes(UImm, Insn))
406 expandMOVImmSimple(Imm, BitSize, OneChunks, ZeroChunks, Insn);