Lines Matching full:loongarch
1 //=- LoongArchISelDAGToDAG.cpp - A dag to dag inst selector for LoongArch -===//
9 // This file defines an instruction selector for the LoongArch target.
22 #define DEBUG_TYPE "loongarch-isel"
23 #define PASS_NAME "LoongArch DAG->DAG Pattern Instruction Selection"
56 LoongArch::R0, GRLenVT);
61 SDValue SrcReg = CurDAG->getRegister(LoongArch::R0, GRLenVT);
65 if (Inst.Opc == LoongArch::LU12I_W)
66 Result = CurDAG->getMachineNode(LoongArch::LU12I_W, DL, GRLenVT, SDImm);
80 Subtarget->is64Bit() ? LoongArch::ADDI_D : LoongArch::ADDI_W;
114 Op = Is256Vec ? LoongArch::PseudoXVREPLI_B : LoongArch::PseudoVREPLI_B;
118 Op = Is256Vec ? LoongArch::PseudoXVREPLI_H : LoongArch::PseudoVREPLI_H;
122 Op = Is256Vec ? LoongArch::PseudoXVREPLI_W : LoongArch::PseudoVREPLI_W;
126 Op = Is256Vec ? LoongArch::PseudoXVREPLI_D : LoongArch::PseudoVREPLI_D;
219 Base = CurDAG->getRegister(LoongArch::R0, VT);
234 // Shift instructions on LoongArch only read the lower 5 or 6 bits of the
277 CurDAG->getCopyFromReg(CurDAG->getEntryNode(), DL, LoongArch::R0, VT);
278 unsigned NegOpc = VT == MVT::i64 ? LoongArch::SUB_D : LoongArch::SUB_W;
419 // This pass converts a legalized DAG into a LoongArch-specific DAG, ready