--- llvm/lib/Analysis/BasicAliasAnalysis.cpp	2017-01-27 11:16:33.000000000 -0500
+++ ../BasicAliasAnalysis.cpp	2017-09-24 08:14:45.995366393 -0400
@@ -340,9 +340,12 @@
 /// particular for 32b programs with negative indices that rely on two's
 /// complement wrap-arounds for precise alias information.
 static int64_t adjustToPointerSize(int64_t Offset, unsigned PointerSize) {
-  assert(PointerSize <= 64 && "Invalid PointerSize!");
-  unsigned ShiftBits = 64 - PointerSize;
-  return (int64_t)((uint64_t)Offset << ShiftBits) >> ShiftBits;
+  if (PointerSize < 64) {
+    unsigned ShiftBits = 64 - PointerSize;
+    return (int64_t)((uint64_t)Offset << ShiftBits) >> ShiftBits;
+  } else {
+    return Offset;
+  }
 }
 
 /// If V is a symbolic pointer expression, decompose it into a base pointer
