summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2017-11-30 20:15:31 +0000
committerCraig Topper <craig.topper@intel.com>2017-11-30 20:15:31 +0000
commitd4257565cfa4173492b0c4d0fa85d37b9fad6e2a (patch)
tree54baf1c48156be5d5f6944c9059b0e2437840015 /llvm/lib
parentef3b80c57ba7c1c910a1d31548cf51f630913a04 (diff)
downloadbcm5719-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')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp2
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);
OpenPOWER on IntegriCloud