Add a comment to describe why vector shuffles are legalized to custom DAG nodes.
authorBob Wilson <bob.wilson@apple.com>
Thu, 13 Aug 2009 02:13:04 +0000 (02:13 +0000)
committerBob Wilson <bob.wilson@apple.com>
Thu, 13 Aug 2009 02:13:04 +0000 (02:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78884 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMISelLowering.cpp

index 4074fc7f21938f351bb5c5a63a03cea78639c2ac..785a7ded6d3fdc41b07c638fe6e57dc420bd1095 100644 (file)
@@ -2439,6 +2439,10 @@ static SDValue LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) {
   DebugLoc dl = Op.getDebugLoc();
   EVT VT = Op.getValueType();
 
+  // Convert shuffles that are directly supported on NEON to target-specific
+  // DAG nodes, instead of keeping them as shuffles and matching them again
+  // during code selection.  This is more efficient and avoids the possibility
+  // of inconsistencies between legalization and selection.
   if (SVN->isSplat() && SVN->getSplatIndex() == 0)
     return DAG.getNode(ARMISD::VSPLAT0, dl, VT, SVN->getOperand(0));
   if (isVREVMask(SVN, 64))