diff options
author | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2016-05-07 01:11:17 +0000 |
---|---|---|
committer | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2016-05-07 01:11:17 +0000 |
commit | 04a8fc2e37baf725aa641e789b7237f19d5b515d (patch) | |
tree | 999608823be7cec67ac31f5f9ee4459c8436c261 /llvm/test/CodeGen/X86/anyext.ll | |
parent | 068ac4af391339fc0639e825b51ef53d1a792174 (diff) | |
download | bcm5719-llvm-04a8fc2e37baf725aa641e789b7237f19d5b515d.tar.gz bcm5719-llvm-04a8fc2e37baf725aa641e789b7237f19d5b515d.zip |
[X86] Teach X86FixupBWInsts to promote MOV8rr/MOV16rr to MOV32rr.
This re-applies r268760, reverted in r268794.
Fixes http://llvm.org/PR27670
The original imp-defs assertion was way overzealous: forward all
implicit operands, except imp-defs of the new super-reg def (r268787
for GR64, but also possible for GR16->GR32), or imp-uses of the new
super-reg use.
While there, mark the source use as Undef, and add an imp-use of the
old source reg: that should cover any case of dead super-regs.
At the stage the pass runs, flags are unlikely to matter anyway;
still, let's be as correct as possible.
Also add MIR tests for the various interesting cases.
Original commit message:
Codesize is less (16) or equal (8), and we avoid partial
dependencies.
Differential Revision: http://reviews.llvm.org/D19999
llvm-svn: 268831
Diffstat (limited to 'llvm/test/CodeGen/X86/anyext.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/anyext.ll | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/test/CodeGen/X86/anyext.ll b/llvm/test/CodeGen/X86/anyext.ll index 0117932035d..3c53983fe4e 100644 --- a/llvm/test/CodeGen/X86/anyext.ll +++ b/llvm/test/CodeGen/X86/anyext.ll @@ -39,7 +39,7 @@ define i32 @bar(i32 %p, i16 zeroext %x) nounwind { ; X64-LABEL: bar: ; X64: # BB#0: ; X64-NEXT: xorl %edx, %edx -; X64-NEXT: movw %di, %ax +; X64-NEXT: movl %edi, %eax ; X64-NEXT: divw %si ; X64-NEXT: andl $1, %eax ; X64-NEXT: retq |