mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
[X86] Add a paranoia type check to the code that detects AVG patterns from truncating stores.
If we're after type legalize, we should make sure we won't create a store with an illegal type when we separate the AVG pattern from the truncating store. I don't know of a way to fail for this today. Just noticed while I was in the vicinity. llvm-svn: 368608
This commit is contained in:
parent
699ceb4cd6
commit
28b07efb51
@ -39617,11 +39617,12 @@ static SDValue combineStore(SDNode *N, SelectionDAG &DAG,
|
||||
// Check if we can detect an AVG pattern from the truncation. If yes,
|
||||
// replace the trunc store by a normal store with the result of X86ISD::AVG
|
||||
// instruction.
|
||||
if (SDValue Avg = detectAVGPattern(St->getValue(), St->getMemoryVT(), DAG,
|
||||
Subtarget, dl))
|
||||
return DAG.getStore(St->getChain(), dl, Avg, St->getBasePtr(),
|
||||
St->getPointerInfo(), St->getAlignment(),
|
||||
St->getMemOperand()->getFlags());
|
||||
if (DCI.isBeforeLegalize() || TLI.isTypeLegal(St->getMemoryVT()))
|
||||
if (SDValue Avg = detectAVGPattern(St->getValue(), St->getMemoryVT(), DAG,
|
||||
Subtarget, dl))
|
||||
return DAG.getStore(St->getChain(), dl, Avg, St->getBasePtr(),
|
||||
St->getPointerInfo(), St->getAlignment(),
|
||||
St->getMemOperand()->getFlags());
|
||||
|
||||
if (TLI.isTruncStoreLegal(VT, StVT)) {
|
||||
if (SDValue Val = detectSSatPattern(St->getValue(), St->getMemoryVT()))
|
||||
|
Loading…
Reference in New Issue
Block a user