Add a hackaround for PR7993 which is causing failures on x86 builders that lack sse2.
authorChris Lattner <sabre@nondot.org>
Thu, 26 Aug 2010 06:57:07 +0000 (06:57 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 26 Aug 2010 06:57:07 +0000 (06:57 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112175 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
test/CodeGen/X86/sse1.ll
test/CodeGen/X86/vec_cast.ll

index 849220a7bfe0dd73c4099d843a27378da08c011b..433ba6524a4e1ec77d9d1656759759a3afeeb41d 100644 (file)
@@ -1314,6 +1314,8 @@ SDValue SelectionDAGLegalize::LegalizeOp(SDValue Op) {
           break;
         case TargetLowering::Expand:
           if (!TLI.isLoadExtLegal(ISD::EXTLOAD, SrcVT)) {
+            // FIXME: If SrcVT isn't legal, then this introduces an illegal
+            // type.
             SDValue Load = DAG.getLoad(SrcVT, dl, Tmp1, Tmp2, LD->getSrcValue(),
                                        LD->getSrcValueOffset(),
                                        LD->isVolatile(), LD->isNonTemporal(),
index 3ab384072aafab41805e9b997b3de1f300c4b26f..6e7aad84de620684e5860ca6a0f9ea2835ab422f 100644 (file)
@@ -12,3 +12,9 @@ define <8 x i16> @test2(<8 x i32> %a) nounwind {
   %c = trunc <8 x i32> %a to <8 x i16>            ; <<8 x i16>> [#uses=1]
   ret <8 x i16> %c
 }
+
+; PR7993
+;define <4 x i32> @test3(<4 x i16> %a) nounwind {
+;  %c = sext <4 x i16> %a to <4 x i32>             ; <<4 x i32>> [#uses=1]
+;  ret <4 x i32> %c
+;}
index 6f18d13cc9d3c92a92b6a4f99d82ff4f784d6ae2..fd3e84e7fe0c83ccef1abb9dc3558a3d3df3be45 100644 (file)
@@ -1,5 +1,6 @@
-; RUN: llc < %s -march=x86-64 
-; RUN: llc < %s -march=x86-64 -disable-mmx
+; RUN: llc < %s -march=x86-64 -mcpu=core2
+; RUN: llc < %s -march=x86-64 -mcpu=core2 -disable-mmx
+
 
 define <8 x i32> @a(<8 x i16> %a) nounwind {
   %c = sext <8 x i16> %a to <8 x i32>