Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 24 Sep 2016 20:53:05 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r306302 - projects/clang390-import/contrib/llvm/lib/Target/X86
Message-ID:  <201609242053.u8OKr5ww063385@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sat Sep 24 20:53:05 2016
New Revision: 306302
URL: https://svnweb.freebsd.org/changeset/base/306302

Log:
  Pull in r282336 from upstream llvm trunk (by Sanjay Patel):
  
    [x86] don't try to create a vector integer inst for an SSE1 target
    (PR30512)
  
    This bug was introduced with:
    http://reviews.llvm.org/rL272511
  
    We need to restrict the lowering to v4f32 comparisons because that's
    all SSE1 can handle.
  
    This should fix:
    https://llvm.org/bugs/show_bug.cgi?id=28044
  
  This avoids a "Do not know how to custom type legalize this operation"
  error when building the multimedia/ffmpeg port on i386 with SSE enabled.

Modified:
  projects/clang390-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp

Modified: projects/clang390-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp
==============================================================================
--- projects/clang390-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp	Sat Sep 24 19:03:05 2016	(r306301)
+++ projects/clang390-import/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp	Sat Sep 24 20:53:05 2016	(r306302)
@@ -30358,9 +30358,10 @@ static SDValue combineSetCC(SDNode *N, S
     }
   }
 
-  // For an SSE1-only target, lower to X86ISD::CMPP early to avoid scalarization
-  // via legalization because v4i32 is not a legal type.
-  if (Subtarget.hasSSE1() && !Subtarget.hasSSE2() && VT == MVT::v4i32)
+  // For an SSE1-only target, lower a comparison of v4f32 to X86ISD::CMPP early
+  // to avoid scalarization via legalization because v4i32 is not a legal type.
+  if (Subtarget.hasSSE1() && !Subtarget.hasSSE2() && VT == MVT::v4i32 &&
+      LHS.getValueType() == MVT::v4f32)
     return LowerVSETCC(SDValue(N, 0), Subtarget, DAG);
 
   return SDValue();



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201609242053.u8OKr5ww063385>