summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMichael Kuperstein <michael.m.kuperstein@intel.com>2014-11-10 20:40:21 +0000
committerMichael Kuperstein <michael.m.kuperstein@intel.com>2014-11-10 20:40:21 +0000
commit3218b942f489c57224ebf57c9b93274b6b5d8434 (patch)
tree5b67b2d6f13c001571309ba9bcabc793baa3a1db /llvm/lib
parent95dcc08e8261fca01e8879b25055d3b4762d60c6 (diff)
downloadbcm5719-llvm-3218b942f489c57224ebf57c9b93274b6b5d8434.tar.gz
bcm5719-llvm-3218b942f489c57224ebf57c9b93274b6b5d8434.zip
[X86] Fix pattern match for 32-to-64-bit zext in the presence of AssertSext
This fixes an issue with matching trunc -> assertsext -> zext on x86-64, which would not zero the high 32-bits. See PR20494 for details. Differential Revision: http://reviews.llvm.org/D6128 llvm-svn: 221626
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86InstrCompiler.td1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrCompiler.td b/llvm/lib/Target/X86/X86InstrCompiler.td
index bf25672b2f6..117b6ff2103 100644
--- a/llvm/lib/Target/X86/X86InstrCompiler.td
+++ b/llvm/lib/Target/X86/X86InstrCompiler.td
@@ -1191,6 +1191,7 @@ def def32 : PatLeaf<(i32 GR32:$src), [{
return N->getOpcode() != ISD::TRUNCATE &&
N->getOpcode() != TargetOpcode::EXTRACT_SUBREG &&
N->getOpcode() != ISD::CopyFromReg &&
+ N->getOpcode() != ISD::AssertSext &&
N->getOpcode() != X86ISD::CMOV;
}]>;
OpenPOWER on IntegriCloud