mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
Tidied up TRUNC combine code. NFC.
Make use of DAG.getBitcast and use clang-format to reduce number of lines (and make it more readable). llvm-svn: 258644
This commit is contained in:
parent
640b3f9212
commit
47c949cc50
@ -7020,12 +7020,11 @@ SDValue DAGCombiner::visitTRUNCATE(SDNode *N) {
|
||||
if (N0.getOpcode() == ISD::ZERO_EXTEND ||
|
||||
N0.getOpcode() == ISD::SIGN_EXTEND ||
|
||||
N0.getOpcode() == ISD::ANY_EXTEND) {
|
||||
// if the source is smaller than the dest, we still need an extend.
|
||||
if (N0.getOperand(0).getValueType().bitsLT(VT))
|
||||
// if the source is smaller than the dest, we still need an extend
|
||||
return DAG.getNode(N0.getOpcode(), SDLoc(N), VT,
|
||||
N0.getOperand(0));
|
||||
return DAG.getNode(N0.getOpcode(), SDLoc(N), VT, N0.getOperand(0));
|
||||
// if the source is larger than the dest, than we just need the truncate.
|
||||
if (N0.getOperand(0).getValueType().bitsGT(VT))
|
||||
// if the source is larger than the dest, than we just need the truncate
|
||||
return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, N0.getOperand(0));
|
||||
// if the source and dest are the same type, we can drop both the extend
|
||||
// and the truncate.
|
||||
@ -7061,12 +7060,9 @@ SDValue DAGCombiner::visitTRUNCATE(SDNode *N) {
|
||||
EVT IndexTy = TLI.getVectorIdxTy(DAG.getDataLayout());
|
||||
int Index = isLE ? (Elt*SizeRatio) : (Elt*SizeRatio + (SizeRatio-1));
|
||||
|
||||
SDValue V = DAG.getNode(ISD::BITCAST, SDLoc(N),
|
||||
NVT, N0.getOperand(0));
|
||||
|
||||
SDLoc DL(N);
|
||||
return DAG.getNode(ISD::EXTRACT_VECTOR_ELT,
|
||||
DL, TrTy, V,
|
||||
return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, TrTy,
|
||||
DAG.getBitcast(NVT, N0.getOperand(0)),
|
||||
DAG.getConstant(Index, DL, IndexTy));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user