mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-30 20:24:32 +00:00
Make sure to legalize generated ctpop nodes, convert tabs to spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21868 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1151,19 +1151,19 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
|
|||||||
DAG.getNode(ISD::SRL, VT, Tmp1, Tmp3));
|
DAG.getNode(ISD::SRL, VT, Tmp1, Tmp3));
|
||||||
}
|
}
|
||||||
Tmp3 = DAG.getNode(ISD::XOR, VT, Tmp1, DAG.getConstant(~0ULL, VT));
|
Tmp3 = DAG.getNode(ISD::XOR, VT, Tmp1, DAG.getConstant(~0ULL, VT));
|
||||||
Result = DAG.getNode(ISD::CTPOP, VT, Tmp3);
|
Result = LegalizeOp(DAG.getNode(ISD::CTPOP, VT, Tmp3));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ISD::CTTZ: {
|
case ISD::CTTZ: {
|
||||||
// for now, we use: { return popcount(~x & (x - 1)); }
|
// for now, we use: { return popcount(~x & (x - 1)); }
|
||||||
// but see also http://www.hackersdelight.org/HDcode/ntz.cc )
|
// but see also http://www.hackersdelight.org/HDcode/ntz.cc
|
||||||
MVT::ValueType VT = Tmp1.getValueType();
|
MVT::ValueType VT = Tmp1.getValueType();
|
||||||
Tmp2 = DAG.getConstant(~0ULL, VT);
|
Tmp2 = DAG.getConstant(~0ULL, VT);
|
||||||
Tmp3 = DAG.getNode(ISD::AND, VT,
|
Tmp3 = DAG.getNode(ISD::AND, VT,
|
||||||
DAG.getNode(ISD::XOR, VT, Tmp1, Tmp2),
|
DAG.getNode(ISD::XOR, VT, Tmp1, Tmp2),
|
||||||
DAG.getNode(ISD::SUB, VT, Tmp1,
|
DAG.getNode(ISD::SUB, VT, Tmp1,
|
||||||
DAG.getConstant(1, VT)));
|
DAG.getConstant(1, VT)));
|
||||||
Result = DAG.getNode(ISD::CTPOP, VT, Tmp3);
|
Result = LegalizeOp(DAG.getNode(ISD::CTPOP, VT, Tmp3));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
Reference in New Issue
Block a user