From 341fa09a3c842e8a0df3510d3f9af186ede976c9 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 26 Aug 2010 06:57:07 +0000 Subject: [PATCH] Add a hackaround for PR7993 which is causing failures on x86 builders that lack sse2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112175 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 2 ++ test/CodeGen/X86/sse1.ll | 6 ++++++ test/CodeGen/X86/vec_cast.ll | 5 +++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 849220a7bfe..433ba6524a4 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -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(), diff --git a/test/CodeGen/X86/sse1.ll b/test/CodeGen/X86/sse1.ll index 3ab384072aa..6e7aad84de6 100644 --- a/test/CodeGen/X86/sse1.ll +++ b/test/CodeGen/X86/sse1.ll @@ -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 +;} diff --git a/test/CodeGen/X86/vec_cast.ll b/test/CodeGen/X86/vec_cast.ll index 6f18d13cc9d..fd3e84e7fe0 100644 --- a/test/CodeGen/X86/vec_cast.ll +++ b/test/CodeGen/X86/vec_cast.ll @@ -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>