|
15 | 15 | #include "LoongArch.h" |
16 | 16 | #include "LoongArchMachineFunctionInfo.h" |
17 | 17 | #include "LoongArchRegisterInfo.h" |
| 18 | +#include "LoongArchSelectionDAGInfo.h" |
18 | 19 | #include "LoongArchSubtarget.h" |
19 | 20 | #include "MCTargetDesc/LoongArchBaseInfo.h" |
20 | 21 | #include "MCTargetDesc/LoongArchMCTargetDesc.h" |
@@ -1712,7 +1713,7 @@ lowerVECTOR_SHUFFLE_VSHUF4I(const SDLoc &DL, ArrayRef<int> Mask, MVT VT, |
1712 | 1713 |
|
1713 | 1714 | // Return vshuf4i.d |
1714 | 1715 | if (VT == MVT::v2f64 || VT == MVT::v2i64) |
1715 | | - return DAG.getNode(LoongArchISD::VSHUF4I, DL, VT, V1, V2, |
| 1716 | + return DAG.getNode(LoongArchISD::VSHUF4I_D, DL, VT, V1, V2, |
1716 | 1717 | DAG.getConstant(Imm, DL, GRLenVT)); |
1717 | 1718 |
|
1718 | 1719 | return DAG.getNode(LoongArchISD::VSHUF4I, DL, VT, V1, |
@@ -4459,7 +4460,7 @@ SDValue LoongArchTargetLowering::lowerShiftRightParts(SDValue Op, |
4459 | 4460 |
|
4460 | 4461 | // Returns the opcode of the target-specific SDNode that implements the 32-bit |
4461 | 4462 | // form of the given Opcode. |
4462 | | -static LoongArchISD::NodeType getLoongArchWOpcode(unsigned Opcode) { |
| 4463 | +static unsigned getLoongArchWOpcode(unsigned Opcode) { |
4463 | 4464 | switch (Opcode) { |
4464 | 4465 | default: |
4465 | 4466 | llvm_unreachable("Unexpected opcode"); |
@@ -4495,7 +4496,7 @@ static LoongArchISD::NodeType getLoongArchWOpcode(unsigned Opcode) { |
4495 | 4496 | static SDValue customLegalizeToWOp(SDNode *N, SelectionDAG &DAG, int NumOp, |
4496 | 4497 | unsigned ExtOpc = ISD::ANY_EXTEND) { |
4497 | 4498 | SDLoc DL(N); |
4498 | | - LoongArchISD::NodeType WOpcode = getLoongArchWOpcode(N->getOpcode()); |
| 4499 | + unsigned WOpcode = getLoongArchWOpcode(N->getOpcode()); |
4499 | 4500 | SDValue NewOp0, NewRes; |
4500 | 4501 |
|
4501 | 4502 | switch (NumOp) { |
@@ -7483,123 +7484,6 @@ bool LoongArchTargetLowering::allowsMisalignedMemoryAccesses( |
7483 | 7484 | return true; |
7484 | 7485 | } |
7485 | 7486 |
|
7486 | | -const char *LoongArchTargetLowering::getTargetNodeName(unsigned Opcode) const { |
7487 | | - switch ((LoongArchISD::NodeType)Opcode) { |
7488 | | - case LoongArchISD::FIRST_NUMBER: |
7489 | | - break; |
7490 | | - |
7491 | | -#define NODE_NAME_CASE(node) \ |
7492 | | - case LoongArchISD::node: \ |
7493 | | - return "LoongArchISD::" #node; |
7494 | | - |
7495 | | - // TODO: Add more target-dependent nodes later. |
7496 | | - NODE_NAME_CASE(CALL) |
7497 | | - NODE_NAME_CASE(CALL_MEDIUM) |
7498 | | - NODE_NAME_CASE(CALL_LARGE) |
7499 | | - NODE_NAME_CASE(RET) |
7500 | | - NODE_NAME_CASE(TAIL) |
7501 | | - NODE_NAME_CASE(TAIL_MEDIUM) |
7502 | | - NODE_NAME_CASE(TAIL_LARGE) |
7503 | | - NODE_NAME_CASE(SELECT_CC) |
7504 | | - NODE_NAME_CASE(BR_CC) |
7505 | | - NODE_NAME_CASE(BRCOND) |
7506 | | - NODE_NAME_CASE(SLL_W) |
7507 | | - NODE_NAME_CASE(SRA_W) |
7508 | | - NODE_NAME_CASE(SRL_W) |
7509 | | - NODE_NAME_CASE(BSTRINS) |
7510 | | - NODE_NAME_CASE(BSTRPICK) |
7511 | | - NODE_NAME_CASE(MOVGR2FR_W) |
7512 | | - NODE_NAME_CASE(MOVGR2FR_W_LA64) |
7513 | | - NODE_NAME_CASE(MOVGR2FR_D) |
7514 | | - NODE_NAME_CASE(MOVGR2FR_D_LO_HI) |
7515 | | - NODE_NAME_CASE(MOVFR2GR_S_LA64) |
7516 | | - NODE_NAME_CASE(FTINT) |
7517 | | - NODE_NAME_CASE(BUILD_PAIR_F64) |
7518 | | - NODE_NAME_CASE(SPLIT_PAIR_F64) |
7519 | | - NODE_NAME_CASE(REVB_2H) |
7520 | | - NODE_NAME_CASE(REVB_2W) |
7521 | | - NODE_NAME_CASE(BITREV_4B) |
7522 | | - NODE_NAME_CASE(BITREV_8B) |
7523 | | - NODE_NAME_CASE(BITREV_W) |
7524 | | - NODE_NAME_CASE(ROTR_W) |
7525 | | - NODE_NAME_CASE(ROTL_W) |
7526 | | - NODE_NAME_CASE(DIV_W) |
7527 | | - NODE_NAME_CASE(DIV_WU) |
7528 | | - NODE_NAME_CASE(MOD_W) |
7529 | | - NODE_NAME_CASE(MOD_WU) |
7530 | | - NODE_NAME_CASE(CLZ_W) |
7531 | | - NODE_NAME_CASE(CTZ_W) |
7532 | | - NODE_NAME_CASE(DBAR) |
7533 | | - NODE_NAME_CASE(IBAR) |
7534 | | - NODE_NAME_CASE(BREAK) |
7535 | | - NODE_NAME_CASE(SYSCALL) |
7536 | | - NODE_NAME_CASE(CRC_W_B_W) |
7537 | | - NODE_NAME_CASE(CRC_W_H_W) |
7538 | | - NODE_NAME_CASE(CRC_W_W_W) |
7539 | | - NODE_NAME_CASE(CRC_W_D_W) |
7540 | | - NODE_NAME_CASE(CRCC_W_B_W) |
7541 | | - NODE_NAME_CASE(CRCC_W_H_W) |
7542 | | - NODE_NAME_CASE(CRCC_W_W_W) |
7543 | | - NODE_NAME_CASE(CRCC_W_D_W) |
7544 | | - NODE_NAME_CASE(CSRRD) |
7545 | | - NODE_NAME_CASE(CSRWR) |
7546 | | - NODE_NAME_CASE(CSRXCHG) |
7547 | | - NODE_NAME_CASE(IOCSRRD_B) |
7548 | | - NODE_NAME_CASE(IOCSRRD_H) |
7549 | | - NODE_NAME_CASE(IOCSRRD_W) |
7550 | | - NODE_NAME_CASE(IOCSRRD_D) |
7551 | | - NODE_NAME_CASE(IOCSRWR_B) |
7552 | | - NODE_NAME_CASE(IOCSRWR_H) |
7553 | | - NODE_NAME_CASE(IOCSRWR_W) |
7554 | | - NODE_NAME_CASE(IOCSRWR_D) |
7555 | | - NODE_NAME_CASE(CPUCFG) |
7556 | | - NODE_NAME_CASE(MOVGR2FCSR) |
7557 | | - NODE_NAME_CASE(MOVFCSR2GR) |
7558 | | - NODE_NAME_CASE(CACOP_D) |
7559 | | - NODE_NAME_CASE(CACOP_W) |
7560 | | - NODE_NAME_CASE(VSHUF) |
7561 | | - NODE_NAME_CASE(VPICKEV) |
7562 | | - NODE_NAME_CASE(VPICKOD) |
7563 | | - NODE_NAME_CASE(VPACKEV) |
7564 | | - NODE_NAME_CASE(VPACKOD) |
7565 | | - NODE_NAME_CASE(VILVL) |
7566 | | - NODE_NAME_CASE(VILVH) |
7567 | | - NODE_NAME_CASE(VSHUF4I) |
7568 | | - NODE_NAME_CASE(VREPLVEI) |
7569 | | - NODE_NAME_CASE(VREPLGR2VR) |
7570 | | - NODE_NAME_CASE(XVPERMI) |
7571 | | - NODE_NAME_CASE(XVPERM) |
7572 | | - NODE_NAME_CASE(XVREPLVE0) |
7573 | | - NODE_NAME_CASE(XVREPLVE0Q) |
7574 | | - NODE_NAME_CASE(XVINSVE0) |
7575 | | - NODE_NAME_CASE(VPICK_SEXT_ELT) |
7576 | | - NODE_NAME_CASE(VPICK_ZEXT_ELT) |
7577 | | - NODE_NAME_CASE(VREPLVE) |
7578 | | - NODE_NAME_CASE(VALL_ZERO) |
7579 | | - NODE_NAME_CASE(VANY_ZERO) |
7580 | | - NODE_NAME_CASE(VALL_NONZERO) |
7581 | | - NODE_NAME_CASE(VANY_NONZERO) |
7582 | | - NODE_NAME_CASE(FRECIPE) |
7583 | | - NODE_NAME_CASE(FRSQRTE) |
7584 | | - NODE_NAME_CASE(VSLLI) |
7585 | | - NODE_NAME_CASE(VSRLI) |
7586 | | - NODE_NAME_CASE(VBSLL) |
7587 | | - NODE_NAME_CASE(VBSRL) |
7588 | | - NODE_NAME_CASE(VLDREPL) |
7589 | | - NODE_NAME_CASE(VMSKLTZ) |
7590 | | - NODE_NAME_CASE(VMSKGEZ) |
7591 | | - NODE_NAME_CASE(VMSKEQZ) |
7592 | | - NODE_NAME_CASE(VMSKNEZ) |
7593 | | - NODE_NAME_CASE(XVMSKLTZ) |
7594 | | - NODE_NAME_CASE(XVMSKGEZ) |
7595 | | - NODE_NAME_CASE(XVMSKEQZ) |
7596 | | - NODE_NAME_CASE(XVMSKNEZ) |
7597 | | - NODE_NAME_CASE(VHADDW) |
7598 | | - } |
7599 | | -#undef NODE_NAME_CASE |
7600 | | - return nullptr; |
7601 | | -} |
7602 | | - |
7603 | 7487 | //===----------------------------------------------------------------------===// |
7604 | 7488 | // Calling Convention Implementation |
7605 | 7489 | //===----------------------------------------------------------------------===// |
|
0 commit comments