<div dir="ltr">If you can - please include some info in the commit message on why a patch is being reverted. Helps other folks identify if a revert addresses any issues they're seeing.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Oct 6, 2021 at 11:38 AM Arthur Eubanks via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Author: Arthur Eubanks<br>
Date: 2021-10-06T11:38:11-07:00<br>
New Revision: 569346f27418e4cdde95e0f803fb2799049a53d1<br>
<br>
URL: <a href="https://github.com/llvm/llvm-project/commit/569346f27418e4cdde95e0f803fb2799049a53d1" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/569346f27418e4cdde95e0f803fb2799049a53d1</a><br>
DIFF: <a href="https://github.com/llvm/llvm-project/commit/569346f27418e4cdde95e0f803fb2799049a53d1.diff" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/569346f27418e4cdde95e0f803fb2799049a53d1.diff</a><br>
<br>
LOG: Revert "Reland [IR] Increase max alignment to 4GB"<br>
<br>
This reverts commit 8d64314ffea55f2ad94c1b489586daa8ce30f451.<br>
<br>
Added: <br>
    llvm/test/CodeGen/MIR/X86/load-with-1gb-alignment.mir<br>
<br>
Modified: <br>
    clang/lib/CodeGen/CGBlocks.cpp<br>
    clang/lib/CodeGen/CGCall.cpp<br>
    clang/lib/CodeGen/CGDecl.cpp<br>
    clang/lib/CodeGen/CodeGenModule.cpp<br>
    clang/test/CodeGen/builtin-assume-aligned.c<br>
    clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp<br>
    clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp<br>
    clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp<br>
    clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp<br>
    llvm/include/llvm/Bitcode/BitcodeCommon.h<br>
    llvm/include/llvm/IR/DataLayout.h<br>
    llvm/include/llvm/IR/GlobalObject.h<br>
    llvm/include/llvm/IR/Instruction.h<br>
    llvm/include/llvm/IR/Instructions.h<br>
    llvm/include/llvm/IR/Value.h<br>
    llvm/include/llvm/Transforms/IPO/Attributor.h<br>
    llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h<br>
    llvm/lib/AsmParser/LLParser.cpp<br>
    llvm/lib/Bitcode/Reader/BitcodeReader.cpp<br>
    llvm/lib/Bitcode/Writer/BitcodeWriter.cpp<br>
    llvm/lib/CodeGen/MIRParser/MIParser.cpp<br>
    llvm/lib/CodeGen/SafeStack.cpp<br>
    llvm/lib/IR/DataLayout.cpp<br>
    llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp<br>
    llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp<br>
    llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp<br>
    llvm/test/Assembler/align-inst-alloca.ll<br>
    llvm/test/Assembler/align-inst-load.ll<br>
    llvm/test/Assembler/align-inst-store.ll<br>
    llvm/test/Assembler/align-inst.ll<br>
    llvm/test/Bitcode/Inputs/invalid-align.bc<br>
    llvm/test/Bitcode/inalloca.ll<br>
    llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll<br>
    llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll<br>
    llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll<br>
    llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll<br>
    llvm/test/Transforms/Attributor/callbacks.ll<br>
    llvm/test/Transforms/Attributor/liveness.ll<br>
    llvm/test/Transforms/Attributor/memory_locations.ll<br>
    llvm/test/Transforms/Attributor/noalias.ll<br>
    llvm/test/Transforms/Attributor/nocapture-1.ll<br>
    llvm/test/Transforms/Attributor/noundef.ll<br>
    llvm/test/Transforms/Attributor/undefined_behavior.ll<br>
    llvm/test/Transforms/Attributor/value-simplify.ll<br>
    llvm/test/Transforms/GVN/PRE/2017-06-28-pre-load-dbgloc.ll<br>
    llvm/test/Transforms/InstCombine/atomic.ll<br>
    llvm/test/Transforms/InstCombine/getelementptr.ll<br>
    llvm/test/Transforms/InstCombine/load.ll<br>
    llvm/test/Transforms/InstCombine/mempcpy.ll<br>
    llvm/test/Transforms/InstCombine/pr44245.ll<br>
    llvm/test/Transforms/InstCombine/store.ll<br>
    llvm/test/Transforms/OpenMP/parallel_level_fold.ll<br>
    llvm/test/Verifier/align-md.ll<br>
    llvm/unittests/IR/ValueTest.cpp<br>
<br>
Removed: <br>
    llvm/test/CodeGen/MIR/X86/load-with-max-alignment.mir<br>
<br>
<br>
################################################################################<br>
diff  --git a/clang/lib/CodeGen/CGBlocks.cpp b/clang/lib/CodeGen/CGBlocks.cpp<br>
index 2da2014345d8..c8bf47fdc837 100644<br>
--- a/clang/lib/CodeGen/CGBlocks.cpp<br>
+++ b/clang/lib/CodeGen/CGBlocks.cpp<br>
@@ -2695,8 +2695,8 @@ const BlockByrefInfo &CodeGenFunction::getBlockByrefInfo(const VarDecl *D) {<br>
     size = varOffset;<br>
<br>
   // Conversely, we might have to prevent LLVM from inserting padding.<br>
-  } else if (CGM.getDataLayout().getABITypeAlignment(varTy) ><br>
-             uint64_t(varAlign.getQuantity())) {<br>
+  } else if (CGM.getDataLayout().getABITypeAlignment(varTy)<br>
+               > varAlign.getQuantity()) {<br>
     packed = true;<br>
   }<br>
   types.push_back(varTy);<br>
<br>
diff  --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp<br>
index 70966c9e7b35..ee0a66919c31 100644<br>
--- a/clang/lib/CodeGen/CGCall.cpp<br>
+++ b/clang/lib/CodeGen/CGCall.cpp<br>
@@ -5021,12 +5021,12 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo,<br>
         auto scalarAlign = CGM.getDataLayout().getPrefTypeAlignment(scalarType);<br>
<br>
         // Materialize to a temporary.<br>
-        addr =<br>
-            CreateTempAlloca(RV.getScalarVal()->getType(),<br>
-                             CharUnits::fromQuantity(std::max(<br>
-                                 layout->getAlignment().value(), scalarAlign)),<br>
-                             "tmp",<br>
-                             /*ArraySize=*/nullptr, &AllocaAddr);<br>
+        addr = CreateTempAlloca(<br>
+            RV.getScalarVal()->getType(),<br>
+            CharUnits::fromQuantity(std::max(<br>
+                (unsigned)layout->getAlignment().value(), scalarAlign)),<br>
+            "tmp",<br>
+            /*ArraySize=*/nullptr, &AllocaAddr);<br>
         tempSize = EmitLifetimeStart(scalarSize, AllocaAddr.getPointer());<br>
<br>
         Builder.CreateStore(RV.getScalarVal(), addr);<br>
<br>
diff  --git a/clang/lib/CodeGen/CGDecl.cpp b/clang/lib/CodeGen/CGDecl.cpp<br>
index dfb74a3fc654..5b3d39f20b41 100644<br>
--- a/clang/lib/CodeGen/CGDecl.cpp<br>
+++ b/clang/lib/CodeGen/CGDecl.cpp<br>
@@ -1142,7 +1142,7 @@ Address CodeGenModule::createUnnamedGlobalFrom(const VarDecl &D,<br>
     GV->setAlignment(Align.getAsAlign());<br>
     GV->setUnnamedAddr(llvm::GlobalValue::UnnamedAddr::Global);<br>
     CacheEntry = GV;<br>
-  } else if (CacheEntry->getAlignment() < uint64_t(Align.getQuantity())) {<br>
+  } else if (CacheEntry->getAlignment() < Align.getQuantity()) {<br>
     CacheEntry->setAlignment(Align.getAsAlign());<br>
   }<br>
