diff options
| author | Craig Topper <craig.topper@gmail.com> | 2012-08-13 03:42:38 +0000 | 
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2012-08-13 03:42:38 +0000 | 
| commit | 4e5eb727353a3f152094a8d05eb8ae7491ce23f7 (patch) | |
| tree | 17f7693b0eec7d3d4be7fbc703f2958c49cdf556 /llvm/lib/Target | |
| parent | 5145a0d967843240d8032f7f3b4d9c36bd673b0a (diff) | |
| download | bcm5719-llvm-4e5eb727353a3f152094a8d05eb8ae7491ce23f7.tar.gz bcm5719-llvm-4e5eb727353a3f152094a8d05eb8ae7491ce23f7.zip | |
Tidy up VSETCC lowering code a bit more by adding an llvm_unreachable and putting an a couple if conditions in a better order.
llvm-svn: 161746
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 16 | 
1 files changed, 9 insertions, 7 deletions
| diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index cff15c2d1bb..7c6d9adec77 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -8558,7 +8558,7 @@ SDValue X86TargetLowering::LowerVSETCC(SDValue Op, SelectionDAG &DAG) const {      //  6 - NLE      //  7 - ORD      switch (SetCCOpcode) { -    default: llvm_unreachable("Unknown SetCC condition"); +    default: llvm_unreachable("Unexpected SETCC condition");      case ISD::SETOEQ:      case ISD::SETEQ:  SSECC = 0; break;      case ISD::SETOGT: @@ -8612,11 +8612,11 @@ SDValue X86TargetLowering::LowerVSETCC(SDValue Op, SelectionDAG &DAG) const {    // We are handling one of the integer comparisons here.  Since SSE only has    // GT and EQ comparisons for integer, swapping operands and multiple    // operations may be required for some comparisons. -  unsigned Opc = 0; +  unsigned Opc;    bool Swap = false, Invert = false, FlipSigns = false;    switch (SetCCOpcode) { -  default: break; +  default: llvm_unreachable("Unexpected SETCC condition");    case ISD::SETNE:  Invert = true;    case ISD::SETEQ:  Opc = X86ISD::PCMPEQ; break;    case ISD::SETLT:  Swap = true; @@ -8633,10 +8633,12 @@ SDValue X86TargetLowering::LowerVSETCC(SDValue Op, SelectionDAG &DAG) const {    // Check that the operation in question is available (most are plain SSE2,    // but PCMPGTQ and PCMPEQQ have different requirements). -  if (Opc == X86ISD::PCMPGT && VT == MVT::v2i64 && !Subtarget->hasSSE42()) -    return SDValue(); -  if (Opc == X86ISD::PCMPEQ && VT == MVT::v2i64 && !Subtarget->hasSSE41()) -    return SDValue(); +  if (VT == MVT::v2i64) { +    if (Opc == X86ISD::PCMPGT && !Subtarget->hasSSE42()) +      return SDValue(); +    if (Opc == X86ISD::PCMPEQ && !Subtarget->hasSSE41()) +      return SDValue(); +  }    // Since SSE has no unsigned integer comparisons, we need to flip  the sign    // bits of the inputs before performing those operations. | 

