[llvm] [AArch64]: Added code for generating XAR instruction (PR #75085)

David Green via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 11 13:38:04 PST 2023


================
@@ -4273,6 +4275,41 @@ bool AArch64DAGToDAGISel::trySelectCastScalableToFixedLengthVector(SDNode *N) {
   return true;
 }
 
+bool AArch64DAGToDAGISel::trySelectXAR(SDNode *N) {
+  assert(N->getOpcode() == ISD::OR && "Expected OR instruction");
+
+  SDValue N0 = N->getOperand(0);
+  SDValue N1 = N->getOperand(1);
+
+  if (N0->getOpcode() != AArch64ISD::VSHL ||
+      N1->getOpcode() != AArch64ISD::VLSHR)
+    return false;
+
+  if (N0->getOperand(0) != N1->getOperand(0) ||
+      N0->getOperand(0)->getOpcode() != N1->getOperand(0)->getOpcode() ||
----------------
davemgreen wrote:

This line wont be needed with the one above.

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


More information about the llvm-commits mailing list