[AArch64] Fix miscompile of sdiv-by-power-of-2.
[oota-llvm.git] / lib / Target / AArch64 / AArch64FastISel.cpp
index 46263020300ad63d1a2509a5c91922399d1b2a1a..5972d4aad78ba33c6461d9383c3f4bd3142e9cac 100644 (file)
@@ -4515,9 +4515,8 @@ bool AArch64FastISel::selectSDiv(const Instruction *I) {
     return true;
   }
 
-  unsigned Pow2MinusOne = (1 << Lg2) - 1;
-  unsigned AddReg = emitAddSub_ri(/*UseAdd=*/true, VT, Src0Reg,
-                                  /*IsKill=*/false, Pow2MinusOne);
+  int64_t Pow2MinusOne = (1ULL << Lg2) - 1;
+  unsigned AddReg = emitAdd_ri_(VT, Src0Reg, /*IsKill=*/false, Pow2MinusOne);
   if (!AddReg)
     return false;