<br>
<br>
diff  --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp<br>
index d4e3186c10a5..d26b1343247f 100644<br>
--- a/clang/lib/CodeGen/CodeGenModule.cpp<br>
+++ b/clang/lib/CodeGen/CodeGenModule.cpp<br>
@@ -5386,7 +5386,7 @@ CodeGenModule::GetAddrOfConstantStringFromLiteral(const StringLiteral *S,<br>
   if (!LangOpts.WritableStrings) {<br>
     Entry = &ConstantStringMap[C];<br>
     if (auto GV = *Entry) {<br>
-      if (uint64_t(Alignment.getQuantity()) > GV->getAlignment())<br>
+      if (Alignment.getQuantity() > GV->getAlignment())<br>
         GV->setAlignment(Alignment.getAsAlign());<br>
       return ConstantAddress(castStringLiteralToDefaultAddressSpace(*this, GV),<br>
                              Alignment);<br>
@@ -5449,7 +5449,7 @@ ConstantAddress CodeGenModule::GetAddrOfConstantCString(<br>
   if (!LangOpts.WritableStrings) {<br>
     Entry = &ConstantStringMap[C];<br>
     if (auto GV = *Entry) {<br>
-      if (uint64_t(Alignment.getQuantity()) > GV->getAlignment())<br>
+      if (Alignment.getQuantity() > GV->getAlignment())<br>
         GV->setAlignment(Alignment.getAsAlign());<br>
       return ConstantAddress(castStringLiteralToDefaultAddressSpace(*this, GV),<br>
                              Alignment);<br>
<br>
diff  --git a/clang/test/CodeGen/builtin-assume-aligned.c b/clang/test/CodeGen/builtin-assume-aligned.c<br>
index fc49eda83930..9d48e20bb381 100644<br>
--- a/clang/test/CodeGen/builtin-assume-aligned.c<br>
+++ b/clang/test/CodeGen/builtin-assume-aligned.c<br>
@@ -117,7 +117,7 @@ int test6() {<br>
 // CHECK-NEXT:    store i32* [[A]], i32** [[A_ADDR]], align 8<br>
 // CHECK-NEXT:    [[TMP0:%.*]] = load i32*, i32** [[A_ADDR]], align 8<br>
 // CHECK-NEXT:    [[TMP1:%.*]] = bitcast i32* [[TMP0]] to i8*<br>
-// CHECK-NEXT:    call void @llvm.assume(i1 true) [ "align"(i8* [[TMP1]], i64 4294967296) ]<br>
+// CHECK-NEXT:    call void @llvm.assume(i1 true) [ "align"(i8* [[TMP1]], i64 1073741824) ]<br>
 // CHECK-NEXT:    [[TMP2:%.*]] = bitcast i8* [[TMP1]] to i32*<br>
 // CHECK-NEXT:    store i32* [[TMP2]], i32** [[A_ADDR]], align 8<br>
 // CHECK-NEXT:    [[TMP3:%.*]] = load i32*, i32** [[A_ADDR]], align 8<br>
<br>
diff  --git a/clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp b/clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp<br>
index 5422657cbea6..0c2d9a0124e5 100644<br>
--- a/clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp<br>
+++ b/clang/test/CodeGen/catch-alignment-assumption-attribute-align_value-on-paramvar.cpp<br>
@@ -7,7 +7,7 @@<br>
 // CHECK-SANITIZE-ANYRECOVER: @[[LINE_100_ALIGNMENT_ASSUMPTION:.*]] = {{.*}}, i32 100, i32 10 }, {{.*}}* @[[CHAR]] }<br>
<br>
 char **passthrough(__attribute__((align_value(0x80000000))) char **x) {<br>
-  // CHECK-NOSANITIZE:                define{{.*}} i8** @{{.*}}(i8** align 2147483648 %[[X:.*]])<br>
+  // CHECK-NOSANITIZE:                define{{.*}} i8** @{{.*}}(i8** align 1073741824 %[[X:.*]])<br>
   // CHECK-SANITIZE:                  define{{.*}} i8** @{{.*}}(i8** %[[X:.*]])<br>
   // CHECK-NEXT:                      [[entry:.*]]:<br>
   // CHECK-NEXT:                        %[[X_ADDR:.*]] = alloca i8**, align 8<br>
<br>
diff  --git a/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp b/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp<br>
index ccfb95cdcea2..5215746807d7 100644<br>
--- a/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp<br>
+++ b/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params-variable.cpp<br>
@@ -18,17 +18,17 @@ void *caller(char **x, unsigned long offset) {<br>
   // CHECK-NEXT:                        %[[OFFSET_RELOADED:.*]] = load i64, i64* %[[OFFSET_ADDR]], align 8<br>
   // CHECK-SANITIZE-NEXT:               %[[PTRINT:.*]] = ptrtoint i8* %[[BITCAST]] to i64<br>
   // CHECK-SANITIZE-NEXT:               %[[OFFSETPTR:.*]] = sub i64 %[[PTRINT]], %[[OFFSET_RELOADED]]<br>
-  // CHECK-SANITIZE-NEXT:               %[[MASKEDPTR:.*]] = and i64 %[[OFFSETPTR]], 2147483647<br>
+  // CHECK-SANITIZE-NEXT:               %[[MASKEDPTR:.*]] = and i64 %[[OFFSETPTR]], 1073741823<br>
   // CHECK-SANITIZE-NEXT:               %[[MASKCOND:.*]] = icmp eq i64 %[[MASKEDPTR]], 0<br>
   // CHECK-SANITIZE-NEXT:               %[[PTRINT_DUP:.*]] = ptrtoint i8* %[[BITCAST]] to i64, !nosanitize<br>
   // CHECK-SANITIZE-NEXT:               br i1 %[[MASKCOND]], label %[[CONT:.*]], label %[[HANDLER_ALIGNMENT_ASSUMPTION:[^,]+]],{{.*}} !nosanitize<br>
   // CHECK-SANITIZE:                  [[HANDLER_ALIGNMENT_ASSUMPTION]]:<br>
-  // CHECK-SANITIZE-NORECOVER-NEXT:     call void @__ubsan_handle_alignment_assumption_abort(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 2147483648, i64 %[[OFFSET_RELOADED]]){{.*}}, !nosanitize<br>
-  // CHECK-SANITIZE-RECOVER-NEXT:       call void @__ubsan_handle_alignment_assumption(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 2147483648, i64 %[[OFFSET_RELOADED]]){{.*}}, !nosanitize<br>
+  // CHECK-SANITIZE-NORECOVER-NEXT:     call void @__ubsan_handle_alignment_assumption_abort(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 1073741824, i64 %[[OFFSET_RELOADED]]){{.*}}, !nosanitize<br>
+  // CHECK-SANITIZE-RECOVER-NEXT:       call void @__ubsan_handle_alignment_assumption(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 1073741824, i64 %[[OFFSET_RELOADED]]){{.*}}, !nosanitize<br>
   // CHECK-SANITIZE-TRAP-NEXT:          call void @llvm.ubsantrap(i8 23){{.*}}, !nosanitize<br>
   // CHECK-SANITIZE-UNREACHABLE-NEXT:   unreachable, !nosanitize<br>
   // CHECK-SANITIZE:                  [[CONT]]:<br>
-  // CHECK-NEXT:                        call void @llvm.assume(i1 true) [ "align"(i8* %[[BITCAST]], i64 2147483648, i64 %[[OFFSET_RELOADED]]) ]<br>
+  // CHECK-NEXT:                        call void @llvm.assume(i1 true) [ "align"(i8* %[[BITCAST]], i64 1073741824, i64 %[[OFFSET_RELOADED]]) ]<br>
   // CHECK-NEXT:                        ret i8* %[[BITCAST]]<br>
   // CHECK-NEXT:                      }<br>
 #line 100<br>
<br>
diff  --git a/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp b/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp<br>
index 806740512519..20bdebdac088 100644<br>
--- a/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp<br>
+++ b/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-three-params.cpp<br>
@@ -15,17 +15,17 @@ void *caller(char **x) {<br>
   // CHECK-NEXT:                        %[[BITCAST:.*]] = bitcast i8** %[[X_RELOADED]] to i8*<br>
   // CHECK-SANITIZE-NEXT:               %[[PTRINT:.*]] = ptrtoint i8* %[[BITCAST]] to i64<br>
   // CHECK-SANITIZE-NEXT:               %[[OFFSETPTR:.*]] = sub i64 %[[PTRINT]], 42<br>
-  // CHECK-SANITIZE-NEXT:               %[[MASKEDPTR:.*]] = and i64 %[[OFFSETPTR]], 2147483647<br>
+  // CHECK-SANITIZE-NEXT:               %[[MASKEDPTR:.*]] = and i64 %[[OFFSETPTR]], 1073741823<br>
   // CHECK-SANITIZE-NEXT:               %[[MASKCOND:.*]] = icmp eq i64 %[[MASKEDPTR]], 0<br>
   // CHECK-SANITIZE-NEXT:               %[[PTRINT_DUP:.*]] = ptrtoint i8* %[[BITCAST]] to i64, !nosanitize<br>
   // CHECK-SANITIZE-NEXT:               br i1 %[[MASKCOND]], label %[[CONT:.*]], label %[[HANDLER_ALIGNMENT_ASSUMPTION:[^,]+]],{{.*}} !nosanitize<br>
   // CHECK-SANITIZE:                  [[HANDLER_ALIGNMENT_ASSUMPTION]]:<br>
-  // CHECK-SANITIZE-NORECOVER-NEXT:     call void @__ubsan_handle_alignment_assumption_abort(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 2147483648, i64 42){{.*}}, !nosanitize<br>
-  // CHECK-SANITIZE-RECOVER-NEXT:       call void @__ubsan_handle_alignment_assumption(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 2147483648, i64 42){{.*}}, !nosanitize<br>
+  // CHECK-SANITIZE-NORECOVER-NEXT:     call void @__ubsan_handle_alignment_assumption_abort(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 1073741824, i64 42){{.*}}, !nosanitize<br>
+  // CHECK-SANITIZE-RECOVER-NEXT:       call void @__ubsan_handle_alignment_assumption(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 1073741824, i64 42){{.*}}, !nosanitize<br>
   // CHECK-SANITIZE-TRAP-NEXT:          call void @llvm.ubsantrap(i8 23){{.*}}, !nosanitize<br>
   // CHECK-SANITIZE-UNREACHABLE-NEXT:   unreachable, !nosanitize<br>
   // CHECK-SANITIZE:                  [[CONT]]:<br>
-  // CHECK-NEXT:                        call void @llvm.assume(i1 true) [ "align"(i8* %[[BITCAST]], i64 2147483648, i64 42) ]<br>
+  // CHECK-NEXT:                        call void @llvm.assume(i1 true) [ "align"(i8* %[[BITCAST]], i64 1073741824, i64 42) ]<br>
   // CHECK-NEXT:                        ret i8* %[[BITCAST]]<br>
   // CHECK-NEXT:                      }<br>
 #line 100<br>
<br>
diff  --git a/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp b/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp<br>
index ecb89ffb004b..6d2146053241 100644<br>
--- a/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp<br>
+++ b/clang/test/CodeGen/catch-alignment-assumption-builtin_assume_aligned-two-params.cpp<br>
@@ -14,17 +14,17 @@ void *caller(char **x) {<br>
   // CHECK-NEXT:                        %[[X_RELOADED:.*]] = load i8**, i8*** %[[X_ADDR]], align 8<br>
   // CHECK-NEXT:                        %[[BITCAST:.*]] = bitcast i8** %[[X_RELOADED]] to i8*<br>
   // CHECK-SANITIZE-NEXT:               %[[PTRINT:.*]] = ptrtoint i8* %[[BITCAST]] to i64<br>
-  // CHECK-SANITIZE-NEXT:               %[[MASKEDPTR:.*]] = and i64 %[[PTRINT]], 2147483647<br>
+  // CHECK-SANITIZE-NEXT:               %[[MASKEDPTR:.*]] = and i64 %[[PTRINT]], 1073741823<br>
   // CHECK-SANITIZE-NEXT:               %[[MASKCOND:.*]] = icmp eq i64 %[[MASKEDPTR]], 0<br>
   // CHECK-SANITIZE-NEXT:               %[[PTRINT_DUP:.*]] = ptrtoint i8* %[[BITCAST]] to i64, !nosanitize<br>
   // CHECK-SANITIZE-NEXT:               br i1 %[[MASKCOND]], label %[[CONT:.*]], label %[[HANDLER_ALIGNMENT_ASSUMPTION:[^,]+]],{{.*}} !nosanitize<br>
   // CHECK-SANITIZE:                  [[HANDLER_ALIGNMENT_ASSUMPTION]]:<br>
-  // CHECK-SANITIZE-NORECOVER-NEXT:     call void @__ubsan_handle_alignment_assumption_abort(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 2147483648, i64 0){{.*}}, !nosanitize<br>
-  // CHECK-SANITIZE-RECOVER-NEXT:       call void @__ubsan_handle_alignment_assumption(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 2147483648, i64 0){{.*}}, !nosanitize<br>
+  // CHECK-SANITIZE-NORECOVER-NEXT:     call void @__ubsan_handle_alignment_assumption_abort(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 1073741824, i64 0){{.*}}, !nosanitize<br>
+  // CHECK-SANITIZE-RECOVER-NEXT:       call void @__ubsan_handle_alignment_assumption(i8* bitcast ({ {{{.*}}}, {{{.*}}}, {{{.*}}}* }* @[[LINE_100_ALIGNMENT_ASSUMPTION]] to i8*), i64 %[[PTRINT_DUP]], i64 1073741824, i64 0){{.*}}, !nosanitize<br>
   // CHECK-SANITIZE-TRAP-NEXT:          call void @llvm.ubsantrap(i8 23){{.*}}, !nosanitize<br>
   // CHECK-SANITIZE-UNREACHABLE-NEXT:   unreachable, !nosanitize<br>
   // CHECK-SANITIZE:                  [[CONT]]:<br>
-  // CHECK-NEXT:                        call void @llvm.assume(i1 true) [ "align"(i8* %[[BITCAST]], i64 2147483648) ]<br>
+  // CHECK-NEXT:                        call void @llvm.assume(i1 true) [ "align"(i8* %[[BITCAST]], i64 1073741824) ]<br>
   // CHECK-NEXT:                        ret i8* %[[BITCAST]]<br>
   // CHECK-NEXT:                      }<br>
 #line 100<br>
<br>
diff  --git a/llvm/include/llvm/Bitcode/BitcodeCommon.h b/llvm/include/llvm/Bitcode/BitcodeCommon.h<br>
index 22d1872fe49c..6a3e74550bc4 100644<br>
--- a/llvm/include/llvm/Bitcode/BitcodeCommon.h<br>
+++ b/llvm/include/llvm/Bitcode/BitcodeCommon.h<br>
@@ -19,14 +19,10 @@<br>
 namespace llvm {<br>
<br>
 struct AllocaPackedValues {<br>
-  // We increased the number of bits needed to represent alignment to be more<br>
-  // than 5, but to preserve backward compatibility we store the upper bits<br>
-  // separately.<br>
-  using AlignLower = Bitfield::Element<unsigned, 0, 5>;<br>
-  using UsedWithInAlloca = Bitfield::Element<bool, AlignLower::NextBit, 1>;<br>
+  using Align = Bitfield::Element<unsigned, 0, 5>;<br>
+  using UsedWithInAlloca = Bitfield::Element<bool, Align::NextBit, 1>;<br>
   using ExplicitType = Bitfield::Element<bool, UsedWithInAlloca::NextBit, 1>;<br>
   using SwiftError = Bitfield::Element<bool, ExplicitType::NextBit, 1>;<br>
-  using AlignUpper = Bitfield::Element<unsigned, SwiftError::NextBit, 3>;<br>
 };<br>
<br>
 } // namespace llvm<br>
<br>
diff  --git a/llvm/include/llvm/IR/DataLayout.h b/llvm/include/llvm/IR/DataLayout.h<br>
index 0486b19cd23d..8c37aebc2c4e 100644<br>
--- a/llvm/include/llvm/IR/DataLayout.h<br>
+++ b/llvm/include/llvm/IR/DataLayout.h<br>
@@ -518,7 +518,7 @@ class DataLayout {<br>
<br>
   /// Returns the minimum ABI-required alignment for the specified type.<br>
   /// FIXME: Deprecate this function once migration to Align is over.<br>
-  uint64_t getABITypeAlignment(Type *Ty) const;<br>
+  unsigned getABITypeAlignment(Type *Ty) const;<br>
<br>
   /// Returns the minimum ABI-required alignment for the specified type.<br>
   Align getABITypeAlign(Type *Ty) const;<br>
@@ -541,7 +541,7 @@ class DataLayout {<br>
   ///<br>
   /// This is always at least as good as the ABI alignment.<br>
   /// FIXME: Deprecate this function once migration to Align is over.<br>
-  uint64_t getPrefTypeAlignment(Type *Ty) const;<br>
+  unsigned getPrefTypeAlignment(Type *Ty) const;<br>
<br>
   /// Returns the preferred stack/global alignment for the specified<br>
   /// type.<br>
<br>
diff  --git a/llvm/include/llvm/IR/GlobalObject.h b/llvm/include/llvm/IR/GlobalObject.h<br>
index 130196bb6c4a..341fbec66080 100644<br>
--- a/llvm/include/llvm/IR/GlobalObject.h<br>
+++ b/llvm/include/llvm/IR/GlobalObject.h<br>
@@ -51,7 +51,7 @@ class GlobalObject : public GlobalValue {<br>
<br>
   Comdat *ObjComdat;<br>
   enum {<br>
-    LastAlignmentBit = 5,<br>
+    LastAlignmentBit = 4,<br>
     HasSectionHashEntryBit,<br>
<br>
     GlobalObjectBits,<br>
@@ -68,7 +68,7 @@ class GlobalObject : public GlobalValue {<br>
   GlobalObject(const GlobalObject &) = delete;<br>
<br>
   /// FIXME: Remove this function once transition to Align is over.<br>
-  uint64_t getAlignment() const {<br>
+  unsigned getAlignment() const {<br>
     MaybeAlign Align = getAlign();<br>
     return Align ? Align->value() : 0;<br>
   }<br>
<br>
diff  --git a/llvm/include/llvm/IR/Instruction.h b/llvm/include/llvm/IR/Instruction.h<br>
index 9ca7b530bf71..88d33f3c8adb 100644<br>
--- a/llvm/include/llvm/IR/Instruction.h<br>
+++ b/llvm/include/llvm/IR/Instruction.h<br>
@@ -59,11 +59,11 @@ class Instruction : public User,<br>
   // Template alias so that all Instruction storing alignment use the same<br>
   // definiton.<br>
   // Valid alignments are powers of two from 2^0 to 2^MaxAlignmentExponent =<br>
-  // 2^32. We store them as Log2(Alignment), so we need 6 bits to encode the 33<br>
+  // 2^30. We store them as Log2(Alignment), so we need 5 bits to encode the 31<br>
   // possible values.<br>
   template <unsigned Offset><br>
   using AlignmentBitfieldElementT =<br>
-      typename Bitfield::Element<unsigned, Offset, 6,<br>
+      typename Bitfield::Element<unsigned, Offset, 5,<br>
                                  Value::MaxAlignmentExponent>;<br>
<br>
   template <unsigned Offset><br>
<br>
diff  --git a/llvm/include/llvm/IR/Instructions.h b/llvm/include/llvm/IR/Instructions.h<br>
index aa8613fbdb88..731198da7f40 100644<br>
--- a/llvm/include/llvm/IR/Instructions.h<br>
+++ b/llvm/include/llvm/IR/Instructions.h<br>
@@ -126,7 +126,7 @@ class AllocaInst : public UnaryInstruction {<br>
   }<br>
<br>
   // FIXME: Remove this one transition to Align is over.<br>
-  uint64_t getAlignment() const { return getAlign().value(); }<br>
+  unsigned getAlignment() const { return getAlign().value(); }<br>
<br>
   /// Return true if this alloca is in the entry block of the function and is a<br>
   /// constant size. If so, the code generator will fold it into the<br>
@@ -217,7 +217,7 @@ class LoadInst : public UnaryInstruction {<br>
   /// Return the alignment of the access that is being performed.<br>
   /// FIXME: Remove this function once transition to Align is over.<br>
   /// Use getAlign() instead.<br>
-  uint64_t getAlignment() const { return getAlign().value(); }<br>
+  unsigned getAlignment() const { return getAlign().value(); }<br>
<br>
   /// Return the alignment of the access that is being performed.<br>
   Align getAlign() const {<br>
@@ -348,7 +348,7 @@ class StoreInst : public Instruction {<br>
   /// Return the alignment of the access that is being performed<br>
   /// FIXME: Remove this function once transition to Align is over.<br>
   /// Use getAlign() instead.<br>
-  uint64_t getAlignment() const { return getAlign().value(); }<br>
+  unsigned getAlignment() const { return getAlign().value(); }<br>
<br>
   Align getAlign() const {<br>
     return Align(1ULL << (getSubclassData<AlignmentField>()));<br>
<br>
diff  --git a/llvm/include/llvm/IR/Value.h b/llvm/include/llvm/IR/Value.h<br>
index 2cb4d09c295b..253c97c3b5e3 100644<br>
--- a/llvm/include/llvm/IR/Value.h<br>
+++ b/llvm/include/llvm/IR/Value.h<br>
@@ -785,8 +785,8 @@ class Value {<br>
   ///<br>
   /// This is the greatest alignment value supported by load, store, and alloca<br>
   /// instructions, and global values.<br>
-  static constexpr unsigned MaxAlignmentExponent = 32;<br>
-  static constexpr uint64_t MaximumAlignment = 1ULL << MaxAlignmentExponent;<br>
+  static constexpr unsigned MaxAlignmentExponent = 30;<br>
+  static constexpr unsigned MaximumAlignment = 1u << MaxAlignmentExponent;<br>
<br>
   /// Mutate the type of this Value to be of the specified type.<br>
   ///<br>
<br>
diff  --git a/llvm/include/llvm/Transforms/IPO/Attributor.h b/llvm/include/llvm/Transforms/IPO/Attributor.h<br>
index 5ee5fc3aed96..59ea407e2814 100644<br>
--- a/llvm/include/llvm/Transforms/IPO/Attributor.h<br>
+++ b/llvm/include/llvm/Transforms/IPO/Attributor.h<br>
@@ -3413,7 +3413,7 @@ struct AADereferenceable<br>
 };<br>
<br>
 using AAAlignmentStateType =<br>
-    IncIntegerState<uint64_t, Value::MaximumAlignment, 1>;<br>
+    IncIntegerState<uint32_t, Value::MaximumAlignment, 1>;<br>
 /// An abstract interface for all align attributes.<br>
 struct AAAlign : public IRAttribute<<br>
                      Attribute::Alignment,<br>
@@ -3421,10 +3421,10 @@ struct AAAlign : public IRAttribute<<br>
   AAAlign(const IRPosition &IRP, Attributor &A) : IRAttribute(IRP) {}<br>
<br>
   /// Return assumed alignment.<br>
-  uint64_t getAssumedAlign() const { return getAssumed(); }<br>
+  unsigned getAssumedAlign() const { return getAssumed(); }<br>
<br>
   /// Return known alignment.<br>
-  uint64_t getKnownAlign() const { return getKnown(); }<br>
+  unsigned getKnownAlign() const { return getKnown(); }<br>
<br>
   /// See AbstractAttribute::getName()<br>
   const std::string getName() const override { return "AAAlign"; }<br>
<br>
diff  --git a/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h b/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h<br>
index 3659e64527b9..0b570c0d1342 100644<br>
--- a/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h<br>
+++ b/llvm/include/llvm/Transforms/Utils/ASanStackFrameLayout.h<br>
@@ -33,7 +33,7 @@ struct ASanStackVariableDescription {<br>
   uint64_t Size;       // Size of the variable in bytes.<br>
   size_t LifetimeSize; // Size in bytes to use for lifetime analysis check.<br>
                        // Will be rounded up to Granularity.<br>
-  uint64_t Alignment;  // Alignment of the variable (power of 2).<br>
+  size_t Alignment;    // Alignment of the variable (power of 2).<br>
   AllocaInst *AI;      // The actual AllocaInst.<br>
   size_t Offset;       // Offset from the beginning of the frame;<br>
                        // set by ComputeASanStackFrameLayout.<br>
<br>
diff  --git a/llvm/lib/AsmParser/LLParser.cpp b/llvm/lib/AsmParser/LLParser.cpp<br>
index 924c83079e3c..ebca7f308381 100644<br>
--- a/llvm/lib/AsmParser/LLParser.cpp<br>
+++ b/llvm/lib/AsmParser/LLParser.cpp<br>
@@ -1927,7 +1927,7 @@ bool LLParser::parseOptionalAlignment(MaybeAlign &Alignment, bool AllowParens) {<br>
   if (!EatIfPresent(lltok::kw_align))<br>
     return false;<br>
   LocTy AlignLoc = Lex.getLoc();<br>
-  uint64_t Value = 0;<br>
+  uint32_t Value = 0;<br>
<br>
   LocTy ParenLoc = Lex.getLoc();<br>
   bool HaveParens = false;<br>
@@ -1936,13 +1936,13 @@ bool LLParser::parseOptionalAlignment(MaybeAlign &Alignment, bool AllowParens) {<br>
       HaveParens = true;<br>
   }<br>
<br>
-  if (parseUInt64(Value))<br>
+  if (parseUInt32(Value))<br>
     return true;<br>
<br>
   if (HaveParens && !EatIfPresent(lltok::rparen))<br>
     return error(ParenLoc, "expected ')'");<br>
<br>
-  if (!isPowerOf2_64(Value))<br>
+  if (!isPowerOf2_32(Value))<br>
     return error(AlignLoc, "alignment is not a power of two");<br>
   if (Value > Value::MaximumAlignment)<br>
     return error(AlignLoc, "huge alignments are not supported yet");<br>
<br>
diff  --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp<br>
index f5503d6e8eeb..1b1160569bb6 100644<br>
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp<br>
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp<br>
@@ -4930,10 +4930,8 @@ Error BitcodeReader::parseFunctionBody(Function *F) {<br>
       Type *OpTy = getTypeByID(Record[1]);<br>
       Value *Size = getFnValueByID(Record[2], OpTy);<br>
       MaybeAlign Align;<br>
-      uint64_t AlignExp =<br>
-          Bitfield::get<APV::AlignLower>(Rec) |<br>
-          (Bitfield::get<APV::AlignUpper>(Rec) << APV::AlignLower::Bits);<br>
-      if (Error Err = parseAlignmentValue(AlignExp, Align)) {<br>
+      if (Error Err =<br>
+              parseAlignmentValue(Bitfield::get<APV::Align>(Rec), Align)) {<br>
         return Err;<br>
       }<br>
       if (!Ty || !Size)<br>
<br>
diff  --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp<br>
index 37a20d0400b5..dcab20b4b585 100644<br>
--- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp<br>
+++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp<br>
@@ -3055,11 +3055,7 @@ void ModuleBitcodeWriter::writeInstruction(const Instruction &I,<br>
     Vals.push_back(VE.getValueID(I.getOperand(0))); // size.<br>
     using APV = AllocaPackedValues;<br>
     unsigned Record = 0;<br>
-    unsigned EncodedAlign = getEncodedAlign(AI.getAlign());<br>
-    Bitfield::set<APV::AlignLower>(<br>
-        Record, EncodedAlign & ((1 << APV::AlignLower::Bits) - 1));<br>
-    Bitfield::set<APV::AlignUpper>(Record,<br>
-                                   EncodedAlign >> APV::AlignLower::Bits);<br>
+    Bitfield::set<APV::Align>(Record, getEncodedAlign(AI.getAlign()));<br>
     Bitfield::set<APV::UsedWithInAlloca>(Record, AI.isUsedWithInAlloca());<br>
     Bitfield::set<APV::ExplicitType>(Record, true);<br>
     Bitfield::set<APV::SwiftError>(Record, AI.isSwiftError());<br>
<br>
diff  --git a/llvm/lib/CodeGen/MIRParser/MIParser.cpp b/llvm/lib/CodeGen/MIRParser/MIParser.cpp<br>
index 3dc91b3b87e9..34e1f9225d42 100644<br>
--- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp<br>
+++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp<br>
@@ -498,7 +498,7 @@ class MIParser {<br>
                                          MachineOperand &Dest,<br>
                                          Optional<unsigned> &TiedDefIdx);<br>
   bool parseOffset(int64_t &Offset);<br>
-  bool parseAlignment(uint64_t &Alignment);<br>
+  bool parseAlignment(unsigned &Alignment);<br>
   bool parseAddrspace(unsigned &Addrspace);<br>
   bool parseSectionID(Optional<MBBSectionID> &SID);<br>
   bool parseOperandsOffset(MachineOperand &Op);<br>
@@ -676,7 +676,7 @@ bool MIParser::parseBasicBlockDefinition(<br>
   bool IsLandingPad = false;<br>
   bool IsEHFuncletEntry = false;<br>
   Optional<MBBSectionID> SectionID;<br>
-  uint64_t Alignment = 0;<br>
+  unsigned Alignment = 0;<br>
   BasicBlock *BB = nullptr;<br>
   if (consumeIfPresent(MIToken::lparen)) {<br>
     do {<br>
@@ -2898,16 +2898,16 @@ bool MIParser::parseOffset(int64_t &Offset) {<br>
   return false;<br>
 }<br>
<br>
-bool MIParser::parseAlignment(uint64_t &Alignment) {<br>
+bool MIParser::parseAlignment(unsigned &Alignment) {<br>
   assert(Token.is(MIToken::kw_align) || Token.is(MIToken::kw_basealign));<br>
   lex();<br>
   if (Token.isNot(MIToken::IntegerLiteral) || Token.integerValue().isSigned())<br>
     return error("expected an integer literal after 'align'");<br>
-  if (getUint64(Alignment))<br>
+  if (getUnsigned(Alignment))<br>
     return true;<br>
   lex();<br>
<br>
-  if (!isPowerOf2_64(Alignment))<br>
+  if (!isPowerOf2_32(Alignment))<br>
     return error("expected a power-of-2 literal after 'align'");<br>
<br>
   return false;<br>
@@ -3261,7 +3261,7 @@ bool MIParser::parseMachineMemoryOperand(MachineMemOperand *&Dest) {<br>
     if (parseMachinePointerInfo(Ptr))<br>
       return true;<br>
   }<br>
-  uint64_t BaseAlignment =<br>
+  unsigned BaseAlignment =<br>
       (Size != MemoryLocation::UnknownSize ? PowerOf2Ceil(Size) : 1);<br>
   AAMDNodes AAInfo;<br>
   MDNode *Range = nullptr;<br>
<br>
diff  --git a/llvm/lib/CodeGen/SafeStack.cpp b/llvm/lib/CodeGen/SafeStack.cpp<br>
index e1d11c36e1a9..94add920f284 100644<br>
--- a/llvm/lib/CodeGen/SafeStack.cpp<br>
+++ b/llvm/lib/CodeGen/SafeStack.cpp<br>
@@ -147,7 +147,7 @@ class SafeStack {<br>
   ///<br>
   /// 16 seems like a reasonable upper bound on the alignment of objects that we<br>
   /// might expect to appear on the stack on most common targets.<br>
-  static constexpr uint64_t StackAlignment = 16;<br>
+  enum { StackAlignment = 16 };<br>
<br>
   /// Return the value of the stack canary.<br>
   Value *getStackGuard(IRBuilder<> &IRB, Function &F);<br>
@@ -544,7 +544,8 @@ Value *SafeStack::moveStaticAllocasToUnsafeStack(<br>
       Size = 1; // Don't create zero-sized stack objects.<br>
<br>
     // Ensure the object is properly aligned.<br>
-    uint64_t Align = std::max(DL.getPrefTypeAlignment(Ty), AI->getAlignment());<br>
+    unsigned Align =<br>
+        std::max((unsigned)DL.getPrefTypeAlignment(Ty), AI->getAlignment());<br>
<br>
     SSL.addObject(AI, Size, Align,<br>
                   ClColoring ? SSC.getLiveRange(AI) : NoColoringRange);<br>
@@ -675,9 +676,9 @@ void SafeStack::moveDynamicAllocasToUnsafeStack(<br>
     SP = IRB.CreateSub(SP, Size);<br>
<br>
     // Align the SP value to satisfy the AllocaInst, type and stack alignments.<br>
-    uint64_t Align =<br>
-        std::max(std::max(DL.getPrefTypeAlignment(Ty), AI->getAlignment()),<br>
-                 StackAlignment);<br>
+    unsigned Align = std::max(<br>
+        std::max((unsigned)DL.getPrefTypeAlignment(Ty), AI->getAlignment()),<br>
+        (unsigned)StackAlignment);<br>
<br>
     assert(isPowerOf2_32(Align));<br>
     Value *NewTop = IRB.CreateIntToPtr(<br>
<br>
diff  --git a/llvm/lib/IR/DataLayout.cpp b/llvm/lib/IR/DataLayout.cpp<br>
index e50423d07a71..d2bdd2a0d4e0 100644<br>
--- a/llvm/lib/IR/DataLayout.cpp<br>
+++ b/llvm/lib/IR/DataLayout.cpp<br>
@@ -819,7 +819,7 @@ Align DataLayout::getAlignment(Type *Ty, bool abi_or_pref) const {<br>
 }<br>
<br>
 /// TODO: Remove this function once the transition to Align is over.<br>
-uint64_t DataLayout::getABITypeAlignment(Type *Ty) const {<br>
+unsigned DataLayout::getABITypeAlignment(Type *Ty) const {<br>
   return getABITypeAlign(Ty).value();<br>
 }<br>
<br>
@@ -828,7 +828,7 @@ Align DataLayout::getABITypeAlign(Type *Ty) const {<br>
 }<br>
<br>
 /// TODO: Remove this function once the transition to Align is over.<br>
-uint64_t DataLayout::getPrefTypeAlignment(Type *Ty) const {<br>
+unsigned DataLayout::getPrefTypeAlignment(Type *Ty) const {<br>
   return getPrefTypeAlign(Ty).value();<br>
 }<br>
<br>
<br>
diff  --git a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp<br>
index ad303d7a2240..c6b2a91982fb 100644<br>
--- a/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp<br>
+++ b/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp<br>
@@ -176,7 +176,7 @@ const char kAMDGPUAddressPrivateName[] = "llvm.amdgcn.is.private";<br>
 // Accesses sizes are powers of two: 1, 2, 4, 8, 16.<br>
 static const size_t kNumberOfAccessSizes = 5;<br>
<br>
-static const uint64_t kAllocaRzSize = 32;<br>
+static const unsigned kAllocaRzSize = 32;<br>
<br>
 // ASanAccessInfo implementation constants.<br>
 constexpr size_t kCompileKernelShift = 0;<br>
@@ -3323,7 +3323,7 @@ void FunctionStackPoisoner::processStaticAllocas() {<br>
<br>
   // Minimal header size (left redzone) is 4 pointers,<br>
   // i.e. 32 bytes on 64-bit platforms and 16 bytes in 32-bit platforms.<br>
-  uint64_t Granularity = 1ULL << Mapping.Scale;<br>
+  size_t Granularity = 1ULL << Mapping.Scale;<br>
   size_t MinHeaderSize = std::max((size_t)ASan.LongSize / 2, Granularity);<br>
   const ASanStackFrameLayout &L =<br>
       ComputeASanStackFrameLayout(SVD, Granularity, MinHeaderSize);<br>
@@ -3578,7 +3578,7 @@ void FunctionStackPoisoner::poisonAlloca(Value *V, uint64_t Size,<br>
 void FunctionStackPoisoner::handleDynamicAllocaCall(AllocaInst *AI) {<br>
   IRBuilder<> IRB(AI);<br>
<br>
-  const uint64_t Alignment = std::max(kAllocaRzSize, AI->getAlignment());<br>
+  const unsigned Alignment = std::max(kAllocaRzSize, AI->getAlignment());<br>
   const uint64_t AllocaRedzoneMask = kAllocaRzSize - 1;<br>
<br>
   Value *Zero = Constant::getNullValue(IntptrTy);<br>
<br>
diff  --git a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp<br>
index eeb71ed67cc9..70f078aefcf2 100644<br>
--- a/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp<br>
+++ b/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp<br>
@@ -356,7 +356,7 @@ class HWAddressSanitizer {<br>
     bool WithFrameRecord;<br>
<br>
     void init(Triple &TargetTriple, bool InstrumentWithCalls);<br>
-    uint64_t getObjectAlignment() const { return 1ULL << Scale; }<br>
+    unsigned getObjectAlignment() const { return 1U << Scale; }<br>
   };<br>
<br>
   ShadowMapping Mapping;<br>
<br>
diff  --git a/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp b/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp<br>
index c5f3c683458a..01912297324a 100644<br>
--- a/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp<br>
+++ b/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp<br>
@@ -33,7 +33,7 @@ static inline bool CompareVars(const ASanStackVariableDescription &a,<br>
<br>
 // We also force minimal alignment for all vars to kMinAlignment so that vars<br>
 // with e.g. alignment 1 and alignment 16 do not get reordered by CompareVars.<br>
-static const uint64_t kMinAlignment = 16;<br>
+static const size_t kMinAlignment = 16;<br>
<br>
 // We want to add a full redzone after every variable.<br>
 // The larger the variable Size the larger is the redzone.<br>
@@ -52,7 +52,7 @@ static size_t VarAndRedzoneSize(size_t Size, size_t Granularity,<br>
<br>
 ASanStackFrameLayout<br>
 ComputeASanStackFrameLayout(SmallVectorImpl<ASanStackVariableDescription> &Vars,<br>
-                            uint64_t Granularity, size_t MinHeaderSize) {<br>
+                            size_t Granularity, size_t MinHeaderSize) {<br>
   assert(Granularity >= 8 && Granularity <= 64 &&<br>
          (Granularity & (Granularity - 1)) == 0);<br>
   assert(MinHeaderSize >= 16 && (MinHeaderSize & (MinHeaderSize - 1)) == 0 &&<br>
<br>
diff  --git a/llvm/test/Assembler/align-inst-alloca.ll b/llvm/test/Assembler/align-inst-alloca.ll<br>
index 1f9d16c741f8..f27e0dc9a145 100644<br>
--- a/llvm/test/Assembler/align-inst-alloca.ll<br>
+++ b/llvm/test/Assembler/align-inst-alloca.ll<br>
@@ -1,6 +1,6 @@<br>
 ; RUN: not llvm-as %s -o /dev/null 2>/dev/null<br>
<br>
 define void @foo() {<br>
-  %p = alloca i1, align 8589934592<br>
+  %p = alloca i1, align 2147483648<br>
   ret void<br>
 }<br>
<br>
diff  --git a/llvm/test/Assembler/align-inst-load.ll b/llvm/test/Assembler/align-inst-load.ll<br>
index fcd6a78d1b9d..e8d52f141a4e 100644<br>
--- a/llvm/test/Assembler/align-inst-load.ll<br>
+++ b/llvm/test/Assembler/align-inst-load.ll<br>
@@ -1,6 +1,6 @@<br>
 ; RUN: not llvm-as %s -o /dev/null 2>/dev/null<br>
<br>
 define void @foo(i1* %p) {<br>
-  load i1, i1* %p, align 8589934592<br>
+  load i1, i1* %p, align 2147483648<br>
   ret void<br>
 }<br>
<br>
diff  --git a/llvm/test/Assembler/align-inst-store.ll b/llvm/test/Assembler/align-inst-store.ll<br>
index f39fac2d989a..5d29911140a2 100644<br>
--- a/llvm/test/Assembler/align-inst-store.ll<br>
+++ b/llvm/test/Assembler/align-inst-store.ll<br>
@@ -1,6 +1,6 @@<br>
 ; RUN: not llvm-as %s -o /dev/null 2>/dev/null<br>
<br>
 define void @foo(i1* %p) {<br>
-  store i1 false, i1* %p, align 8589934592<br>
+  store i1 false, i1* %p, align 2147483648<br>
   ret void<br>
 }<br>
<br>
diff  --git a/llvm/test/Assembler/align-inst.ll b/llvm/test/Assembler/align-inst.ll<br>
index ba81e319cfd7..6471d76c9fa8 100644<br>
--- a/llvm/test/Assembler/align-inst.ll<br>
+++ b/llvm/test/Assembler/align-inst.ll<br>
@@ -1,11 +1,11 @@<br>
 ; RUN: llvm-as %s -o /dev/null<br>
 ; RUN: verify-uselistorder %s<br>
<br>
-@A = global i1 0, align 4294967296<br>
+@A = global i1 0, align 1073741824<br>
<br>
 define void @foo() {<br>
-  %p = alloca i1, align 4294967296<br>
-  load i1, i1* %p, align 4294967296<br>
-  store i1 false, i1* %p, align 4294967296<br>
+  %p = alloca i1, align 1073741824<br>
+  load i1, i1* %p, align 1073741824<br>
+  store i1 false, i1* %p, align 1073741824<br>
   ret void<br>
 }<br>
<br>
diff  --git a/llvm/test/Bitcode/Inputs/invalid-align.bc b/llvm/test/Bitcode/Inputs/invalid-align.bc<br>
index 5356ea4ed33d..e84fa6cdda5f 100644<br>
Binary files a/llvm/test/Bitcode/Inputs/invalid-align.bc and b/llvm/test/Bitcode/Inputs/invalid-align.bc <br>
diff er<br>
<br>
diff  --git a/llvm/test/Bitcode/inalloca.ll b/llvm/test/Bitcode/inalloca.ll<br>
index d69b6c9d2478..351add158041 100644<br>
--- a/llvm/test/Bitcode/inalloca.ll<br>
+++ b/llvm/test/Bitcode/inalloca.ll<br>
@@ -10,10 +10,10 @@ define void @foo(i32* inalloca(i32) %args) {<br>
<br>
 define void @bar() {<br>
   ; Use the maximum alignment, since we stuff our bit with alignment.<br>
-  %args = alloca inalloca i32, align 4294967296<br>
+  %args = alloca inalloca i32, align 1073741824<br>
   call void @foo(i32* inalloca(i32) %args)<br>
   ret void<br>
 }<br>
 ; CHECK-LABEL: define void @bar() {<br>
-; CHECK: %args = alloca inalloca i32, align 4294967296<br>
+; CHECK: %args = alloca inalloca i32, align 1073741824<br>
 ; CHECK: call void @foo(i32* inalloca(i32) %args)<br>
<br>
diff  --git a/llvm/test/CodeGen/MIR/X86/load-with-max-alignment.mir b/llvm/test/CodeGen/MIR/X86/load-with-1gb-alignment.mir<br>
similarity index 79%<br>
rename from llvm/test/CodeGen/MIR/X86/load-with-max-alignment.mir<br>
rename to llvm/test/CodeGen/MIR/X86/load-with-1gb-alignment.mir<br>
index adb4059eb7e3..f5490e4da69a 100644<br>
--- a/llvm/test/CodeGen/MIR/X86/load-with-max-alignment.mir<br>
+++ b/llvm/test/CodeGen/MIR/X86/load-with-1gb-alignment.mir<br>
@@ -1,10 +1,10 @@<br>
 # RUN: llc -march=x86-64 -run-pass=none -o - %s | FileCheck %s<br>
<br>
 # CHECK: name:            truly_aligned_load<br>
-# CHECK: MOV32rm {{.*}} :: (load (s32), align 4294967296)<br>
+# CHECK: MOV32rm {{.*}} :: (load (s32), align 1073741824)<br>
<br>
 # CHECK: name:            basealigned_load<br>
-# CHECK: MOV32rm {{.*}} :: (load (s32) from unknown-address + 4, basealign 4294967296)<br>
+# CHECK: MOV32rm {{.*}} :: (load (s32) from unknown-address + 4, basealign 1073741824)<br>
<br>
 ---<br>
 name:            truly_aligned_load<br>
@@ -20,7 +20,7 @@ body:             |<br>
   bb.0:<br>
     liveins: $rdi<br>
<br>
-    renamable $eax = MOV32rm killed renamable $rdi, 1, $noreg, 0, $noreg :: (load (s32) from unknown-address, align 4294967296)<br>
+    renamable $eax = MOV32rm killed renamable $rdi, 1, $noreg, 0, $noreg :: (load (s32) from unknown-address, align 1073741824)<br>
     RETQ $eax<br>
<br>
 ...<br>
@@ -38,7 +38,7 @@ body:             |<br>
   bb.0:<br>
     liveins: $rdi<br>
<br>
-    renamable $eax = MOV32rm killed renamable $rdi, 1, $noreg, 0, $noreg :: (load (s32) from unknown-address + 4, basealign 4294967296)<br>
+    renamable $eax = MOV32rm killed renamable $rdi, 1, $noreg, 0, $noreg :: (load (s32) from unknown-address + 4, basealign 1073741824)<br>
     RETQ $eax<br>
<br>
 ...<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll b/llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll<br>
index 18a2de01c532..28342a655719 100644<br>
--- a/llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll<br>
+++ b/llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll<br>
@@ -7,7 +7,7 @@<br>
<br>
 define internal void @dead() {<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@dead() {<br>
-; IS__CGSCC____-NEXT:    [[TMP1:%.*]] = call i32 @test(i32* noalias noundef align 4294967296 null)<br>
+; IS__CGSCC____-NEXT:    [[TMP1:%.*]] = call i32 @test(i32* noalias noundef align 1073741824 null)<br>
 ; IS__CGSCC____-NEXT:    ret void<br>
 ;<br>
   call i32 @test(i32* null, i32* null)<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll b/llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll<br>
index 8d27ad5e73a9..795a065c7785 100644<br>
--- a/llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll<br>
+++ b/llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll<br>
@@ -7,7 +7,7 @@<br>
<br>
 define internal void @dead() {<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@dead() {<br>
-; IS__CGSCC____-NEXT:    [[TMP1:%.*]] = call i32 @test(i32* noalias noundef align 4294967296 null)<br>
+; IS__CGSCC____-NEXT:    [[TMP1:%.*]] = call i32 @test(i32* noalias noundef align 1073741824 null)<br>
 ; IS__CGSCC____-NEXT:    ret void<br>
 ;<br>
   call i32 @test(i32* null, i32* null)<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll b/llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll<br>
index 4d2af622fa7a..5dba5d25df55 100644<br>
--- a/llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll<br>
+++ b/llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll<br>
@@ -153,7 +153,7 @@ define void @fn_no_null_opt(i32* %P, i1 %C) null_pointer_is_valid {<br>
 ; IS__CGSCC_OPM-NEXT:    br i1 [[C]], label [[IF_END]], label [[EXIT:%.*]]<br>
 ; IS__CGSCC_OPM:       if.end:<br>
 ; IS__CGSCC_OPM-NEXT:    [[E_2:%.*]] = phi i32* [ undef, [[ENTRY:%.*]] ], [ null, [[FOR_COND1:%.*]] ]<br>
-; IS__CGSCC_OPM-NEXT:    [[TMP0:%.*]] = load i32, i32* null, align 4294967296<br>
+; IS__CGSCC_OPM-NEXT:    [[TMP0:%.*]] = load i32, i32* null, align 1073741824<br>
 ; IS__CGSCC_OPM-NEXT:    [[CALL:%.*]] = call i32 @fn0(i32 [[TMP0]])<br>
 ; IS__CGSCC_OPM-NEXT:    store i32 [[CALL]], i32* [[P]], align 4<br>
 ; IS__CGSCC_OPM-NEXT:    br label [[FOR_COND1]]<br>
@@ -169,7 +169,7 @@ define void @fn_no_null_opt(i32* %P, i1 %C) null_pointer_is_valid {<br>
 ; IS__CGSCC_NPM-NEXT:    br i1 [[C]], label [[IF_END]], label [[EXIT:%.*]]<br>
 ; IS__CGSCC_NPM:       if.end:<br>
 ; IS__CGSCC_NPM-NEXT:    [[E_2:%.*]] = phi i32* [ undef, [[ENTRY:%.*]] ], [ null, [[FOR_COND1:%.*]] ]<br>
-; IS__CGSCC_NPM-NEXT:    [[TMP0:%.*]] = load i32, i32* null, align 4294967296<br>
+; IS__CGSCC_NPM-NEXT:    [[TMP0:%.*]] = load i32, i32* null, align 1073741824<br>
 ; IS__CGSCC_NPM-NEXT:    store i32 [[TMP0]], i32* [[P]], align 4<br>
 ; IS__CGSCC_NPM-NEXT:    br label [[FOR_COND1]]<br>
 ; IS__CGSCC_NPM:       exit:<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll b/llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll<br>
index 4414741a2062..6dfb5c769dab 100644<br>
--- a/llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll<br>
+++ b/llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll<br>
@@ -39,10 +39,10 @@ define dso_local i32 @main() {<br>
 ; IS__TUNIT____-NEXT:    [[ALLOC1:%.*]] = alloca i8, align 8<br>
 ; IS__TUNIT____-NEXT:    [[ALLOC2:%.*]] = alloca i8, align 8<br>
 ; IS__TUNIT____-NEXT:    [[THREAD:%.*]] = alloca i64, align 8<br>
-; IS__TUNIT____-NEXT:    [[CALL:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 4294967296 null, i8* (i8*)* noundef nonnull @foo, i8* noalias nocapture nofree readnone align 4294967296 undef)<br>
-; IS__TUNIT____-NEXT:    [[CALL1:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 4294967296 null, i8* (i8*)* noundef nonnull @bar, i8* noalias nocapture nofree nonnull readnone align 8 dereferenceable(8) undef)<br>
-; IS__TUNIT____-NEXT:    [[CALL2:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 4294967296 null, i8* (i8*)* noundef nonnull @baz, i8* noalias nocapture nofree noundef nonnull readnone align 8 dereferenceable(1) [[ALLOC1]])<br>
-; IS__TUNIT____-NEXT:    [[CALL3:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 4294967296 null, i8* (i8*)* noundef nonnull @buz, i8* noalias nofree noundef nonnull readnone align 8 dereferenceable(1) "no-capture-maybe-returned" [[ALLOC2]])<br>
+; IS__TUNIT____-NEXT:    [[CALL:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 1073741824 null, i8* (i8*)* noundef nonnull @foo, i8* noalias nocapture nofree readnone align 1073741824 undef)<br>
+; IS__TUNIT____-NEXT:    [[CALL1:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 1073741824 null, i8* (i8*)* noundef nonnull @bar, i8* noalias nocapture nofree nonnull readnone align 8 dereferenceable(8) undef)<br>
+; IS__TUNIT____-NEXT:    [[CALL2:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 1073741824 null, i8* (i8*)* noundef nonnull @baz, i8* noalias nocapture nofree noundef nonnull readnone align 8 dereferenceable(1) [[ALLOC1]])<br>
+; IS__TUNIT____-NEXT:    [[CALL3:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 1073741824 null, i8* (i8*)* noundef nonnull @buz, i8* noalias nofree noundef nonnull readnone align 8 dereferenceable(1) "no-capture-maybe-returned" [[ALLOC2]])<br>
 ; IS__TUNIT____-NEXT:    ret i32 0<br>
 ;<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@main() {<br>
@@ -50,10 +50,10 @@ define dso_local i32 @main() {<br>
 ; IS__CGSCC____-NEXT:    [[ALLOC1:%.*]] = alloca i8, align 8<br>
 ; IS__CGSCC____-NEXT:    [[ALLOC2:%.*]] = alloca i8, align 8<br>
 ; IS__CGSCC____-NEXT:    [[THREAD:%.*]] = alloca i64, align 8<br>
-; IS__CGSCC____-NEXT:    [[CALL:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 4294967296 null, i8* (i8*)* noundef nonnull @foo, i8* noalias nocapture nofree noundef readnone align 4294967296 null)<br>
-; IS__CGSCC____-NEXT:    [[CALL1:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 4294967296 null, i8* (i8*)* noundef nonnull @bar, i8* noalias nocapture nofree noundef nonnull readnone align 8 dereferenceable(8) bitcast (i8** @GlobalVPtr to i8*))<br>
-; IS__CGSCC____-NEXT:    [[CALL2:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 4294967296 null, i8* (i8*)* noundef nonnull @baz, i8* noalias nocapture nofree noundef nonnull readnone align 8 dereferenceable(1) [[ALLOC1]])<br>
-; IS__CGSCC____-NEXT:    [[CALL3:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 4294967296 null, i8* (i8*)* noundef nonnull @buz, i8* noalias nofree noundef nonnull readnone align 8 dereferenceable(1) "no-capture-maybe-returned" [[ALLOC2]])<br>
+; IS__CGSCC____-NEXT:    [[CALL:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 1073741824 null, i8* (i8*)* noundef nonnull @foo, i8* noalias nocapture nofree noundef readnone align 1073741824 null)<br>
+; IS__CGSCC____-NEXT:    [[CALL1:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 1073741824 null, i8* (i8*)* noundef nonnull @bar, i8* noalias nocapture nofree noundef nonnull readnone align 8 dereferenceable(8) bitcast (i8** @GlobalVPtr to i8*))<br>
+; IS__CGSCC____-NEXT:    [[CALL2:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 1073741824 null, i8* (i8*)* noundef nonnull @baz, i8* noalias nocapture nofree noundef nonnull readnone align 8 dereferenceable(1) [[ALLOC1]])<br>
+; IS__CGSCC____-NEXT:    [[CALL3:%.*]] = call i32 @pthread_create(i64* noundef nonnull align 8 dereferenceable(8) [[THREAD]], %union.pthread_attr_t* noalias nocapture noundef align 1073741824 null, i8* (i8*)* noundef nonnull @buz, i8* noalias nofree noundef nonnull readnone align 8 dereferenceable(1) "no-capture-maybe-returned" [[ALLOC2]])<br>
 ; IS__CGSCC____-NEXT:    ret i32 0<br>
 ;<br>
 entry:<br>
@@ -72,13 +72,13 @@ declare !callback !0 dso_local i32 @pthread_create(i64*, %union.pthread_attr_t*,<br>
 define internal i8* @foo(i8* %arg) {<br>
 ; IS__TUNIT____: Function Attrs: nofree nosync nounwind readnone willreturn<br>
 ; IS__TUNIT____-LABEL: define {{[^@]+}}@foo<br>
-; IS__TUNIT____-SAME: (i8* noalias nocapture nofree readnone align 4294967296 [[ARG:%.*]]) #[[ATTR0:[0-9]+]] {<br>
+; IS__TUNIT____-SAME: (i8* noalias nocapture nofree readnone align 1073741824 [[ARG:%.*]]) #[[ATTR0:[0-9]+]] {<br>
 ; IS__TUNIT____-NEXT:  entry:<br>
 ; IS__TUNIT____-NEXT:    ret i8* null<br>
 ;<br>
 ; IS__CGSCC____: Function Attrs: nofree norecurse nosync nounwind readnone willreturn<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@foo<br>
-; IS__CGSCC____-SAME: (i8* noalias nocapture nofree readnone align 4294967296 [[ARG:%.*]]) #[[ATTR0:[0-9]+]] {<br>
+; IS__CGSCC____-SAME: (i8* noalias nocapture nofree readnone align 1073741824 [[ARG:%.*]]) #[[ATTR0:[0-9]+]] {<br>
 ; IS__CGSCC____-NEXT:  entry:<br>
 ; IS__CGSCC____-NEXT:    ret i8* null<br>
 ;<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/callbacks.ll b/llvm/test/Transforms/Attributor/callbacks.ll<br>
index aed46afdb62b..7c1fe687a930 100644<br>
--- a/llvm/test/Transforms/Attributor/callbacks.ll<br>
+++ b/llvm/test/Transforms/Attributor/callbacks.ll<br>
@@ -25,7 +25,7 @@ define void @t0_caller(i32* %a) {<br>
 ; IS__TUNIT_OPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__TUNIT_OPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__TUNIT_OPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t0_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t0_callback_callee to void (i32*, i32*, ...)*), i32* align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t0_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t0_callback_callee to void (i32*, i32*, ...)*), i32* align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__TUNIT_OPM-NEXT:    ret void<br>
 ;<br>
 ; IS__TUNIT_NPM-LABEL: define {{[^@]+}}@t0_caller<br>
@@ -37,7 +37,7 @@ define void @t0_caller(i32* %a) {<br>
 ; IS__TUNIT_NPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__TUNIT_NPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__TUNIT_NPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t0_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t0_callback_callee to void (i32*, i32*, ...)*), i32* align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t0_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t0_callback_callee to void (i32*, i32*, ...)*), i32* align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__TUNIT_NPM-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC_OPM-LABEL: define {{[^@]+}}@t0_caller<br>
@@ -49,7 +49,7 @@ define void @t0_caller(i32* %a) {<br>
 ; IS__CGSCC_OPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__CGSCC_OPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__CGSCC_OPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t0_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t0_callback_callee to void (i32*, i32*, ...)*), i32* align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t0_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t0_callback_callee to void (i32*, i32*, ...)*), i32* align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__CGSCC_OPM-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC_NPM-LABEL: define {{[^@]+}}@t0_caller<br>
@@ -61,7 +61,7 @@ define void @t0_caller(i32* %a) {<br>
 ; IS__CGSCC_NPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__CGSCC_NPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__CGSCC_NPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t0_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t0_callback_callee to void (i32*, i32*, ...)*), i32* align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t0_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t0_callback_callee to void (i32*, i32*, ...)*), i32* align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__CGSCC_NPM-NEXT:    ret void<br>
 ;<br>
 entry:<br>
@@ -125,7 +125,7 @@ define void @t1_caller(i32* noalias %a) {<br>
 ; IS__TUNIT_OPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__TUNIT_OPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__TUNIT_OPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t1_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t1_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t1_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t1_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__TUNIT_OPM-NEXT:    ret void<br>
 ;<br>
 ; IS__TUNIT_NPM-LABEL: define {{[^@]+}}@t1_caller<br>
@@ -137,7 +137,7 @@ define void @t1_caller(i32* noalias %a) {<br>
 ; IS__TUNIT_NPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__TUNIT_NPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__TUNIT_NPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t1_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t1_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t1_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t1_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__TUNIT_NPM-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC_OPM-LABEL: define {{[^@]+}}@t1_caller<br>
@@ -149,7 +149,7 @@ define void @t1_caller(i32* noalias %a) {<br>
 ; IS__CGSCC_OPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__CGSCC_OPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__CGSCC_OPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t1_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t1_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t1_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t1_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__CGSCC_OPM-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC_NPM-LABEL: define {{[^@]+}}@t1_caller<br>
@@ -161,7 +161,7 @@ define void @t1_caller(i32* noalias %a) {<br>
 ; IS__CGSCC_NPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__CGSCC_NPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__CGSCC_NPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t1_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t1_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t1_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t1_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__CGSCC_NPM-NEXT:    ret void<br>
 ;<br>
 entry:<br>
@@ -225,7 +225,7 @@ define void @t2_caller(i32* noalias %a) {<br>
 ; IS__TUNIT_OPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__TUNIT_OPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__TUNIT_OPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t2_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t2_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t2_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t2_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__TUNIT_OPM-NEXT:    ret void<br>
 ;<br>
 ; IS__TUNIT_NPM-LABEL: define {{[^@]+}}@t2_caller<br>
@@ -237,7 +237,7 @@ define void @t2_caller(i32* noalias %a) {<br>
 ; IS__TUNIT_NPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__TUNIT_NPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__TUNIT_NPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t2_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t2_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t2_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t2_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__TUNIT_NPM-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC_OPM-LABEL: define {{[^@]+}}@t2_caller<br>
@@ -249,7 +249,7 @@ define void @t2_caller(i32* noalias %a) {<br>
 ; IS__CGSCC_OPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__CGSCC_OPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__CGSCC_OPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t2_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t2_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t2_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t2_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__CGSCC_OPM-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC_NPM-LABEL: define {{[^@]+}}@t2_caller<br>
@@ -261,7 +261,7 @@ define void @t2_caller(i32* noalias %a) {<br>
 ; IS__CGSCC_NPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__CGSCC_NPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__CGSCC_NPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t2_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t2_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t2_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t2_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__CGSCC_NPM-NEXT:    ret void<br>
 ;<br>
 entry:<br>
@@ -325,8 +325,8 @@ define void @t3_caller(i32* noalias %a) {<br>
 ; IS__TUNIT_OPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__TUNIT_OPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__TUNIT_OPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
-; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__TUNIT_OPM-NEXT:    ret void<br>
 ;<br>
 ; IS__TUNIT_NPM-LABEL: define {{[^@]+}}@t3_caller<br>
@@ -338,8 +338,8 @@ define void @t3_caller(i32* noalias %a) {<br>
 ; IS__TUNIT_NPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__TUNIT_NPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__TUNIT_NPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
-; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__TUNIT_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 undef, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__TUNIT_NPM-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC_OPM-LABEL: define {{[^@]+}}@t3_caller<br>
@@ -351,8 +351,8 @@ define void @t3_caller(i32* noalias %a) {<br>
 ; IS__CGSCC_OPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__CGSCC_OPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__CGSCC_OPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
-; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_OPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__CGSCC_OPM-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC_NPM-LABEL: define {{[^@]+}}@t3_caller<br>
@@ -364,8 +364,8 @@ define void @t3_caller(i32* noalias %a) {<br>
 ; IS__CGSCC_NPM-NEXT:    [[TMP0:%.*]] = bitcast i32* [[B]] to i8*<br>
 ; IS__CGSCC_NPM-NEXT:    store i32 42, i32* [[B]], align 32<br>
 ; IS__CGSCC_NPM-NEXT:    store i32* [[B]], i32** [[C]], align 64<br>
-; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
-; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 4294967296 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
+; IS__CGSCC_NPM-NEXT:    call void (i32*, i32*, void (i32*, i32*, ...)*, ...) @t3_callback_broker(i32* noalias nocapture noundef align 1073741824 null, i32* noalias nocapture noundef nonnull align 128 dereferenceable(4) [[PTR]], void (i32*, i32*, ...)* nocapture noundef bitcast (void (i32*, i32*, i32*, i64, i32**)* @t3_callback_callee to void (i32*, i32*, ...)*), i32* nocapture align 256 [[A]], i64 noundef 99, i32** noalias nocapture nofree noundef nonnull readonly align 64 dereferenceable(8) [[C]])<br>
 ; IS__CGSCC_NPM-NEXT:    ret void<br>
 ;<br>
 entry:<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/liveness.ll b/llvm/test/Transforms/Attributor/liveness.ll<br>
index fcb6530c6333..393000bacd53 100644<br>
--- a/llvm/test/Transforms/Attributor/liveness.ll<br>
+++ b/llvm/test/Transforms/Attributor/liveness.ll<br>
@@ -527,13 +527,13 @@ define void @ub(i32* %0) {<br>
 ; IS__TUNIT_NPM: Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly<br>
 ; IS__TUNIT_NPM-LABEL: define {{[^@]+}}@ub<br>
 ; IS__TUNIT_NPM-SAME: (i32* nocapture nofree readnone [[TMP0:%.*]]) #[[ATTR8:[0-9]+]] {<br>
-; IS__TUNIT_NPM-NEXT:    store i32 0, i32* undef, align 4294967296<br>
+; IS__TUNIT_NPM-NEXT:    store i32 0, i32* undef, align 1073741824<br>
 ; IS__TUNIT_NPM-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC____: Function Attrs: argmemonly nofree norecurse nosync nounwind willreturn writeonly<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@ub<br>
 ; IS__CGSCC____-SAME: (i32* nocapture nofree readnone [[TMP0:%.*]]) #[[ATTR10:[0-9]+]] {<br>
-; IS__CGSCC____-NEXT:    store i32 0, i32* undef, align 4294967296<br>
+; IS__CGSCC____-NEXT:    store i32 0, i32* undef, align 1073741824<br>
 ; IS__CGSCC____-NEXT:    ret void<br>
 ;<br>
   %poison = sub nuw i32 0, 1           ; Results in a poison value.<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/memory_locations.ll b/llvm/test/Transforms/Attributor/memory_locations.ll<br>
index 7e9e3d2a33ff..b9a97aceb60e 100644<br>
--- a/llvm/test/Transforms/Attributor/memory_locations.ll<br>
+++ b/llvm/test/Transforms/Attributor/memory_locations.ll<br>
@@ -397,7 +397,7 @@ define void @callerC2() {<br>
 }<br>
 define void @callerD1() {<br>
 ; CHECK-LABEL: define {{[^@]+}}@callerD1() {<br>
-; CHECK-NEXT:    [[UNKNOWN:%.*]] = call i8* @argmem_only(i8* noalias nocapture noundef align 4294967296 null)<br>
+; CHECK-NEXT:    [[UNKNOWN:%.*]] = call i8* @argmem_only(i8* noalias nocapture noundef align 1073741824 null)<br>
 ; CHECK-NEXT:    store i8 0, i8* [[UNKNOWN]], align 1<br>
 ; CHECK-NEXT:    ret void<br>
 ;<br>
@@ -407,7 +407,7 @@ define void @callerD1() {<br>
 }<br>
 define void @callerD2() {<br>
 ; CHECK-LABEL: define {{[^@]+}}@callerD2() {<br>
-; CHECK-NEXT:    [[UNKNOWN:%.*]] = call i8* @inaccesible_argmem_only_decl(i8* noalias nocapture noundef align 4294967296 null)<br>
+; CHECK-NEXT:    [[UNKNOWN:%.*]] = call i8* @inaccesible_argmem_only_decl(i8* noalias nocapture noundef align 1073741824 null)<br>
 ; CHECK-NEXT:    store i8 0, i8* [[UNKNOWN]], align 1<br>
 ; CHECK-NEXT:    ret void<br>
 ;<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/noalias.ll b/llvm/test/Transforms/Attributor/noalias.ll<br>
index ef2c404595a3..820f68185a39 100644<br>
--- a/llvm/test/Transforms/Attributor/noalias.ll<br>
+++ b/llvm/test/Transforms/Attributor/noalias.ll<br>
@@ -265,7 +265,7 @@ define i8* @test8(i32* %0) nounwind uwtable {<br>
 declare void @use_i8(i8* nocapture)<br>
 define internal void @test9a(i8* %a, i8* %b) {<br>
 ; CHECK-LABEL: define {{[^@]+}}@test9a() {<br>
-; CHECK-NEXT:    call void @use_i8(i8* noalias nocapture noundef align 4294967296 null)<br>
+; CHECK-NEXT:    call void @use_i8(i8* noalias nocapture noundef align 1073741824 null)<br>
 ; CHECK-NEXT:    ret void<br>
 ;<br>
   call void @use_i8(i8* null)<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/nocapture-1.ll b/llvm/test/Transforms/Attributor/nocapture-1.ll<br>
index ac6545a69f92..544f3bde7c72 100644<br>
--- a/llvm/test/Transforms/Attributor/nocapture-1.ll<br>
+++ b/llvm/test/Transforms/Attributor/nocapture-1.ll<br>
@@ -478,7 +478,7 @@ define i8* @test4_2(i8* %x4_2, i8* %y4_2, i8* %z4_2, i1 %c) {<br>
 ; IS________OPM-SAME: (i8* nocapture nofree readnone [[X4_2:%.*]], i8* nofree readnone returned "no-capture-maybe-returned" [[Y4_2:%.*]], i8* nocapture nofree readnone [[Z4_2:%.*]], i1 [[C:%.*]]) #[[ATTR7]] {<br>
 ; IS________OPM-NEXT:    br i1 [[C]], label [[T:%.*]], label [[F:%.*]]<br>
 ; IS________OPM:       t:<br>
-; IS________OPM-NEXT:    call void @test4_1(i8* noalias nocapture nofree noundef readnone align 4294967296 null, i1 [[C]]) #[[ATTR7]]<br>
+; IS________OPM-NEXT:    call void @test4_1(i8* noalias nocapture nofree noundef readnone align 1073741824 null, i1 [[C]]) #[[ATTR7]]<br>
 ; IS________OPM-NEXT:    store i32* null, i32** @g, align 8<br>
 ; IS________OPM-NEXT:    br label [[F]]<br>
 ; IS________OPM:       f:<br>
@@ -489,7 +489,7 @@ define i8* @test4_2(i8* %x4_2, i8* %y4_2, i8* %z4_2, i1 %c) {<br>
 ; IS________NPM-SAME: (i8* nocapture nofree readnone [[X4_2:%.*]], i8* nofree readnone returned "no-capture-maybe-returned" [[Y4_2:%.*]], i8* nocapture nofree readnone [[Z4_2:%.*]], i1 [[C:%.*]]) #[[ATTR7]] {<br>
 ; IS________NPM-NEXT:    br i1 [[C]], label [[T:%.*]], label [[F:%.*]]<br>
 ; IS________NPM:       t:<br>
-; IS________NPM-NEXT:    call void @test4_1(i8* noalias nocapture nofree noundef readnone align 4294967296 null, i1 noundef [[C]]) #[[ATTR7]]<br>
+; IS________NPM-NEXT:    call void @test4_1(i8* noalias nocapture nofree noundef readnone align 1073741824 null, i1 noundef [[C]]) #[[ATTR7]]<br>
 ; IS________NPM-NEXT:    store i32* null, i32** @g, align 8<br>
 ; IS________NPM-NEXT:    br label [[F]]<br>
 ; IS________NPM:       f:<br>
@@ -807,7 +807,7 @@ declare void @unknown(i8*)<br>
 define void @test_callsite() {<br>
 ; CHECK-LABEL: define {{[^@]+}}@test_callsite() {<br>
 ; CHECK-NEXT:  entry:<br>
-; CHECK-NEXT:    call void @unknown(i8* noalias nocapture noundef align 4294967296 null)<br>
+; CHECK-NEXT:    call void @unknown(i8* noalias nocapture noundef align 1073741824 null)<br>
 ; CHECK-NEXT:    ret void<br>
 ;<br>
 entry:<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/noundef.ll b/llvm/test/Transforms/Attributor/noundef.ll<br>
index a177674ca36c..efddca92b4a2 100644<br>
--- a/llvm/test/Transforms/Attributor/noundef.ll<br>
+++ b/llvm/test/Transforms/Attributor/noundef.ll<br>
@@ -41,7 +41,7 @@ define void @caller1() {<br>
<br>
 define internal void @argument_dead_callback_callee(i8* %c) {<br>
 ; CHECK-LABEL: define {{[^@]+}}@argument_dead_callback_callee<br>
-; CHECK-SAME: (i8* noalias nocapture nofree readnone align 4294967296 [[C:%.*]]) {<br>
+; CHECK-SAME: (i8* noalias nocapture nofree readnone align 1073741824 [[C:%.*]]) {<br>
 ; CHECK-NEXT:    call void @unknown()<br>
 ; CHECK-NEXT:    ret void<br>
 ;<br>
@@ -51,11 +51,11 @@ define internal void @argument_dead_callback_callee(i8* %c) {<br>
<br>
 define void @callback_caller() {<br>
 ; IS__TUNIT____-LABEL: define {{[^@]+}}@callback_caller() {<br>
-; IS__TUNIT____-NEXT:    call void @callback_broker(void (i8*)* noundef @argument_dead_callback_callee, i8* noalias nocapture nofree readnone align 4294967296 undef)<br>
+; IS__TUNIT____-NEXT:    call void @callback_broker(void (i8*)* noundef @argument_dead_callback_callee, i8* noalias nocapture nofree readnone align 1073741824 undef)<br>
 ; IS__TUNIT____-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@callback_caller() {<br>
-; IS__CGSCC____-NEXT:    call void @callback_broker(void (i8*)* noundef @argument_dead_callback_callee, i8* noalias nocapture nofree noundef readnone align 4294967296 null)<br>
+; IS__CGSCC____-NEXT:    call void @callback_broker(void (i8*)* noundef @argument_dead_callback_callee, i8* noalias nocapture nofree noundef readnone align 1073741824 null)<br>
 ; IS__CGSCC____-NEXT:    ret void<br>
 ;<br>
   call void @callback_broker(void (i8*)* @argument_dead_callback_callee, i8* null)<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/undefined_behavior.ll b/llvm/test/Transforms/Attributor/undefined_behavior.ll<br>
index 368b1f03ceb5..71063d4f5f16 100644<br>
--- a/llvm/test/Transforms/Attributor/undefined_behavior.ll<br>
+++ b/llvm/test/Transforms/Attributor/undefined_behavior.ll<br>
@@ -134,13 +134,13 @@ define void @store_wholly_unreachable_volatile() {<br>
 ; IS__TUNIT____: Function Attrs: nofree nounwind readnone willreturn<br>
 ; IS__TUNIT____-LABEL: define {{[^@]+}}@store_wholly_unreachable_volatile<br>
 ; IS__TUNIT____-SAME: () #[[ATTR2:[0-9]+]] {<br>
-; IS__TUNIT____-NEXT:    store volatile i32 5, i32* null, align 4294967296<br>
+; IS__TUNIT____-NEXT:    store volatile i32 5, i32* null, align 1073741824<br>
 ; IS__TUNIT____-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC____: Function Attrs: nofree norecurse nounwind readnone willreturn<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@store_wholly_unreachable_volatile<br>
 ; IS__CGSCC____-SAME: () #[[ATTR2:[0-9]+]] {<br>
-; IS__CGSCC____-NEXT:    store volatile i32 5, i32* null, align 4294967296<br>
+; IS__CGSCC____-NEXT:    store volatile i32 5, i32* null, align 1073741824<br>
 ; IS__CGSCC____-NEXT:    ret void<br>
 ;<br>
   store volatile i32 5, i32* null<br>
@@ -178,13 +178,13 @@ define void @store_null_pointer_is_defined() null_pointer_is_valid {<br>
 ; IS__TUNIT____: Function Attrs: nofree nosync nounwind null_pointer_is_valid willreturn writeonly<br>
 ; IS__TUNIT____-LABEL: define {{[^@]+}}@store_null_pointer_is_defined<br>
 ; IS__TUNIT____-SAME: () #[[ATTR3:[0-9]+]] {<br>
-; IS__TUNIT____-NEXT:    store i32 5, i32* null, align 4294967296<br>
+; IS__TUNIT____-NEXT:    store i32 5, i32* null, align 1073741824<br>
 ; IS__TUNIT____-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC____: Function Attrs: nofree norecurse nosync nounwind null_pointer_is_valid willreturn writeonly<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@store_null_pointer_is_defined<br>
 ; IS__CGSCC____-SAME: () #[[ATTR3:[0-9]+]] {<br>
-; IS__CGSCC____-NEXT:    store i32 5, i32* null, align 4294967296<br>
+; IS__CGSCC____-NEXT:    store i32 5, i32* null, align 1073741824<br>
 ; IS__CGSCC____-NEXT:    ret void<br>
 ;<br>
   store i32 5, i32* null<br>
@@ -832,7 +832,7 @@ define void @arg_nonnull_violation3_1(i1 %c) {<br>
 ; IS__TUNIT____-NEXT:    br i1 [[C]], label [[T:%.*]], label [[F:%.*]]<br>
 ; IS__TUNIT____:       t:<br>
 ; IS__TUNIT____-NEXT:    call void @arg_nonnull_12(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]]) #[[ATTR7:[0-9]+]]<br>
-; IS__TUNIT____-NEXT:    call void @arg_nonnull_12(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* noalias nocapture nofree noundef writeonly align 4294967296 null) #[[ATTR7]]<br>
+; IS__TUNIT____-NEXT:    call void @arg_nonnull_12(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* noalias nocapture nofree noundef writeonly align 1073741824 null) #[[ATTR7]]<br>
 ; IS__TUNIT____-NEXT:    unreachable<br>
 ; IS__TUNIT____:       f:<br>
 ; IS__TUNIT____-NEXT:    unreachable<br>
@@ -846,7 +846,7 @@ define void @arg_nonnull_violation3_1(i1 %c) {<br>
 ; IS__CGSCC____-NEXT:    br i1 [[C]], label [[T:%.*]], label [[F:%.*]]<br>
 ; IS__CGSCC____:       t:<br>
 ; IS__CGSCC____-NEXT:    call void @arg_nonnull_12(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]]) #[[ATTR7:[0-9]+]]<br>
-; IS__CGSCC____-NEXT:    call void @arg_nonnull_12(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* noalias nocapture nofree noundef writeonly align 4294967296 null) #[[ATTR7]]<br>
+; IS__CGSCC____-NEXT:    call void @arg_nonnull_12(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* noalias nocapture nofree noundef writeonly align 1073741824 null) #[[ATTR7]]<br>
 ; IS__CGSCC____-NEXT:    unreachable<br>
 ; IS__CGSCC____:       f:<br>
 ; IS__CGSCC____-NEXT:    unreachable<br>
@@ -879,7 +879,7 @@ define void @arg_nonnull_violation3_2(i1 %c) {<br>
 ; IS__TUNIT____-NEXT:    br i1 [[C]], label [[T:%.*]], label [[F:%.*]]<br>
 ; IS__TUNIT____:       t:<br>
 ; IS__TUNIT____-NEXT:    call void @arg_nonnull_12_noundef_2(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]]) #[[ATTR7]]<br>
-; IS__TUNIT____-NEXT:    call void @arg_nonnull_12_noundef_2(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* noalias nocapture nofree noundef writeonly align 4294967296 null) #[[ATTR7]]<br>
+; IS__TUNIT____-NEXT:    call void @arg_nonnull_12_noundef_2(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* noalias nocapture nofree noundef writeonly align 1073741824 null) #[[ATTR7]]<br>
 ; IS__TUNIT____-NEXT:    unreachable<br>
 ; IS__TUNIT____:       f:<br>
 ; IS__TUNIT____-NEXT:    unreachable<br>
@@ -893,7 +893,7 @@ define void @arg_nonnull_violation3_2(i1 %c) {<br>
 ; IS__CGSCC____-NEXT:    br i1 [[C]], label [[T:%.*]], label [[F:%.*]]<br>
 ; IS__CGSCC____:       t:<br>
 ; IS__CGSCC____-NEXT:    call void @arg_nonnull_12_noundef_2(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]]) #[[ATTR7]]<br>
-; IS__CGSCC____-NEXT:    call void @arg_nonnull_12_noundef_2(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* noalias nocapture nofree noundef writeonly align 4294967296 null) #[[ATTR7]]<br>
+; IS__CGSCC____-NEXT:    call void @arg_nonnull_12_noundef_2(i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* nocapture nofree noundef nonnull writeonly align 4 dereferenceable(4) [[PTR]], i32* noalias nocapture nofree noundef writeonly align 1073741824 null) #[[ATTR7]]<br>
 ; IS__CGSCC____-NEXT:    unreachable<br>
 ; IS__CGSCC____:       f:<br>
 ; IS__CGSCC____-NEXT:    unreachable<br>
<br>
diff  --git a/llvm/test/Transforms/Attributor/value-simplify.ll b/llvm/test/Transforms/Attributor/value-simplify.ll<br>
index 78cb210aebe3..b674563e65fb 100644<br>
--- a/llvm/test/Transforms/Attributor/value-simplify.ll<br>
+++ b/llvm/test/Transforms/Attributor/value-simplify.ll<br>
@@ -449,12 +449,12 @@ define i32* @complicated_args_inalloca(i32* %arg) {<br>
 define internal i32* @test_preallocated(i32* preallocated(i32) %a) {<br>
 ; IS__TUNIT____: Function Attrs: nofree nosync nounwind readnone willreturn<br>
 ; IS__TUNIT____-LABEL: define {{[^@]+}}@test_preallocated<br>
-; IS__TUNIT____-SAME: (i32* noalias nofree noundef nonnull returned writeonly preallocated(i32) align 4294967296 dereferenceable(4) "no-capture-maybe-returned" [[A:%.*]]) #[[ATTR1]] {<br>
+; IS__TUNIT____-SAME: (i32* noalias nofree noundef nonnull returned writeonly preallocated(i32) align 1073741824 dereferenceable(4) "no-capture-maybe-returned" [[A:%.*]]) #[[ATTR1]] {<br>
 ; IS__TUNIT____-NEXT:    ret i32* [[A]]<br>
 ;<br>
 ; IS__CGSCC____: Function Attrs: nofree norecurse nosync nounwind readnone willreturn<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@test_preallocated<br>
-; IS__CGSCC____-SAME: (i32* noalias nofree noundef nonnull returned writeonly preallocated(i32) align 4294967296 dereferenceable(4) "no-capture-maybe-returned" [[A:%.*]]) #[[ATTR1]] {<br>
+; IS__CGSCC____-SAME: (i32* noalias nofree noundef nonnull returned writeonly preallocated(i32) align 1073741824 dereferenceable(4) "no-capture-maybe-returned" [[A:%.*]]) #[[ATTR1]] {<br>
 ; IS__CGSCC____-NEXT:    ret i32* [[A]]<br>
 ;<br>
   ret i32* %a<br>
@@ -464,14 +464,14 @@ define i32* @complicated_args_preallocated() {<br>
 ; IS__TUNIT_OPM-LABEL: define {{[^@]+}}@complicated_args_preallocated<br>
 ; IS__TUNIT_OPM-SAME: () #[[ATTR0:[0-9]+]] {<br>
 ; IS__TUNIT_OPM-NEXT:    [[C:%.*]] = call token @llvm.call.preallocated.setup(i32 noundef 1) #[[ATTR5:[0-9]+]]<br>
-; IS__TUNIT_OPM-NEXT:    [[CALL:%.*]] = call noundef nonnull align 4294967296 dereferenceable(4) i32* @test_preallocated(i32* noalias nocapture nofree noundef writeonly preallocated(i32) align 4294967296 null) #[[ATTR1]] [ "preallocated"(token [[C]]) ]<br>
+; IS__TUNIT_OPM-NEXT:    [[CALL:%.*]] = call noundef nonnull align 1073741824 dereferenceable(4) i32* @test_preallocated(i32* noalias nocapture nofree noundef writeonly preallocated(i32) align 1073741824 null) #[[ATTR1]] [ "preallocated"(token [[C]]) ]<br>
 ; IS__TUNIT_OPM-NEXT:    ret i32* [[CALL]]<br>
 ;<br>
 ; IS__TUNIT_NPM: Function Attrs: nofree nosync nounwind willreturn<br>
 ; IS__TUNIT_NPM-LABEL: define {{[^@]+}}@complicated_args_preallocated<br>
 ; IS__TUNIT_NPM-SAME: () #[[ATTR0:[0-9]+]] {<br>
 ; IS__TUNIT_NPM-NEXT:    [[C:%.*]] = call token @llvm.call.preallocated.setup(i32 noundef 1) #[[ATTR4:[0-9]+]]<br>
-; IS__TUNIT_NPM-NEXT:    [[CALL:%.*]] = call noundef nonnull align 4294967296 dereferenceable(4) i32* @test_preallocated(i32* noalias nocapture nofree noundef writeonly preallocated(i32) align 4294967296 null) #[[ATTR1]] [ "preallocated"(token [[C]]) ]<br>
+; IS__TUNIT_NPM-NEXT:    [[CALL:%.*]] = call noundef nonnull align 1073741824 dereferenceable(4) i32* @test_preallocated(i32* noalias nocapture nofree noundef writeonly preallocated(i32) align 1073741824 null) #[[ATTR1]] [ "preallocated"(token [[C]]) ]<br>
 ; IS__TUNIT_NPM-NEXT:    ret i32* [[CALL]]<br>
 ;<br>
 ; IS__CGSCC_OPM: Function Attrs: nofree nosync nounwind willreturn<br>
@@ -495,13 +495,13 @@ define internal void @test_sret(%struct.X* sret(%struct.X) %a, %struct.X** %b) {<br>
 ;<br>
 ; IS__TUNIT____: Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly<br>
 ; IS__TUNIT____-LABEL: define {{[^@]+}}@test_sret<br>
-; IS__TUNIT____-SAME: (%struct.X* noalias nofree noundef nonnull writeonly sret([[STRUCT_X:%.*]]) align 4294967296 dereferenceable(8) [[A:%.*]], %struct.X** nocapture nofree noundef nonnull writeonly align 8 dereferenceable(8) [[B:%.*]]) #[[ATTR2:[0-9]+]] {<br>
+; IS__TUNIT____-SAME: (%struct.X* noalias nofree noundef nonnull writeonly sret([[STRUCT_X:%.*]]) align 1073741824 dereferenceable(8) [[A:%.*]], %struct.X** nocapture nofree noundef nonnull writeonly align 8 dereferenceable(8) [[B:%.*]]) #[[ATTR2:[0-9]+]] {<br>
 ; IS__TUNIT____-NEXT:    store %struct.X* [[A]], %struct.X** [[B]], align 8<br>
 ; IS__TUNIT____-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC____: Function Attrs: argmemonly nofree norecurse nosync nounwind willreturn writeonly<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@test_sret<br>
-; IS__CGSCC____-SAME: (%struct.X* noalias nofree noundef nonnull writeonly sret([[STRUCT_X:%.*]]) align 4294967296 dereferenceable(8) [[A:%.*]], %struct.X** nocapture nofree noundef nonnull writeonly align 8 dereferenceable(8) [[B:%.*]]) #[[ATTR2:[0-9]+]] {<br>
+; IS__CGSCC____-SAME: (%struct.X* noalias nofree noundef nonnull writeonly sret([[STRUCT_X:%.*]]) align 1073741824 dereferenceable(8) [[A:%.*]], %struct.X** nocapture nofree noundef nonnull writeonly align 8 dereferenceable(8) [[B:%.*]]) #[[ATTR2:[0-9]+]] {<br>
 ; IS__CGSCC____-NEXT:    store %struct.X* [[A]], %struct.X** [[B]], align 8<br>
 ; IS__CGSCC____-NEXT:    ret void<br>
 ;<br>
@@ -515,7 +515,7 @@ define void @complicated_args_sret(%struct.X** %b) {<br>
 ; IS__TUNIT____: Function Attrs: argmemonly nofree nosync nounwind willreturn writeonly<br>
 ; IS__TUNIT____-LABEL: define {{[^@]+}}@complicated_args_sret<br>
 ; IS__TUNIT____-SAME: (%struct.X** nocapture nofree writeonly [[B:%.*]]) #[[ATTR2]] {<br>
-; IS__TUNIT____-NEXT:    call void @test_sret(%struct.X* noalias nocapture nofree noundef writeonly sret([[STRUCT_X:%.*]]) align 4294967296 null, %struct.X** nocapture nofree writeonly align 8 [[B]]) #[[ATTR3:[0-9]+]]<br>
+; IS__TUNIT____-NEXT:    call void @test_sret(%struct.X* noalias nocapture nofree noundef writeonly sret([[STRUCT_X:%.*]]) align 1073741824 null, %struct.X** nocapture nofree writeonly align 8 [[B]]) #[[ATTR3:[0-9]+]]<br>
 ; IS__TUNIT____-NEXT:    ret void<br>
 ;<br>
 ; IS__CGSCC____: Function Attrs: argmemonly nofree norecurse nosync nounwind willreturn writeonly<br>
@@ -530,7 +530,7 @@ define void @complicated_args_sret(%struct.X** %b) {<br>
 define internal %struct.X* @test_nest(%struct.X* nest %a) {<br>
 ; IS__CGSCC____: Function Attrs: nofree norecurse nosync nounwind readnone willreturn<br>
 ; IS__CGSCC____-LABEL: define {{[^@]+}}@test_nest<br>
-; IS__CGSCC____-SAME: (%struct.X* nest noalias nocapture nofree readnone align 4294967296 [[A:%.*]]) #[[ATTR1]] {<br>
+; IS__CGSCC____-SAME: (%struct.X* nest noalias nocapture nofree readnone align 1073741824 [[A:%.*]]) #[[ATTR1]] {<br>
 ; IS__CGSCC____-NEXT:    ret %struct.X* undef<br>
 ;<br>
   ret %struct.X* %a<br>
<br>
diff  --git a/llvm/test/Transforms/GVN/PRE/2017-06-28-pre-load-dbgloc.ll b/llvm/test/Transforms/GVN/PRE/2017-06-28-pre-load-dbgloc.ll<br>
index c81d5b3608e7..0a9c758b8e2e 100644<br>
--- a/llvm/test/Transforms/GVN/PRE/2017-06-28-pre-load-dbgloc.ll<br>
+++ b/llvm/test/Transforms/GVN/PRE/2017-06-28-pre-load-dbgloc.ll<br>
@@ -38,7 +38,7 @@ entry:<br>
 ; ALL: br i1 %tobool, label %entry.cond.end_crit_edge, label %cond.false, !dbg [[LOC_15_6:![0-9]+]]<br>
 ; ALL: entry.cond.end_crit_edge:<br>
 ; GVN: %.pre = load %struct.node*, %struct.node** null, align 8, !dbg [[LOC_16_13:![0-9]+]]<br>
-; INSTCOMBINE:store %struct.node* poison, %struct.node** null, align 4294967296, !dbg [[LOC_16_13:![0-9]+]]<br>
+; INSTCOMBINE:store %struct.node* poison, %struct.node** null, align 1073741824, !dbg [[LOC_16_13:![0-9]+]]<br>
<br>
 cond.false:<br>
   %0 = bitcast %struct.desc* %desc to i8***, !dbg !11<br>
<br>
diff  --git a/llvm/test/Transforms/InstCombine/atomic.ll b/llvm/test/Transforms/InstCombine/atomic.ll<br>
index c87a01a09eac..de1bc6707f7e 100644<br>
--- a/llvm/test/Transforms/InstCombine/atomic.ll<br>
+++ b/llvm/test/Transforms/InstCombine/atomic.ll<br>
@@ -119,7 +119,7 @@ define i32 @test8(i32* %p) {<br>
 ; ordering imposed.<br>
 define i32 @test9() {<br>
 ; CHECK-LABEL: @test9(<br>
-; CHECK-NEXT:    store i32 poison, i32* null, align 4294967296<br>
+; CHECK-NEXT:    store i32 poison, i32* null, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 poison<br>
 ;<br>
   %x = load atomic i32, i32* null unordered, align 4<br>
@@ -128,7 +128,7 @@ define i32 @test9() {<br>
<br>
 define i32 @test9_no_null_opt() #0 {<br>
 ; CHECK-LABEL: @test9_no_null_opt(<br>
-; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null unordered, align 4294967296<br>
+; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null unordered, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 [[X]]<br>
 ;<br>
   %x = load atomic i32, i32* null unordered, align 4<br>
@@ -138,7 +138,7 @@ define i32 @test9_no_null_opt() #0 {<br>
 ; FIXME: Could also fold<br>
 define i32 @test10() {<br>
 ; CHECK-LABEL: @test10(<br>
-; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null monotonic, align 4294967296<br>
+; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null monotonic, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 [[X]]<br>
 ;<br>
   %x = load atomic i32, i32* null monotonic, align 4<br>
@@ -147,7 +147,7 @@ define i32 @test10() {<br>
<br>
 define i32 @test10_no_null_opt() #0 {<br>
 ; CHECK-LABEL: @test10_no_null_opt(<br>
-; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null monotonic, align 4294967296<br>
+; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null monotonic, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 [[X]]<br>
 ;<br>
   %x = load atomic i32, i32* null monotonic, align 4<br>
@@ -157,7 +157,7 @@ define i32 @test10_no_null_opt() #0 {<br>
 ; Would this be legal to fold?  Probably?<br>
 define i32 @test11() {<br>
 ; CHECK-LABEL: @test11(<br>
-; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null seq_cst, align 4294967296<br>
+; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null seq_cst, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 [[X]]<br>
 ;<br>
   %x = load atomic i32, i32* null seq_cst, align 4<br>
@@ -166,7 +166,7 @@ define i32 @test11() {<br>
<br>
 define i32 @test11_no_null_opt() #0 {<br>
 ; CHECK-LABEL: @test11_no_null_opt(<br>
-; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null seq_cst, align 4294967296<br>
+; CHECK-NEXT:    [[X:%.*]] = load atomic i32, i32* null seq_cst, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 [[X]]<br>
 ;<br>
   %x = load atomic i32, i32* null seq_cst, align 4<br>
@@ -177,7 +177,7 @@ define i32 @test11_no_null_opt() #0 {<br>
 ; ordering imposed.<br>
 define i32 @test12() {<br>
 ; CHECK-LABEL: @test12(<br>
-; CHECK-NEXT:    store atomic i32 poison, i32* null unordered, align 4294967296<br>
+; CHECK-NEXT:    store atomic i32 poison, i32* null unordered, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 0<br>
 ;<br>
   store atomic i32 0, i32* null unordered, align 4<br>
@@ -186,7 +186,7 @@ define i32 @test12() {<br>
<br>
 define i32 @test12_no_null_opt() #0 {<br>
 ; CHECK-LABEL: @test12_no_null_opt(<br>
-; CHECK-NEXT:    store atomic i32 0, i32* null unordered, align 4294967296<br>
+; CHECK-NEXT:    store atomic i32 0, i32* null unordered, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 0<br>
 ;<br>
   store atomic i32 0, i32* null unordered, align 4<br>
@@ -196,7 +196,7 @@ define i32 @test12_no_null_opt() #0 {<br>
 ; FIXME: Could also fold<br>
 define i32 @test13() {<br>
 ; CHECK-LABEL: @test13(<br>
-; CHECK-NEXT:    store atomic i32 0, i32* null monotonic, align 4294967296<br>
+; CHECK-NEXT:    store atomic i32 0, i32* null monotonic, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 0<br>
 ;<br>
   store atomic i32 0, i32* null monotonic, align 4<br>
@@ -205,7 +205,7 @@ define i32 @test13() {<br>
<br>
 define i32 @test13_no_null_opt() #0 {<br>
 ; CHECK-LABEL: @test13_no_null_opt(<br>
-; CHECK-NEXT:    store atomic i32 0, i32* null monotonic, align 4294967296<br>
+; CHECK-NEXT:    store atomic i32 0, i32* null monotonic, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 0<br>
 ;<br>
   store atomic i32 0, i32* null monotonic, align 4<br>
@@ -215,7 +215,7 @@ define i32 @test13_no_null_opt() #0 {<br>
 ; Would this be legal to fold?  Probably?<br>
 define i32 @test14() {<br>
 ; CHECK-LABEL: @test14(<br>
-; CHECK-NEXT:    store atomic i32 0, i32* null seq_cst, align 4294967296<br>
+; CHECK-NEXT:    store atomic i32 0, i32* null seq_cst, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 0<br>
 ;<br>
   store atomic i32 0, i32* null seq_cst, align 4<br>
@@ -224,7 +224,7 @@ define i32 @test14() {<br>
<br>
 define i32 @test14_no_null_opt() #0 {<br>
 ; CHECK-LABEL: @test14_no_null_opt(<br>
-; CHECK-NEXT:    store atomic i32 0, i32* null seq_cst, align 4294967296<br>
+; CHECK-NEXT:    store atomic i32 0, i32* null seq_cst, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 0<br>
 ;<br>
   store atomic i32 0, i32* null seq_cst, align 4<br>
<br>
diff  --git a/llvm/test/Transforms/InstCombine/getelementptr.ll b/llvm/test/Transforms/InstCombine/getelementptr.ll<br>
index faa9bedc6ae3..a48c99f24a5d 100644<br>
--- a/llvm/test/Transforms/InstCombine/getelementptr.ll<br>
+++ b/llvm/test/Transforms/InstCombine/getelementptr.ll<br>
@@ -495,7 +495,7 @@ define i1 @test23() {<br>
 define void @test25() {<br>
 ; CHECK-LABEL: @test25(<br>
 ; CHECK-NEXT:  entry:<br>
-; CHECK-NEXT:    store i64 poison, i64* null, align 4294967296<br>
+; CHECK-NEXT:    store i64 poison, i64* null, align 1073741824<br>
 ; CHECK-NEXT:    tail call void @foo25(i32 0, i64 poison)<br>
 ; CHECK-NEXT:    unreachable<br>
 ;<br>
@@ -613,7 +613,7 @@ declare i32 @printf(i8*, ...)<br>
 define i32 @test29(i8* %start, i32 %X) nounwind {<br>
 ; CHECK-LABEL: @test29(<br>
 ; CHECK-NEXT:  entry:<br>
-; CHECK-NEXT:    store i64 poison, i64* null, align 4294967296<br>
+; CHECK-NEXT:    store i64 poison, i64* null, align 1073741824<br>
 ; CHECK-NEXT:    br i1 poison, label [[IF_THEN216:%.*]], label [[IF_END363:%.*]]<br>
 ; CHECK:       if.then216:<br>
 ; CHECK-NEXT:    ret i32 1<br>
<br>
diff  --git a/llvm/test/Transforms/InstCombine/load.ll b/llvm/test/Transforms/InstCombine/load.ll<br>
index 2a63f83177ca..8826a212e065 100644<br>
--- a/llvm/test/Transforms/InstCombine/load.ll<br>
+++ b/llvm/test/Transforms/InstCombine/load.ll<br>
@@ -59,7 +59,7 @@ define i32 @test5(i1 %C) {<br>
<br>
 define i32 @load_gep_null_inbounds(i64 %X) {<br>
 ; CHECK-LABEL: @load_gep_null_inbounds(<br>
-; CHECK-NEXT:    store i32 poison, i32* null, align 4294967296<br>
+; CHECK-NEXT:    store i32 poison, i32* null, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 poison<br>
 ;<br>
   %V = getelementptr inbounds i32, i32* null, i64 %X<br>
@@ -69,7 +69,7 @@ define i32 @load_gep_null_inbounds(i64 %X) {<br>
<br>
 define i32 @load_gep_null_not_inbounds(i64 %X) {<br>
 ; CHECK-LABEL: @load_gep_null_not_inbounds(<br>
-; CHECK-NEXT:    store i32 poison, i32* null, align 4294967296<br>
+; CHECK-NEXT:    store i32 poison, i32* null, align 1073741824<br>
 ; CHECK-NEXT:    ret i32 poison<br>
 ;<br>
   %V = getelementptr i32, i32* null, i64 %X<br>
<br>
diff  --git a/llvm/test/Transforms/InstCombine/mempcpy.ll b/llvm/test/Transforms/InstCombine/mempcpy.ll<br>
index 7f53f5cecc2c..713f70670960 100644<br>
--- a/llvm/test/Transforms/InstCombine/mempcpy.ll<br>
+++ b/llvm/test/Transforms/InstCombine/mempcpy.ll<br>
@@ -57,7 +57,7 @@ define i8* @memcpy_big_const_n(i8* %d, i8* nocapture readonly %s) {<br>
<br>
 define i32 @PR48810() {<br>
 ; CHECK-LABEL: @PR48810(<br>
-; CHECK-NEXT:    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 undef, i8* align 4294967296 null, i64 undef, i1 false)<br>
+; CHECK-NEXT:    call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 undef, i8* align 1073741824 null, i64 undef, i1 false)<br>
 ; CHECK-NEXT:    ret i32 undef<br>
 ;<br>
   %r = call dereferenceable(1) i8* @mempcpy(i8* undef, i8* null, i64 undef)<br>
<br>
diff  --git a/llvm/test/Transforms/InstCombine/pr44245.ll b/llvm/test/Transforms/InstCombine/pr44245.ll<br>
index d446cbf8b835..69b132b01b2c 100644<br>
--- a/llvm/test/Transforms/InstCombine/pr44245.ll<br>
+++ b/llvm/test/Transforms/InstCombine/pr44245.ll<br>
@@ -159,7 +159,7 @@ define void @test_2(i1 %c) local_unnamed_addr {<br>
 ; CHECK:       cond.true133:<br>
 ; CHECK-NEXT:    br label [[COND_END144:%.*]]<br>
 ; CHECK:       cond.false138:<br>
-; CHECK-NEXT:    store %type_2* poison, %type_2** null, align 4294967296<br>
+; CHECK-NEXT:    store %type_2* poison, %type_2** null, align 1073741824<br>
 ; CHECK-NEXT:    br label [[COND_END144]]<br>
 ; CHECK:       cond.end144:<br>
 ; CHECK-NEXT:    br label [[WHILE_COND]]<br>
<br>
diff  --git a/llvm/test/Transforms/InstCombine/store.ll b/llvm/test/Transforms/InstCombine/store.ll<br>
index 35a96d3112ac..8a28a0f38f60 100644<br>
--- a/llvm/test/Transforms/InstCombine/store.ll<br>
+++ b/llvm/test/Transforms/InstCombine/store.ll<br>
@@ -4,7 +4,7 @@<br>
 define void @test1(i32* %P) {<br>
 ; CHECK-LABEL: @test1(<br>
 ; CHECK-NEXT:    store i32 123, i32* undef, align 4<br>
-; CHECK-NEXT:    store i32 poison, i32* null, align 4294967296<br>
+; CHECK-NEXT:    store i32 poison, i32* null, align 1073741824<br>
 ; CHECK-NEXT:    ret void<br>
 ;<br>
   store i32 undef, i32* %P<br>
<br>
diff  --git a/llvm/test/Transforms/OpenMP/parallel_level_fold.ll b/llvm/test/Transforms/OpenMP/parallel_level_fold.ll<br>
index eb639a0c839e..1b3dc9b754ba 100644<br>
--- a/llvm/test/Transforms/OpenMP/parallel_level_fold.ll<br>
+++ b/llvm/test/Transforms/OpenMP/parallel_level_fold.ll<br>
@@ -49,9 +49,9 @@ define weak void @spmd() {<br>
<br>
 define weak void @parallel() {<br>
 ; CHECK-LABEL: define {{[^@]+}}@parallel() {<br>
-; CHECK-NEXT:    [[I:%.*]] = call i32 @__kmpc_target_init(%struct.ident_t* align 4294967296 null, i8 2, i1 false, i1 false)<br>
+; CHECK-NEXT:    [[I:%.*]] = call i32 @__kmpc_target_init(%struct.ident_t* align 1073741824 null, i8 2, i1 false, i1 false)<br>
 ; CHECK-NEXT:    call void @spmd_helper()<br>
-; CHECK-NEXT:    call void @__kmpc_parallel_51(%struct.ident_t* noalias noundef align 4294967296 null, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i8* noalias noundef align 4294967296 null, i8* noalias noundef align 4294967296 null, i8** noalias noundef align 4294967296 null, i64 noundef 0)<br>
+; CHECK-NEXT:    call void @__kmpc_parallel_51(%struct.ident_t* noalias noundef align 1073741824 null, i32 noundef 0, i32 noundef 0, i32 noundef 0, i32 noundef 0, i8* noalias noundef align 1073741824 null, i8* noalias noundef align 1073741824 null, i8** noalias noundef align 1073741824 null, i64 noundef 0)<br>
 ; CHECK-NEXT:    call void @__kmpc_target_deinit(%struct.ident_t* null, i8 2, i1 false)<br>
 ; CHECK-NEXT:    ret void<br>
 ;<br>
@@ -108,7 +108,7 @@ define internal void @spmd_helper() {<br>
<br>
 define internal void @__kmpc_parallel_51(%struct.ident_t*, i32, i32, i32, i32, i8*, i8*, i8**, i64) {<br>
 ; CHECK-LABEL: define {{[^@]+}}@__kmpc_parallel_51<br>
-; CHECK-SAME: (%struct.ident_t* noalias nocapture nofree readnone align 4294967296 [[TMP0:%.*]], i32 [[TMP1:%.*]], i32 [[TMP2:%.*]], i32 [[TMP3:%.*]], i32 [[TMP4:%.*]], i8* noalias nocapture nofree readnone align 4294967296 [[TMP5:%.*]], i8* noalias nocapture nofree readnone align 4294967296 [[TMP6:%.*]], i8** noalias nocapture nofree readnone align 4294967296 [[TMP7:%.*]], i64 [[TMP8:%.*]]) #[[ATTR0:[0-9]+]] {<br>
+; CHECK-SAME: (%struct.ident_t* noalias nocapture nofree readnone align 1073741824 [[TMP0:%.*]], i32 [[TMP1:%.*]], i32 [[TMP2:%.*]], i32 [[TMP3:%.*]], i32 [[TMP4:%.*]], i8* noalias nocapture nofree readnone align 1073741824 [[TMP5:%.*]], i8* noalias nocapture nofree readnone align 1073741824 [[TMP6:%.*]], i8** noalias nocapture nofree readnone align 1073741824 [[TMP7:%.*]], i64 [[TMP8:%.*]]) #[[ATTR0:[0-9]+]] {<br>
 ; CHECK-NEXT:    call void @parallel_helper()<br>
 ; CHECK-NEXT:    ret void<br>
 ;<br>
<br>
diff  --git a/llvm/test/Verifier/align-md.ll b/llvm/test/Verifier/align-md.ll<br>
index 8ef3fe44120d..9c628f32c2ae 100644<br>
--- a/llvm/test/Verifier/align-md.ll<br>
+++ b/llvm/test/Verifier/align-md.ll<br>
@@ -52,7 +52,7 @@ entry:<br>
<br>
 define i8* @f7(i8** %x) {<br>
 entry:<br>
-  %y = load i8*, i8** %x, !align !{i64 8589934592}<br>
+  %y = load i8*, i8** %x, !align !{i64 2147483648}<br>
   ret i8* %y<br>
 }<br>
 ; CHECK: alignment is larger that implementation defined limit<br>
<br>
diff  --git a/llvm/unittests/IR/ValueTest.cpp b/llvm/unittests/IR/ValueTest.cpp<br>
index 8a0fba836dcb..5bc6c91c29ed 100644<br>
--- a/llvm/unittests/IR/ValueTest.cpp<br>
+++ b/llvm/unittests/IR/ValueTest.cpp<br>
@@ -61,9 +61,9 @@ TEST(GlobalTest, CreateAddressSpace) {<br>
                          GlobalVariable::NotThreadLocal,<br>
                          1);<br>
<br>
-  EXPECT_TRUE(Value::MaximumAlignment == 4294967296ULL);<br>
-  Dummy0->setAlignment(Align(4294967296ULL));<br>
-  EXPECT_EQ(Dummy0->getAlignment(), 4294967296ULL);<br>
+  EXPECT_TRUE(Value::MaximumAlignment == 1073741824U);<br>
+  Dummy0->setAlignment(Align(1073741824));<br>
+  EXPECT_EQ(Dummy0->getAlignment(), 1073741824U);<br>
<br>
   // Make sure the address space isn't dropped when returning this.<br>
   Constant *Dummy1 = M->getOrInsertGlobal("dummy", Int32Ty);<br>
@@ -101,7 +101,7 @@ TEST(GlobalTest, AlignDeath) {<br>
                          Constant::getAllOnesValue(Int32Ty), "var", nullptr,<br>
                          GlobalVariable::NotThreadLocal, 1);<br>
<br>
-  EXPECT_DEATH(Var->setAlignment(Align(8589934592ULL)),<br>
+  EXPECT_DEATH(Var->setAlignment(Align(2147483648U)),<br>
                "Alignment is greater than MaximumAlignment");<br>
 }<br>
 #endif<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>