mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-27 14:34:58 +00:00
Shift amounts should have the type given by
getShiftAmountTy (i32 in the case of CellSPU). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58449 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2eb13c347f
commit
fa7935fcb3
@ -2175,17 +2175,17 @@ static SDValue LowerI8Math(SDValue Op, SelectionDAG &DAG, unsigned Opc)
|
||||
? DAG.getNode(ISD::ZERO_EXTEND, MVT::i16, N0)
|
||||
: DAG.getConstant(cast<ConstantSDNode>(N0)->getZExtValue(),
|
||||
MVT::i16));
|
||||
N1Opc = N1.getValueType().bitsLT(MVT::i16)
|
||||
N1Opc = N1.getValueType().bitsLT(MVT::i32)
|
||||
? ISD::ZERO_EXTEND
|
||||
: ISD::TRUNCATE;
|
||||
N1 = (N1.getOpcode() != ISD::Constant
|
||||
? DAG.getNode(N1Opc, MVT::i16, N1)
|
||||
? DAG.getNode(N1Opc, MVT::i32, N1)
|
||||
: DAG.getConstant(cast<ConstantSDNode>(N1)->getZExtValue(),
|
||||
MVT::i16));
|
||||
MVT::i32));
|
||||
SDValue ExpandArg =
|
||||
DAG.getNode(ISD::OR, MVT::i16, N0,
|
||||
DAG.getNode(ISD::SHL, MVT::i16,
|
||||
N0, DAG.getConstant(8, MVT::i16)));
|
||||
N0, DAG.getConstant(8, MVT::i32)));
|
||||
return DAG.getNode(ISD::TRUNCATE, MVT::i8,
|
||||
DAG.getNode(Opc, MVT::i16, ExpandArg, N1));
|
||||
}
|
||||
@ -2526,7 +2526,7 @@ static SDValue LowerCTPOP(SDValue Op, SelectionDAG &DAG) {
|
||||
SDValue N = Op.getOperand(0);
|
||||
SDValue Elt0 = DAG.getConstant(0, MVT::i16);
|
||||
SDValue Mask0 = DAG.getConstant(0x0f, MVT::i16);
|
||||
SDValue Shift1 = DAG.getConstant(8, MVT::i16);
|
||||
SDValue Shift1 = DAG.getConstant(8, MVT::i32);
|
||||
|
||||
SDValue Promote = DAG.getNode(SPUISD::PROMOTE_SCALAR, vecVT, N, N);
|
||||
SDValue CNTB = DAG.getNode(SPUISD::CNTB, vecVT, Promote);
|
||||
|
Loading…
x
Reference in New Issue
Block a user