OSDN Git Service

[x86] Fix a bug in r216319 where I was missing a 'break'.
authorChandler Carruth <chandlerc@gmail.com>
Mon, 25 Aug 2014 18:06:11 +0000 (18:06 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Mon, 25 Aug 2014 18:06:11 +0000 (18:06 +0000)
This actually was caught by existing tests but those tests were disabled
with an XFAIL because of PR20736. While working on fixing that,
I noticed the test failure, and tracked it down to this.

We even have a really nice Clang warning that would have caught this but
it isn't enabled in LLVM! =[ I may look at enabling it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216391 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 66c00fb..5dd5428 100644 (file)
@@ -19467,11 +19467,13 @@ combineRedundantDWordShuffle(SDValue N, MutableArrayRef<int> Mask,
     case X86ISD::UNPCKL:
     case X86ISD::UNPCKH:
       V = DAG.getNode(W.getOpcode(), DL, W.getValueType(), V, V);
+      break;
 
     case X86ISD::PSHUFD:
     case X86ISD::PSHUFLW:
     case X86ISD::PSHUFHW:
       V = DAG.getNode(W.getOpcode(), DL, W.getValueType(), V, W.getOperand(1));
+      break;
     }
   }
   if (V.getValueType() != N.getValueType())