diff --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp index 681f320376ea6..4e71e9f249739 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp @@ -1540,7 +1540,7 @@ bool HexagonDAGToDAGISel::keepsLowBits(const SDValue &Val, unsigned NumBits, break; case ISD::AND: { // Check if this is an AND with NumBits of lower bits set to 1. - uint64_t Mask = (1 << NumBits) - 1; + uint64_t Mask = (1ULL << NumBits) - 1; if (ConstantSDNode *C = dyn_cast(Val.getOperand(0))) { if (C->getZExtValue() == Mask) { Src = Val.getOperand(1); @@ -1558,7 +1558,7 @@ bool HexagonDAGToDAGISel::keepsLowBits(const SDValue &Val, unsigned NumBits, case ISD::OR: case ISD::XOR: { // OR/XOR with the lower NumBits bits set to 0. - uint64_t Mask = (1 << NumBits) - 1; + uint64_t Mask = (1ULL << NumBits) - 1; if (ConstantSDNode *C = dyn_cast(Val.getOperand(0))) { if ((C->getZExtValue() & Mask) == 0) { Src = Val.getOperand(1);