diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp index de1f014d83e..5c133f12e44 100644 --- a/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -403,10 +403,6 @@ static bool isCalleeLoad(SDValue Callee, SDValue &Chain, bool HasCallSeq) { LD->getExtensionType() != ISD::NON_EXTLOAD) return false; - // FIXME: Calls can't fold loads through segment registers yet. - if (LD->getPointerInfo().getAddrSpace() > 255) - return false; - // Now let's find the callseq_start. while (HasCallSeq && Chain.getOpcode() != ISD::CALLSEQ_START) { if (!Chain.hasOneUse()) diff --git a/test/CodeGen/X86/movgs.ll b/test/CodeGen/X86/movgs.ll index ed201f36e92..3a249470d46 100644 --- a/test/CodeGen/X86/movgs.ll +++ b/test/CodeGen/X86/movgs.ll @@ -26,10 +26,8 @@ entry: ; rdar://8453210 ; X32: test2: -; X32: movl %gs:(%eax), %eax -; X32: movl %eax, (%esp) -; X32: call *%eax +; X32: movl 16(%esp), %eax +; X32: call *%gs:(%eax) ; X64: test2: -; X64: movq %gs:(%rdi), %rax -; X64: callq *%rax +; X64: callq *%gs:(%rdi)