Author: rengolin
Date: Thu Aug 20 11:41:22 2015
New Revision: 245578

URL: http://llvm.org/viewvc/llvm-project?rev=245578&view=rev
Log:
Merge r245577 into branch_37

[ARM] Don't try and custom lower a vNi64 SETCC.

It won't go well. We've already marked 64-bit SETCCs as non-Custom, but it's
just possible that a SETCC has a legal result type but an illegal operand
type. If this happens, bail out before we create unselectable nodes.

Fixes PR24292. I tried to create a testcase but in 99% of cases we can't
trigger this - not surprising that this bug has been latent since 2009.

Modified:
    llvm/branches/release_37/lib/Target/ARM/ARMISelLowering.cpp

Modified: llvm/branches/release_37/lib/Target/ARM/ARMISelLowering.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/branches/release_37/lib/Target/ARM/ARMISelLowering.cpp?rev=245578&r1=245577&r2=245578&view=diff
==============================================================================
--- llvm/branches/release_37/lib/Target/ARM/ARMISelLowering.cpp (original)
+++ llvm/branches/release_37/lib/Target/ARM/ARMISelLowering.cpp Thu Aug 20 
11:41:22 2015
@@ -4583,6 +4583,12 @@ static SDValue LowerVSETCC(SDValue Op, S
   ISD::CondCode SetCCOpcode = cast<CondCodeSDNode>(CC)->get();
   SDLoc dl(Op);
 
+  if (CmpVT.getVectorElementType() == MVT::i64)
+    // 64-bit comparisons are not legal. We've marked SETCC as non-Custom,
+    // but it's possible that our operands are 64-bit but our result is 32-bit.
+    // Bail in this case.
+    return SDValue();
+
   if (Op1.getValueType().isFloatingPoint()) {
     switch (SetCCOpcode) {
     default: llvm_unreachable("Illegal FP comparison");


_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to