[clang] [llvm] [X86][AMX] Support AMX-MOVRS (PR #115151)

Phoebe Wang via cfe-commits cfe-commits at lists.llvm.org
Sat Nov 9 19:28:17 PST 2024


================
@@ -5342,9 +5411,45 @@ void X86DAGToDAGISel::Select(SDNode *Node) {
       SDValue Disp = CurDAG->getTargetConstant(0, dl, MVT::i32);
       SDValue Segment = CurDAG->getRegister(0, MVT::i16);
       SDValue Chain = Node->getOperand(0);
-      MachineSDNode *CNode;
       SDValue Ops[] = {TReg, Base, Scale, Index, Disp, Segment, Chain};
-      CNode = CurDAG->getMachineNode(Opc, dl, MVT::Other, Ops);
+      MachineSDNode *CNode = CurDAG->getMachineNode(Opc, dl, MVT::Other, Ops);
+      ReplaceNode(Node, CNode);
+      return;
+    }
+    case Intrinsic::x86_t2rpntlvwz0rs:
+    case Intrinsic::x86_t2rpntlvwz0rst1:
+    case Intrinsic::x86_t2rpntlvwz1rs:
+    case Intrinsic::x86_t2rpntlvwz1rst1: {
+      if (!Subtarget->hasAMXTRANSPOSE() || !Subtarget->hasAMXMOVRS())
+        break;
----------------
phoebewang wrote:

ditto.

https://github.com/llvm/llvm-project/pull/115151


More information about the cfe-commits mailing list