Pull in r271548 from upstream llvm trunk (by me):

Only attempt to detect AVG if SSE2 is available

  Summary:
  In PR29973 Sanjay Patel reported an assertion failure when a certain
  loop was optimized, for a target without SSE2 support.  It turned out
  this was because of the AVG pattern detection introduced in rL253952.

  Prevent the assertion failure by bailing out early in
  `detectAVGPattern()`, if the target does not support SSE2.

  Also add a minimized test case.

  Reviewers: congh, eli.friedman, spatel

  Subscribers: emaste, llvm-commits

  Differential Revision: http://reviews.llvm.org/D20905

This should fix assertion failures ("Requires at least SSE2!") when
building the games/0ad port with CPUTYPE=pentium3.

Reported by:	madpilot
This commit is contained in:
dim 2016-06-02 19:54:38 +00:00
parent 6f31a383cc
commit 370a96c692
2 changed files with 3 additions and 1 deletions

View File

@ -26159,6 +26159,8 @@ static SDValue detectAVGPattern(SDValue In, EVT VT, SelectionDAG &DAG,
if (InScalarVT.getSizeInBits() <= ScalarVT.getSizeInBits())
return SDValue();
if (!Subtarget->hasSSE2())
return SDValue();
if (Subtarget->hasAVX512()) {
if (VT.getSizeInBits() > 512)
return SDValue();

View File

@ -9,4 +9,4 @@
#define SVN_REVISION "262564"
#define FREEBSD_CC_VERSION 1100003U
#define FREEBSD_CC_VERSION 1100004U