--- BasicAliasAnalysis.cpp	2017-12-21 13:41:53.000000000 -0800
+++ llvm/lib/Analysis/BasicAliasAnalysis.cpp	2018-03-19 13:04:03.444216231 -0700
@@ -363,9 +363,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
