[PATCH] D123881: [X86] Move some hasOneUse checks after checking what the opcode is.
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 16 14:19:32 PDT 2022
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGc6fdb1de47bd: [X86] Move some hasOneUse checks after checking what the opcode is. (authored by craig.topper).
Changed prior to commit:
https://reviews.llvm.org/D123881?vs=423182&id=423264#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D123881/new/
https://reviews.llvm.org/D123881
Files:
llvm/lib/Target/X86/X86ISelLowering.cpp
Index: llvm/lib/Target/X86/X86ISelLowering.cpp
===================================================================
--- llvm/lib/Target/X86/X86ISelLowering.cpp
+++ llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -48883,9 +48883,10 @@
}
// Try to fold a VTRUNCUS or VTRUNCS into a truncating store.
- if (!St->isTruncatingStore() && StoredVal.hasOneUse() &&
+ if (!St->isTruncatingStore() &&
(StoredVal.getOpcode() == X86ISD::VTRUNCUS ||
StoredVal.getOpcode() == X86ISD::VTRUNCS) &&
+ StoredVal.hasOneUse() &&
TLI.isTruncStoreLegal(StoredVal.getOperand(0).getValueType(), VT)) {
bool IsSigned = StoredVal.getOpcode() == X86ISD::VTRUNCS;
return EmitTruncSStore(IsSigned, St->getChain(),
@@ -48894,15 +48895,15 @@
}
// Try to fold a extract_element(VTRUNC) pattern into a truncating store.
- if (!St->isTruncatingStore() && StoredVal.hasOneUse()) {
+ if (!St->isTruncatingStore()) {
auto IsExtractedElement = [](SDValue V) {
- if (V.getOpcode() == ISD::TRUNCATE && V.getOperand(0).hasOneUse())
+ if (V.getOpcode() == ISD::TRUNCATE && V.hasOneUse())
V = V.getOperand(0);
unsigned Opc = V.getOpcode();
- if (Opc == ISD::EXTRACT_VECTOR_ELT || Opc == X86ISD::PEXTRW) {
- if (V.getOperand(0).hasOneUse() && isNullConstant(V.getOperand(1)))
- return V.getOperand(0);
- }
+ if ((Opc == ISD::EXTRACT_VECTOR_ELT || Opc == X86ISD::PEXTRW) &&
+ isNullConstant(V.getOperand(1)) && V.hasOneUse() &&
+ V.getOperand(0).hasOneUse())
+ return V.getOperand(0);
return SDValue();
};
if (SDValue Extract = IsExtractedElement(StoredVal)) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D123881.423264.patch
Type: text/x-patch
Size: 1671 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220416/07668439/attachment.bin>
More information about the llvm-commits
mailing list