return Chain;
}
}
- // If this is a store followed by a store with the same value to the same
- // location, then the store is dead/noop.
- if (StoreSDNode *ST1 = dyn_cast<StoreSDNode>(Chain)) {
- if (ST1->getBasePtr() == Ptr && ST->getMemoryVT() == ST1->getMemoryVT() &&
- ST1->getValue() == Value && ST->isUnindexed() && !ST->isVolatile() &&
- ST1->isUnindexed() &&
- !ST1->isVolatile() &&
- // There can't be any side effects between the two stores, such as
- // a call or store.
- Chain.reachesChainWithoutSideEffects(SDValue(ST1, 0))) {
- // The store is dead, remove it.
- return Chain;
- }
- }
// If this is an FP_ROUND or TRUNC followed by a store, fold this into a
// truncating store. We can do this even if this is already a truncstore.