diff options
| -rw-r--r-- | llvm/lib/Target/X86/X86FastISel.cpp | 8 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 4 | 
2 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/X86FastISel.cpp b/llvm/lib/Target/X86/X86FastISel.cpp index 15894390cfa..cca2fd8b5ef 100644 --- a/llvm/lib/Target/X86/X86FastISel.cpp +++ b/llvm/lib/Target/X86/X86FastISel.cpp @@ -60,8 +60,8 @@ public:    explicit X86FastISel(FunctionLoweringInfo &funcInfo) : FastISel(funcInfo) {      Subtarget = &TM.getSubtarget<X86Subtarget>();      StackPtr = Subtarget->is64Bit() ? X86::RSP : X86::ESP; -    X86ScalarSSEf64 = Subtarget->hasSSE2() || Subtarget->hasAVX(); -    X86ScalarSSEf32 = Subtarget->hasSSE1() || Subtarget->hasAVX(); +    X86ScalarSSEf64 = Subtarget->hasXMMInt(); +    X86ScalarSSEf32 = Subtarget->hasXMM();    }    virtual bool TargetSelectInstruction(const Instruction *I); @@ -837,8 +837,8 @@ bool X86FastISel::X86SelectLoad(const Instruction *I)  {  static unsigned X86ChooseCmpOpcode(EVT VT, const X86Subtarget *Subtarget) {    bool HasAVX = Subtarget->hasAVX(); -  bool X86ScalarSSEf32 = HasAVX || Subtarget->hasSSE1(); -  bool X86ScalarSSEf64 = HasAVX || Subtarget->hasSSE2(); +  bool X86ScalarSSEf32 = Subtarget->hasXMM(); +  bool X86ScalarSSEf64 = Subtarget->hasXMMInt();    switch (VT.getSimpleVT().SimpleTy) {    default:       return 0; diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 71d4b985d52..20881616905 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -7630,7 +7630,7 @@ SDValue X86TargetLowering::LowerUINT_TO_FP_i64(SDValue Op,    SDValue Sub = DAG.getNode(ISD::FSUB, dl, MVT::v2f64, XR2F, CLod1);    SDValue Result; -  if (Subtarget->hasSSE3()) { +  if (Subtarget->hasSSE3orAVX()) {      // FIXME: The 'haddpd' instruction may be slower than 'movhlps + addsd'.      Result = DAG.getNode(X86ISD::FHADD, dl, MVT::v2f64, Sub, Sub);    } else { @@ -12894,7 +12894,7 @@ static SDValue PerformSELECTCombine(SDNode *N, SelectionDAG &DAG,    if (Cond.getOpcode() == ISD::SETCC && VT.isFloatingPoint() &&        VT != MVT::f80 && DAG.getTargetLoweringInfo().isTypeLegal(VT) &&        (Subtarget->hasXMMInt() || -       (Subtarget->hasSSE1() && VT.getScalarType() == MVT::f32))) { +       (Subtarget->hasXMM() && VT.getScalarType() == MVT::f32))) {      ISD::CondCode CC = cast<CondCodeSDNode>(Cond.getOperand(2))->get();      unsigned Opcode = 0;  | 

