mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 22:04:55 +00:00
Tidy up VSETCC lowering code a bit more by adding an llvm_unreachable and putting an a couple if conditions in a better order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161746 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
523908d1be
commit
2f1b2ec1e7
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user