summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86ISelDAGToDAG.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2008-08-17 19:22:34 +0000
committerEvan Cheng <evan.cheng@apple.com>2008-08-17 19:22:34 +0000
commit0ac3fc2a61f77af74ccde3dcd437d0f72b736b8f (patch)
tree66b37f69e4ff96fd29759517aab3a3874c1caa43 /lib/Target/X86/X86ISelDAGToDAG.cpp
parent8715367182244e784b9f5688baf1ed607768e687 (diff)
downloadllvm-0ac3fc2a61f77af74ccde3dcd437d0f72b736b8f.tar.gz
llvm-0ac3fc2a61f77af74ccde3dcd437d0f72b736b8f.tar.bz2
llvm-0ac3fc2a61f77af74ccde3dcd437d0f72b736b8f.tar.xz
Fix a (u)comiss intrinsic lowering bug. It was using anyext which can return junk in higher bits. Patch by Nate Begeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54903 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86ISelDAGToDAG.cpp')
-rw-r--r--lib/Target/X86/X86ISelDAGToDAG.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp
index b76d3e23cf..2bd875e92e 100644
--- a/lib/Target/X86/X86ISelDAGToDAG.cpp
+++ b/lib/Target/X86/X86ISelDAGToDAG.cpp
@@ -1515,6 +1515,8 @@ SDNode *X86DAGToDAGISel::Select(SDValue N) {
SDValue N0 = Node->getOperand(0);
// Get the subregsiter index for the type to extend.
MVT N0VT = N0.getValueType();
+ // FIXME: In x86-32, 8-bit value may be in AH, etc. which don't have
+ // super-registers.
unsigned Idx = (N0VT == MVT::i32) ? X86::SUBREG_32BIT :
(N0VT == MVT::i16) ? X86::SUBREG_16BIT :
(Subtarget->is64Bit()) ? X86::SUBREG_8BIT : 0;