mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-26 22:26:16 +00:00
Fix more code to work properly with vector operands. Based on
a patch my Micah Villmow for PR6465. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97692 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
992e61992c
commit
6900a39d28
@ -1758,7 +1758,7 @@ SDValue DAGCombiner::visitAND(SDNode *N) {
|
||||
ConstantSDNode *N0C = dyn_cast<ConstantSDNode>(N0);
|
||||
ConstantSDNode *N1C = dyn_cast<ConstantSDNode>(N1);
|
||||
EVT VT = N1.getValueType();
|
||||
unsigned BitWidth = VT.getSizeInBits();
|
||||
unsigned BitWidth = VT.getScalarType().getSizeInBits();
|
||||
|
||||
// fold vector ops
|
||||
if (VT.isVector()) {
|
||||
@ -1872,9 +1872,9 @@ SDValue DAGCombiner::visitAND(SDNode *N) {
|
||||
EVT MemVT = LN0->getMemoryVT();
|
||||
// If we zero all the possible extended bits, then we can turn this into
|
||||
// a zextload if we are running before legalize or the operation is legal.
|
||||
unsigned BitWidth = N1.getValueSizeInBits();
|
||||
unsigned BitWidth = N1.getValueType().getScalarType().getSizeInBits();
|
||||
if (DAG.MaskedValueIsZero(N1, APInt::getHighBitsSet(BitWidth,
|
||||
BitWidth - MemVT.getSizeInBits())) &&
|
||||
BitWidth - MemVT.getScalarType().getSizeInBits())) &&
|
||||
((!LegalOperations && !LN0->isVolatile()) ||
|
||||
TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT))) {
|
||||
SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, N0.getDebugLoc(), VT,
|
||||
@ -1895,9 +1895,9 @@ SDValue DAGCombiner::visitAND(SDNode *N) {
|
||||
EVT MemVT = LN0->getMemoryVT();
|
||||
// If we zero all the possible extended bits, then we can turn this into
|
||||
// a zextload if we are running before legalize or the operation is legal.
|
||||
unsigned BitWidth = N1.getValueSizeInBits();
|
||||
unsigned BitWidth = N1.getValueType().getScalarType().getSizeInBits();
|
||||
if (DAG.MaskedValueIsZero(N1, APInt::getHighBitsSet(BitWidth,
|
||||
BitWidth - MemVT.getSizeInBits())) &&
|
||||
BitWidth - MemVT.getScalarType().getSizeInBits())) &&
|
||||
((!LegalOperations && !LN0->isVolatile()) ||
|
||||
TLI.isLoadExtLegal(ISD::ZEXTLOAD, MemVT))) {
|
||||
SDValue ExtLoad = DAG.getExtLoad(ISD::ZEXTLOAD, N0.getDebugLoc(), VT,
|
||||
|
Loading…
Reference in New Issue
Block a user