Home | History | Annotate | Download | only in AArch64

Lines Matching refs:Node

60   void Select(SDNode *Node) override;
208 /// isIntImmediate - This method tests to see if the node is a constant
224 // isOpcWithIntImmediate - This method tests to see if the node is a specific
314 /// getShiftTypeForNode - Translate a shift node to the corresponding
364 /// getExtendTypeForNode - Translate an extend node to the corresponding
557 MachineSDNode *Node = CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG,
559 return SDValue(Node, 0);
768 MachineSDNode *Node = CurDAG->getMachineNode(
770 return SDValue(Node, 0);
773 /// \brief Check if the given SHL node (\p N), can be used to form an
822 // Check if this particular node is reused in any non-memory related
823 // operation. If yes, do not try to fold this node into the address
825 const SDNode *Node = N.getNode();
826 for (SDNode *UI : Node->uses()) {
906 // Check if this particular node is reused in any non-memory related
907 // operation. If yes, do not try to fold this node into the address
909 const SDNode *Node = N.getNode();
910 for (SDNode *UI : Node->uses()) {
1115 // Either way, we're replacing the node, so tell the caller that.
1435 // changed the AND node to a 32-bit mask operation. We'll have to
1472 // Use the type of SRL node.
1642 "bad amount in shift node!");
1884 // Users of this node should have already been instruction selected
1941 for (SDNode *Node : Op.getNode()->uses()) {
1944 getUsefulBitsForUse(Node, UsefulBitsForUse, Op, Depth);
1953 /// Create a machine node performing a notional SHL of Op by ShlAmount. If
2002 // Discard a constant AND mask if present. It's safe because the node will
2421 // Lower the read_register intrinsic to an MRS instruction node if the special
2459 // Lower the write_register intrinsic to an MSR instruction node if the special
2555 void AArch64DAGToDAGISel::Select(SDNode *Node) {
2556 // Dump information about the Node being selected
2558 DEBUG(Node->dump(CurDAG));
2561 // If we have a custom node, we already have selected!
2562 if (Node->isMachineOpcode()) {
2563 DEBUG(errs() << "== "; Node->dump(CurDAG); errs() << "\n");
2564 Node->setNodeId(-1);
2569 EVT VT = Node->getValueType(0);
2571 switch (Node->getOpcode()) {
2576 SelectCMP_SWAP(Node);
2580 if (tryReadRegister(Node))
2585 if (tryWriteRegister(Node))
2590 if (tryMLAV64LaneV128(Node))
2597 if (tryIndexedLoad(Node))
2606 if (tryBitfieldExtractOp(Node))
2608 if (tryBitfieldInsertInZeroOp(Node))
2613 if (tryBitfieldExtractOpFromSExt(Node))
2618 if (tryBitfieldInsertOp(Node))
2628 ConstantSDNode *LaneNode = cast<ConstantSDNode>(Node->getOperand(1));
2636 if (VT != Node->getOperand(0).getValueType().getVectorElementType())
2639 switch (Node->getOperand(0)
2657 SDValue Extract = CurDAG->getTargetExtractSubreg(SubReg, SDLoc(Node), VT,
2658 Node->getOperand(0));
2662 ReplaceNode(Node, Extract.getNode());
2668 ConstantSDNode *ConstNode = cast<ConstantSDNode>(Node);
2672 CurDAG->getEntryNode(), SDLoc(Node), AArch64::WZR, MVT::i32);
2673 ReplaceNode(Node, New.getNode());
2677 CurDAG->getEntryNode(), SDLoc(Node), AArch64::XZR, MVT::i64);
2678 ReplaceNode(Node, New.getNode());
2687 int FI = cast<FrameIndexSDNode>(Node)->getIndex();
2692 SDLoc DL(Node);
2695 CurDAG->SelectNodeTo(Node, AArch64::ADDXri, MVT::i64, Ops);
2699 unsigned IntNo = cast<ConstantSDNode>(Node->getOperand(1))->getZExtValue();
2707 SDValue MemAddr = Node->getOperand(2);
2708 SDLoc DL(Node);
2709 SDValue Chain = Node->getOperand(0);
2716 MemOp[0] = cast<MemIntrinsicSDNode>(Node)->getMemOperand();
2718 ReplaceNode(Node, Ld);
2725 SDLoc DL(Node);
2726 SDValue Chain = Node->getOperand(0);
2727 SDValue ValLo = Node->getOperand(2);
2728 SDValue ValHi = Node->getOperand(3);
2729 SDValue MemAddr = Node->getOperand(4);
2737 MemOp[0] = cast<MemIntrinsicSDNode>(Node)->getMemOperand();
2740 ReplaceNode(Node, St);
2745 SelectLoad(Node, 2, AArch64::LD1Twov8b, AArch64::dsub0);
2748 SelectLoad(Node, 2, AArch64::LD1Twov16b, AArch64::qsub0);
2751 SelectLoad(Node, 2, AArch64::LD1Twov4h, AArch64::dsub0);
2754 SelectLoad(Node, 2, AArch64::LD1Twov8h, AArch64::qsub0);
2757 SelectLoad(Node, 2, AArch64::LD1Twov2s, AArch64::dsub0);
2760 SelectLoad(Node, 2, AArch64::LD1Twov4s, AArch64::qsub0);
2763 SelectLoad(Node, 2, AArch64::LD1Twov1d, AArch64::dsub0);
2766 SelectLoad(Node, 2, AArch64::LD1Twov2d, AArch64::qsub0);
2772 SelectLoad(Node, 3, AArch64::LD1Threev8b, AArch64::dsub0);
2775 SelectLoad(Node, 3, AArch64::LD1Threev16b, AArch64::qsub0);
2778 SelectLoad(Node, 3, AArch64::LD1Threev4h, AArch64::dsub0);
2781 SelectLoad(Node, 3, AArch64::LD1Threev8h, AArch64::qsub0);
2784 SelectLoad(Node, 3, AArch64::LD1Threev2s, AArch64::dsub0);
2787 SelectLoad(Node, 3, AArch64::LD1Threev4s, AArch64::qsub0);
2790 SelectLoad(Node, 3, AArch64::LD1Threev1d, AArch64::dsub0);
2793 SelectLoad(Node, 3, AArch64::LD1Threev2d, AArch64::qsub0);
2799 SelectLoad(Node, 4, AArch64::LD1Fourv8b, AArch64::dsub0);
2802 SelectLoad(Node, 4, AArch64::LD1Fourv16b, AArch64::qsub0);
2805 SelectLoad(Node, 4, AArch64::LD1Fourv4h, AArch64::dsub0);
2808 SelectLoad(Node, 4, AArch64::LD1Fourv8h, AArch64::qsub0);
2811 SelectLoad(Node, 4, AArch64::LD1Fourv2s, AArch64::dsub0);
2814 SelectLoad(Node, 4, AArch64::LD1Fourv4s, AArch64::qsub0);
2817 SelectLoad(Node, 4, AArch64::LD1Fourv1d, AArch64::dsub0);
2820 SelectLoad(Node, 4, AArch64::LD1Fourv2d, AArch64::qsub0);
2826 SelectLoad(Node, 2, AArch64::LD2Twov8b, AArch64::dsub0);
2829 SelectLoad(Node, 2, AArch64::LD2Twov16b, AArch64::qsub0);
2832 SelectLoad(Node, 2, AArch64::LD2Twov4h, AArch64::dsub0);
2835 SelectLoad(Node, 2, AArch64::LD2Twov8h, AArch64::qsub0);
2838 SelectLoad(Node, 2, AArch64::LD2Twov2s, AArch64::dsub0);
2841 SelectLoad(Node, 2, AArch64::LD2Twov4s, AArch64::qsub0);
2844 SelectLoad(Node, 2, AArch64::LD1Twov1d, AArch64::dsub0);
2847 SelectLoad(Node, 2, AArch64::LD2Twov2d, AArch64::qsub0);
2853 SelectLoad(Node, 3, AArch64::LD3Threev8b, AArch64::dsub0);
2856 SelectLoad(Node, 3, AArch64::LD3Threev16b, AArch64::qsub0);
2859 SelectLoad(Node, 3, AArch64::LD3Threev4h, AArch64::dsub0);
2862 SelectLoad(Node, 3, AArch64::LD3Threev8h, AArch64::qsub0);
2865 SelectLoad(Node, 3, AArch64::LD3Threev2s, AArch64::dsub0);
2868 SelectLoad(Node, 3, AArch64::LD3Threev4s, AArch64::qsub0);
2871 SelectLoad(Node, 3, AArch64::LD1Threev1d, AArch64::dsub0);
2874 SelectLoad(Node, 3, AArch64::LD3Threev2d, AArch64::qsub0);
2880 SelectLoad(Node, 4, AArch64::LD4Fourv8b, AArch64::dsub0);
2883 SelectLoad(Node, 4, AArch64::LD4Fourv16b, AArch64::qsub0);
2886 SelectLoad(Node, 4, AArch64::LD4Fourv4h, AArch64::dsub0);
2889 SelectLoad(Node, 4, AArch64::LD4Fourv8h, AArch64::qsub0);
2892 SelectLoad(Node, 4, AArch64::LD4Fourv2s, AArch64::dsub0);
2895 SelectLoad(Node, 4, AArch64::LD4Fourv4s, AArch64::qsub0);
2898 SelectLoad(Node, 4, AArch64::LD1Fourv1d, AArch64::dsub0);
2901 SelectLoad(Node, 4, AArch64::LD4Fourv2d, AArch64::qsub0);
2907 SelectLoad(Node, 2, AArch64::LD2Rv8b, AArch64::dsub0);
2910 SelectLoad(Node, 2, AArch64::LD2Rv16b, AArch64::qsub0);
2913 SelectLoad(Node, 2, AArch64::LD2Rv4h, AArch64::dsub0);
2916 SelectLoad(Node, 2, AArch64::LD2Rv8h, AArch64::qsub0);
2919 SelectLoad(Node, 2, AArch64::LD2Rv2s, AArch64::dsub0);
2922 SelectLoad(Node, 2, AArch64::LD2Rv4s, AArch64::qsub0);
2925 SelectLoad(Node, 2, AArch64::LD2Rv1d, AArch64::dsub0);
2928 SelectLoad(Node, 2, AArch64::LD2Rv2d, AArch64::qsub0);
2934 SelectLoad(Node, 3, AArch64::LD3Rv8b, AArch64::dsub0);
2937 SelectLoad(Node, 3, AArch64::LD3Rv16b, AArch64::qsub0);
2940 SelectLoad(Node, 3, AArch64::LD3Rv4h, AArch64::dsub0);
2943 SelectLoad(Node, 3, AArch64::LD3Rv8h, AArch64::qsub0);
2946 SelectLoad(Node, 3, AArch64::LD3Rv2s, AArch64::dsub0);
2949 SelectLoad(Node, 3, AArch64::LD3Rv4s, AArch64::qsub0);
2952 SelectLoad(Node, 3, AArch64::LD3Rv1d, AArch64::dsub0);
2955 SelectLoad(Node, 3, AArch64::LD3Rv2d, AArch64::qsub0);
2961 SelectLoad(Node, 4, AArch64::LD4Rv8b, AArch64::dsub0);
2964 SelectLoad(Node, 4, AArch64::LD4Rv16b, AArch64::qsub0);
2967 SelectLoad(Node, 4, AArch64::LD4Rv4h, AArch64::dsub0);
2970 SelectLoad(Node, 4, AArch64::LD4Rv8h, AArch64::qsub0);
2973 SelectLoad(Node, 4, AArch64::LD4Rv2s, AArch64::dsub0);
2976 SelectLoad(Node, 4, AArch64::LD4Rv4s, AArch64::qsub0);
2979 SelectLoad(Node, 4, AArch64::LD4Rv1d, AArch64::dsub0);
2982 SelectLoad(Node, 4, AArch64::LD4Rv2d, AArch64::qsub0);
2988 SelectLoadLane(Node, 2, AArch64::LD2i8);
2992 SelectLoadLane(Node, 2, AArch64::LD2i16);
2996 SelectLoadLane(Node, 2, AArch64::LD2i32);
3000 SelectLoadLane(Node, 2, AArch64::LD2i64);
3006 SelectLoadLane(Node, 3, AArch64::LD3i8);
3010 SelectLoadLane(Node, 3, AArch64::LD3i16);
3014 SelectLoadLane(Node, 3, AArch64::LD3i32);
3018 SelectLoadLane(Node, 3, AArch64::LD3i64);
3024 SelectLoadLane(Node, 4, AArch64::LD4i8);
3028 SelectLoadLane(Node, 4, AArch64::LD4i16);
3032 SelectLoadLane(Node, 4, AArch64::LD4i32);
3036 SelectLoadLane(Node, 4, AArch64::LD4i64);
3043 unsigned IntNo = cast<ConstantSDNode>(Node->getOperand(0))->getZExtValue();
3048 SelectTable(Node, 2,
3053 SelectTable(Node, 3, VT == MVT::v8i8 ? AArch64::TBLv8i8Three
3058 SelectTable(Node, 4, VT == MVT::v8i8 ? AArch64::TBLv8i8Four
3063 SelectTable(Node, 2,
3068 SelectTable(Node, 3, VT == MVT::v8i8 ? AArch64::TBXv8i8Three
3073 SelectTable(Node, 4, VT == MVT::v8i8 ? AArch64::TBXv8i8Four
3079 if (tryMULLV64LaneV128(IntNo, Node))
3086 unsigned IntNo = cast<ConstantSDNode>(Node->getOperand(1))->getZExtValue();
3087 if (Node->getNumOperands() >= 3)
3088 VT = Node->getOperand(2)->getValueType(0);
3094 SelectStore(Node, 2, AArch64::ST1Twov8b);
3097 SelectStore(Node, 2, AArch64::ST1Twov16b);
3100 SelectStore(Node, 2, AArch64::ST1Twov4h);
3103 SelectStore(Node, 2, AArch64::ST1Twov8h);
3106 SelectStore(Node, 2, AArch64::ST1Twov2s);
3109 SelectStore(Node, 2, AArch64::ST1Twov4s);
3112 SelectStore(Node, 2, AArch64::ST1Twov2d);
3115 SelectStore(Node, 2, AArch64::ST1Twov1d);
3122 SelectStore(Node, 3, AArch64::ST1Threev8b);
3125 SelectStore(Node, 3, AArch64::ST1Threev16b);
3128 SelectStore(Node, 3, AArch64::ST1Threev4h);
3131 SelectStore(Node, 3, AArch64::ST1Threev8h);
3134 SelectStore(Node, 3, AArch64::ST1Threev2s);
3137 SelectStore(Node, 3, AArch64::ST1Threev4s);
3140 SelectStore(Node, 3, AArch64::ST1Threev2d);
3143 SelectStore(Node, 3, AArch64::ST1Threev1d);
3150 SelectStore(Node, 4, AArch64::ST1Fourv8b);
3153 SelectStore(Node, 4, AArch64::ST1Fourv16b);
3156 SelectStore(Node, 4, AArch64::ST1Fourv4h);
3159 SelectStore(Node, 4, AArch64::ST1Fourv8h);
3162 SelectStore(Node, 4, AArch64::ST1Fourv2s);
3165 SelectStore(Node, 4, AArch64::ST1Fourv4s);
3168 SelectStore(Node, 4, AArch64::ST1Fourv2d);
3171 SelectStore(Node, 4, AArch64::ST1Fourv1d);
3178 SelectStore(Node, 2, AArch64::ST2Twov8b);
3181 SelectStore(Node, 2, AArch64::ST2Twov16b);
3184 SelectStore(Node, 2, AArch64::ST2Twov4h);
3187 SelectStore(Node, 2, AArch64::ST2Twov8h);
3190 SelectStore(Node, 2, AArch64::ST2Twov2s);
3193 SelectStore(Node, 2, AArch64::ST2Twov4s);
3196 SelectStore(Node, 2, AArch64::ST2Twov2d);
3199 SelectStore(Node, 2, AArch64::ST1Twov1d);
3206 SelectStore(Node, 3, AArch64::ST3Threev8b);
3209 SelectStore(Node, 3, AArch64::ST3Threev16b);
3212 SelectStore(Node, 3, AArch64::ST3Threev4h);
3215 SelectStore(Node, 3, AArch64::ST3Threev8h);
3218 SelectStore(Node, 3, AArch64::ST3Threev2s);
3221 SelectStore(Node, 3, AArch64::ST3Threev4s);
3224 SelectStore(Node, 3, AArch64::ST3Threev2d);
3227 SelectStore(Node, 3, AArch64::ST1Threev1d);
3234 SelectStore(Node, 4, AArch64::ST4Fourv8b);
3237 SelectStore(Node, 4, AArch64::ST4Fourv16b);
3240 SelectStore(Node, 4, AArch64::ST4Fourv4h);
3243 SelectStore(Node, 4, AArch64::ST4Fourv8h);
3246 SelectStore(Node, 4, AArch64::ST4Fourv2s);
3249 SelectStore(Node, 4, AArch64::ST4Fourv4s);
3252 SelectStore(Node, 4, AArch64::ST4Fourv2d);
3255 SelectStore(Node, 4, AArch64::ST1Fourv1d);
3262 SelectStoreLane(Node, 2, AArch64::ST2i8);
3266 SelectStoreLane(Node, 2, AArch64::ST2i16);
3270 SelectStoreLane(Node, 2, AArch64::ST2i32);
3274 SelectStoreLane(Node, 2, AArch64::ST2i64);
3281 SelectStoreLane(Node, 3, AArch64::ST3i8);
3285 SelectStoreLane(Node, 3, AArch64::ST3i16);
3289 SelectStoreLane(Node, 3, AArch64::ST3i32);
3293 SelectStoreLane(Node, 3, AArch64::ST3i64);
3300 SelectStoreLane(Node, 4, AArch64::ST4i8);
3304 SelectStoreLane(Node, 4, AArch64::ST4i16);
3308 SelectStoreLane(Node, 4, AArch64::ST4i32);
3312 SelectStoreLane(Node, 4, AArch64::ST4i64);
3322 SelectPostLoad(Node, 2, AArch64::LD2Twov8b_POST, AArch64::dsub0);
3325 SelectPostLoad(Node, 2, AArch64::LD2Twov16b_POST, AArch64::qsub0);
3328 SelectPostLoad(Node, 2, AArch64::LD2Twov4h_POST, AArch64::dsub0);
3331 SelectPostLoad(Node, 2, AArch64::LD2Twov8h_POST, AArch64::qsub0);
3334 SelectPostLoad(Node, 2, AArch64::LD2Twov2s_POST, AArch64::dsub0);
3337 SelectPostLoad(Node, 2, AArch64::LD2Twov4s_POST, AArch64::qsub0);
3340 SelectPostLoad(Node, 2, AArch64::LD1Twov1d_POST, AArch64::dsub0);
3343 SelectPostLoad(Node, 2, AArch64::LD2Twov2d_POST, AArch64::qsub0);
3350 SelectPostLoad(Node, 3, AArch64::LD3Threev8b_POST, AArch64::dsub0);
3353 SelectPostLoad(Node, 3, AArch64::LD3Threev16b_POST, AArch64::qsub0);
3356 SelectPostLoad(Node, 3, AArch64::LD3Threev4h_POST, AArch64::dsub0);
3359 SelectPostLoad(Node, 3, AArch64::LD3Threev8h_POST, AArch64::qsub0);
3362 SelectPostLoad(Node, 3, AArch64::LD3Threev2s_POST, AArch64::dsub0);
3365 SelectPostLoad(Node, 3, AArch64::LD3Threev4s_POST, AArch64::qsub0);
3368 SelectPostLoad(Node, 3, AArch64::LD1Threev1d_POST, AArch64::dsub0);
3371 SelectPostLoad(Node, 3, AArch64::LD3Threev2d_POST, AArch64::qsub0);
3378 SelectPostLoad(Node, 4, AArch64::LD4Fourv8b_POST, AArch64::dsub0);
3381 SelectPostLoad(Node, 4, AArch64::LD4Fourv16b_POST, AArch64::qsub0);
3384 SelectPostLoad(Node, 4, AArch64::LD4Fourv4h_POST, AArch64::dsub0);
3387 SelectPostLoad(Node, 4, AArch64::LD4Fourv8h_POST, AArch64::qsub0);
3390 SelectPostLoad(Node, 4, AArch64::LD4Fourv2s_POST, AArch64::dsub0);
3393 SelectPostLoad(Node, 4, AArch64::LD4Fourv4s_POST, AArch64::qsub0);
3396 SelectPostLoad(Node, 4, AArch64::LD1Fourv1d_POST, AArch64::dsub0);
3399 SelectPostLoad(Node, 4, AArch64::LD4Fourv2d_POST, AArch64::qsub0);
3406 SelectPostLoad(Node, 2, AArch64::LD1Twov8b_POST, AArch64::dsub0);
3409 SelectPostLoad(Node, 2, AArch64::LD1Twov16b_POST, AArch64::qsub0);
3412 SelectPostLoad(Node, 2, AArch64::LD1Twov4h_POST, AArch64::dsub0);
3415 SelectPostLoad(Node, 2, AArch64::LD1Twov8h_POST, AArch64::qsub0);
3418 SelectPostLoad(Node, 2, AArch64::LD1Twov2s_POST, AArch64::dsub0);
3421 SelectPostLoad(Node, 2, AArch64::LD1Twov4s_POST, AArch64::qsub0);
3424 SelectPostLoad(Node, 2, AArch64::LD1Twov1d_POST, AArch64::dsub0);
3427 SelectPostLoad(Node, 2, AArch64::LD1Twov2d_POST, AArch64::qsub0);
3434 SelectPostLoad(Node, 3, AArch64::LD1Threev8b_POST, AArch64::dsub0);
3437 SelectPostLoad(Node, 3, AArch64::LD1Threev16b_POST, AArch64::qsub0);
3440 SelectPostLoad(Node, 3, AArch64::LD1Threev4h_POST, AArch64::dsub0);
3443 SelectPostLoad(Node, 3, AArch64::LD1Threev8h_POST, AArch64::qsub0);
3446 SelectPostLoad(Node, 3, AArch64::LD1Threev2s_POST, AArch64::dsub0);
3449 SelectPostLoad(Node, 3, AArch64::LD1Threev4s_POST, AArch64::qsub0);
3452 SelectPostLoad(Node, 3, AArch64::LD1Threev1d_POST, AArch64::dsub0);
3455 SelectPostLoad(Node, 3, AArch64::LD1Threev2d_POST, AArch64::qsub0);
3462 SelectPostLoad(Node, 4, AArch64::LD1Fourv8b_POST, AArch64::dsub0);
3465 SelectPostLoad(Node, 4, AArch64::LD1Fourv16b_POST, AArch64::qsub0);
3468 SelectPostLoad(Node, 4, AArch64::LD1Fourv4h_POST, AArch64::dsub0);
3471 SelectPostLoad(Node, 4, AArch64::LD1Fourv8h_POST, AArch64::qsub0);
3474 SelectPostLoad(Node, 4, AArch64::LD1Fourv2s_POST, AArch64::dsub0);
3477 SelectPostLoad(Node, 4, AArch64::LD1Fourv4s_POST, AArch64::qsub0);
3480 SelectPostLoad(Node, 4, AArch64::LD1Fourv1d_POST, AArch64::dsub0);
3483 SelectPostLoad(Node, 4, AArch64::LD1Fourv2d_POST, AArch64::qsub0);
3490 SelectPostLoad(Node, 1, AArch64::LD1Rv8b_POST, AArch64::dsub0);
3493 SelectPostLoad(Node, 1, AArch64::LD1Rv16b_POST, AArch64::qsub0);
3496 SelectPostLoad(Node, 1, AArch64::LD1Rv4h_POST, AArch64::dsub0);
3499 SelectPostLoad(Node, 1, AArch64::LD1Rv8h_POST, AArch64::qsub0);
3502 SelectPostLoad(Node, 1, AArch64::LD1Rv2s_POST, AArch64::dsub0);
3505 SelectPostLoad(Node, 1, AArch64::LD1Rv4s_POST, AArch64::qsub0);
3508 SelectPostLoad(Node, 1, AArch64::LD1Rv1d_POST, AArch64::dsub0);
3511 SelectPostLoad(Node, 1, AArch64::LD1Rv2d_POST, AArch64::qsub0);
3518 SelectPostLoad(Node, 2, AArch64::LD2Rv8b_POST, AArch64::dsub0);
3521 SelectPostLoad(Node, 2, AArch64::LD2Rv16b_POST, AArch64::qsub0);
3524 SelectPostLoad(Node, 2, AArch64::LD2Rv4h_POST, AArch64::dsub0);
3527 SelectPostLoad(Node, 2, AArch64::LD2Rv8h_POST, AArch64::qsub0);
3530 SelectPostLoad(Node, 2, AArch64::LD2Rv2s_POST, AArch64::dsub0);
3533 SelectPostLoad(Node, 2, AArch64::LD2Rv4s_POST, AArch64::qsub0);
3536 SelectPostLoad(Node, 2, AArch64::LD2Rv1d_POST, AArch64::dsub0);
3539 SelectPostLoad(Node, 2, AArch64::LD2Rv2d_POST, AArch64::qsub0);
3546 SelectPostLoad(Node, 3, AArch64::LD3Rv8b_POST, AArch64::dsub0);
3549 SelectPostLoad(Node, 3, AArch64::LD3Rv16b_POST, AArch64::qsub0);
3552 SelectPostLoad(Node, 3, AArch64::LD3Rv4h_POST, AArch64::dsub0);
3555 SelectPostLoad(Node, 3, AArch64::LD3Rv8h_POST, AArch64::qsub0);
3558 SelectPostLoad(Node, 3, AArch64::LD3Rv2s_POST, AArch64::dsub0);
3561 SelectPostLoad(Node, 3, AArch64::LD3Rv4s_POST, AArch64::qsub0);
3564 SelectPostLoad(Node, 3, AArch64::LD3Rv1d_POST, AArch64::dsub0);
3567 SelectPostLoad(Node, 3, AArch64::LD3Rv2d_POST, AArch64::qsub0);
3574 SelectPostLoad(Node, 4, AArch64::LD4Rv8b_POST, AArch64::dsub0);
3577 SelectPostLoad(Node, 4, AArch64::LD4Rv16b_POST, AArch64::qsub0);
3580 SelectPostLoad(Node, 4, AArch64::LD4Rv4h_POST, AArch64::dsub0);
3583 SelectPostLoad(Node, 4, AArch64::LD4Rv8h_POST, AArch64::qsub0);
3586 SelectPostLoad(Node, 4, AArch64::LD4Rv2s_POST, AArch64::dsub0);
3589 SelectPostLoad(Node, 4, AArch64::LD4Rv4s_POST, AArch64::qsub0);
3592 SelectPostLoad(Node, 4, AArch64::LD4Rv1d_POST, AArch64::dsub0);
3595 SelectPostLoad(Node, 4, AArch64::LD4Rv2d_POST, AArch64::qsub0);
3602 SelectPostLoadLane(Node, 1, AArch64::LD1i8_POST);
3606 SelectPostLoadLane(Node, 1, AArch64::LD1i16_POST);
3610 SelectPostLoadLane(Node, 1, AArch64::LD1i32_POST);
3614 SelectPostLoadLane(Node, 1, AArch64::LD1i64_POST);
3621 SelectPostLoadLane(Node, 2, AArch64::LD2i8_POST);
3625 SelectPostLoadLane(Node, 2, AArch64::LD2i16_POST);
3629 SelectPostLoadLane(Node, 2, AArch64::LD2i32_POST);
3633 SelectPostLoadLane(Node, 2, AArch64::LD2i64_POST);
3640 SelectPostLoadLane(Node, 3, AArch64::LD3i8_POST);
3644 SelectPostLoadLane(Node, 3, AArch64::LD3i16_POST);
3648 SelectPostLoadLane(Node, 3, AArch64::LD3i32_POST);
3652 SelectPostLoadLane(Node, 3, AArch64::LD3i64_POST);
3659 SelectPostLoadLane(Node, 4, AArch64::LD4i8_POST);
3663 SelectPostLoadLane(Node, 4, AArch64::LD4i16_POST);
3667 SelectPostLoadLane(Node, 4, AArch64::LD4i32_POST);
3671 SelectPostLoadLane(Node, 4, AArch64::LD4i64_POST);
3677 VT = Node->getOperand(1).getValueType();
3679 SelectPostStore(Node, 2, AArch64::ST2Twov8b_POST);
3682 SelectPostStore(Node, 2, AArch64::ST2Twov16b_POST);
3685 SelectPostStore(Node, 2, AArch64::ST2Twov4h_POST);
3688 SelectPostStore(Node, 2, AArch64::ST2Twov8h_POST);
3691 SelectPostStore(Node, 2, AArch64::ST2Twov2s_POST);
3694 SelectPostStore(Node, 2, AArch64::ST2Twov4s_POST);
3697 SelectPostStore(Node, 2, AArch64::ST2Twov2d_POST);
3700 SelectPostStore(Node, 2, AArch64::ST1Twov1d_POST);
3706 VT = Node->getOperand(1).getValueType();
3708 SelectPostStore(Node, 3, AArch64::ST3Threev8b_POST);
3711 SelectPostStore(Node, 3, AArch64::ST3Threev16b_POST);
3714 SelectPostStore(Node, 3, AArch64::ST3Threev4h_POST);
3717 SelectPostStore(Node, 3, AArch64::ST3Threev8h_POST);
3720 SelectPostStore(Node, 3, AArch64::ST3Threev2s_POST);
3723 SelectPostStore(Node, 3, AArch64::ST3Threev4s_POST);
3726 SelectPostStore(Node, 3, AArch64::ST3Threev2d_POST);
3729 SelectPostStore(Node, 3, AArch64::ST1Threev1d_POST);
3735 VT = Node->getOperand(1).getValueType();
3737 SelectPostStore(Node, 4, AArch64::ST4Fourv8b_POST);
3740 SelectPostStore(Node, 4, AArch64::ST4Fourv16b_POST);
3743 SelectPostStore(Node, 4, AArch64::ST4Fourv4h_POST);
3746 SelectPostStore(Node, 4, AArch64::ST4Fourv8h_POST);
3749 SelectPostStore(Node, 4, AArch64::ST4Fourv2s_POST);
3752 SelectPostStore(Node, 4, AArch64::ST4Fourv4s_POST);
3755 SelectPostStore(Node, 4, AArch64::ST4Fourv2d_POST);
3758 SelectPostStore(Node, 4, AArch64::ST1Fourv1d_POST);
3764 VT = Node->getOperand(1).getValueType();
3766 SelectPostStore(Node, 2, AArch64::ST1Twov8b_POST);
3769 SelectPostStore(Node, 2, AArch64::ST1Twov16b_POST);
3772 SelectPostStore(Node, 2, AArch64::ST1Twov4h_POST);
3775 SelectPostStore(Node, 2, AArch64::ST1Twov8h_POST);
3778 SelectPostStore(Node, 2, AArch64::ST1Twov2s_POST);
3781 SelectPostStore(Node, 2, AArch64::ST1Twov4s_POST);
3784 SelectPostStore(Node, 2, AArch64::ST1Twov1d_POST);
3787 SelectPostStore(Node, 2, AArch64::ST1Twov2d_POST);
3793 VT = Node->getOperand(1).getValueType();
3795 SelectPostStore(Node, 3, AArch64::ST1Threev8b_POST);
3798 SelectPostStore(Node, 3, AArch64::ST1Threev16b_POST);
3801 SelectPostStore(Node, 3, AArch64::ST1Threev4h_POST);
3804 SelectPostStore(Node, 3, AArch64::ST1Threev8h_POST);
3807 SelectPostStore(Node, 3, AArch64::ST1Threev2s_POST);
3810 SelectPostStore(Node, 3, AArch64::ST1Threev4s_POST);
3813 SelectPostStore(Node, 3, AArch64::ST1Threev1d_POST);
3816 SelectPostStore(Node, 3, AArch64::ST1Threev2d_POST);
3822 VT = Node->getOperand(1).getValueType();
3824 SelectPostStore(Node, 4, AArch64::ST1Fourv8b_POST);
3827 SelectPostStore(Node, 4, AArch64::ST1Fourv16b_POST);
3830 SelectPostStore(Node, 4, AArch64::ST1Fourv4h_POST);
3833 SelectPostStore(Node, 4, AArch64::ST1Fourv8h_POST);
3836 SelectPostStore(Node, 4, AArch64::ST1Fourv2s_POST);
3839 SelectPostStore(Node, 4, AArch64::ST1Fourv4s_POST);
3842 SelectPostStore(Node, 4, AArch64::ST1Fourv1d_POST);
3845 SelectPostStore(Node, 4, AArch64::ST1Fourv2d_POST);
3851 VT = Node->getOperand(1).getValueType();
3853 SelectPostStoreLane(Node, 2, AArch64::ST2i8_POST);
3857 SelectPostStoreLane(Node, 2, AArch64::ST2i16_POST);
3861 SelectPostStoreLane(Node, 2, AArch64::ST2i32_POST);
3865 SelectPostStoreLane(Node, 2, AArch64::ST2i64_POST);
3871 VT = Node->getOperand(1).getValueType();
3873 SelectPostStoreLane(Node, 3, AArch64::ST3i8_POST);
3877 SelectPostStoreLane(Node, 3, AArch64::ST3i16_POST);
3881 SelectPostStoreLane(Node, 3, AArch64::ST3i32_POST);
3885 SelectPostStoreLane(Node, 3, AArch64::ST3i64_POST);
3891 VT = Node->getOperand(1).getValueType();
3893 SelectPostStoreLane(Node, 4, AArch64::ST4i8_POST);
3897 SelectPostStoreLane(Node, 4, AArch64::ST4i16_POST);
3901 SelectPostStoreLane(Node, 4, AArch64::ST4i32_POST);
3905 SelectPostStoreLane(Node, 4, AArch64::ST4i64_POST);
3913 SelectCode(Node);