mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-20 02:58:10 +00:00
Simplify this code. getConstant knows how to make
broadcasted vector constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69634 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ea84e93a42
commit
bd209ab9bc
@ -839,16 +839,9 @@ SDValue SelectionDAG::getZeroExtendInReg(SDValue Op, DebugLoc DL, MVT VT) {
|
||||
/// getNOT - Create a bitwise NOT operation as (XOR Val, -1).
|
||||
///
|
||||
SDValue SelectionDAG::getNOT(DebugLoc DL, SDValue Val, MVT VT) {
|
||||
SDValue NegOne;
|
||||
if (VT.isVector()) {
|
||||
MVT EltVT = VT.getVectorElementType();
|
||||
SDValue NegOneElt =
|
||||
getConstant(APInt::getAllOnesValue(EltVT.getSizeInBits()), EltVT);
|
||||
std::vector<SDValue> NegOnes(VT.getVectorNumElements(), NegOneElt);
|
||||
NegOne = getNode(ISD::BUILD_VECTOR, DL, VT, &NegOnes[0], NegOnes.size());
|
||||
} else {
|
||||
NegOne = getConstant(APInt::getAllOnesValue(VT.getSizeInBits()), VT);
|
||||
}
|
||||
MVT EltVT = VT.isVector() ? VT.getVectorElementType() : VT;
|
||||
SDValue NegOne =
|
||||
getConstant(APInt::getAllOnesValue(EltVT.getSizeInBits()), VT);
|
||||
return getNode(ISD::XOR, DL, VT, Val, NegOne);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user