[llvm] r267773 - [X86]: Quit promoting 16 bit loads to 32 bit.
Kevin B. Smith via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 27 12:58:04 PDT 2016
Author: kbsmith1
Date: Wed Apr 27 14:58:03 2016
New Revision: 267773
URL: http://llvm.org/viewvc/llvm-project?rev=267773&view=rev
Log:
[X86]: Quit promoting 16 bit loads to 32 bit.
Differential Revision: http://reviews.llvm.org/D19592
Modified:
llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
llvm/trunk/test/CodeGen/X86/half.ll
Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=267773&r1=267772&r2=267773&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Wed Apr 27 14:58:03 2016
@@ -29639,23 +29639,6 @@ bool X86TargetLowering::IsDesirableToPro
bool Commute = false;
switch (Op.getOpcode()) {
default: break;
- case ISD::LOAD: {
- LoadSDNode *LD = cast<LoadSDNode>(Op);
- // If the non-extending load has a single use and it's not live out, then it
- // might be folded.
- if (LD->getExtensionType() == ISD::NON_EXTLOAD /*&&
- Op.hasOneUse()*/) {
- for (SDNode::use_iterator UI = Op.getNode()->use_begin(),
- UE = Op.getNode()->use_end(); UI != UE; ++UI) {
- // The only case where we'd want to promote LOAD (rather then it being
- // promoted as an operand is when it's only use is liveout.
- if (UI->getOpcode() != ISD::CopyToReg)
- return false;
- }
- }
- Promote = true;
- break;
- }
case ISD::SIGN_EXTEND:
case ISD::ZERO_EXTEND:
case ISD::ANY_EXTEND:
Modified: llvm/trunk/test/CodeGen/X86/half.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/half.ll?rev=267773&r1=267772&r2=267773&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/half.ll (original)
+++ llvm/trunk/test/CodeGen/X86/half.ll Wed Apr 27 14:58:03 2016
@@ -19,7 +19,8 @@ define void @test_load_store(half* %in,
define i16 @test_bitcast_from_half(half* %addr) {
; CHECK-LABEL: test_bitcast_from_half:
-; CHECK: movzwl (%rdi), %eax
+; BWON: movzwl (%rdi), %eax
+; BWOFF: movw (%rdi), %ax
%val = load half, half* %addr
%val_int = bitcast half %val to i16
ret i16 %val_int
More information about the llvm-commits
mailing list