diff options
author | Craig Topper <craig.topper@intel.com> | 2017-11-30 20:15:31 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2017-11-30 20:15:31 +0000 |
commit | d4257565cfa4173492b0c4d0fa85d37b9fad6e2a (patch) | |
tree | 54baf1c48156be5d5f6944c9059b0e2437840015 /llvm/lib/Target/X86/X86ISelLowering.cpp | |
parent | ef3b80c57ba7c1c910a1d31548cf51f630913a04 (diff) | |
download | bcm5719-llvm-d4257565cfa4173492b0c4d0fa85d37b9fad6e2a.tar.gz bcm5719-llvm-d4257565cfa4173492b0c4d0fa85d37b9fad6e2a.zip |
[X86] Promote i8 CTPOP to i32 instead of i16 when we have the POPCNT instruction.
The 32-bit version is shorter to encode and the zext we emit for the promotion is likely going to be a 32-bit zero extend anyway.
llvm-svn: 319468
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 54523d7233e..45246421bab 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -399,7 +399,7 @@ X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM, setTruncStoreAction(MVT::f80, MVT::f16, Expand); if (Subtarget.hasPOPCNT()) { - setOperationAction(ISD::CTPOP , MVT::i8 , Promote); + setOperationPromotedToType(ISD::CTPOP, MVT::i8, MVT::i32); } else { setOperationAction(ISD::CTPOP , MVT::i8 , Expand); setOperationAction(ISD::CTPOP , MVT::i16 , Expand); |