commit 4622648a069a988d3b7b3ecd3f1b6993518d85b5
Author: Nikita Popov <nikita.ppv@gmail.com>
Date:   Fri Mar 26 21:32:32 2021 +0100

    Revert "[ArgPromotion] Copy additional metadata for loads."
    
    This reverts commit 166620a4f01f10e688428caf132a147c0acc9183.
    
    A miscompile has been reported in https://reviews.llvm.org/D93927#2653480
    and following.

diff --git a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
index 5f24d53da0b3..dd72ac413613 100644
--- a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
+++ b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
@@ -312,12 +312,6 @@ doPromotion(Function *F, SmallPtrSetImpl<Argument *> &ArgsToPromote,
           AAMDNodes AAInfo;
           OrigLoad->getAAMetadata(AAInfo);
           newLoad->setAAMetadata(AAInfo);
-          // And other metadata.
-          newLoad->copyMetadata(
-              *OrigLoad,
-              {LLVMContext::MD_nontemporal, LLVMContext::MD_nonnull,
-               LLVMContext::MD_dereferenceable, LLVMContext::MD_align,
-               LLVMContext::MD_noundef, LLVMContext::MD_range});
 
           Args.push_back(newLoad);
           ArgAttrVec.push_back(AttributeSet());
diff --git a/llvm/test/Transforms/ArgumentPromotion/metadata.ll b/llvm/test/Transforms/ArgumentPromotion/metadata.ll
deleted file mode 100644
index c00bda735116..000000000000
--- a/llvm/test/Transforms/ArgumentPromotion/metadata.ll
+++ /dev/null
@@ -1,70 +0,0 @@
-; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --scrub-attributes
-; RUN: opt < %s -argpromotion -S | FileCheck %s
-
-define i32 @should_copy_range(i32* %x) {
-; CHECK-LABEL: define {{[^@]+}}@should_copy_range
-; CHECK-SAME: (i32* [[X:%.*]]) {
-; CHECK-NEXT:    [[X_VAL:%.*]] = load i32, i32* [[X]], align 4, !range !0
-; CHECK-NEXT:    [[TMP1:%.*]] = call i32 @f_load_range(i32 [[X_VAL]])
-; CHECK-NEXT:    ret i32 [[TMP1]]
-;
-  %1 = call i32 @f_load_range(i32* %x)
-  ret i32 %1
-}
-
-define internal i32 @f_load_range(i32* %v) {
-; CHECK-LABEL: define {{[^@]+}}@f_load_range
-; CHECK-SAME: (i32 [[V_VAL:%.*]]) {
-; CHECK-NEXT:    ret i32 [[V_VAL]]
-;
-  %1 = load i32, i32* %v, align 4, !range !0
-  ret i32 %1
-}
-
-define i32* @should_copy_nonnull(i32** %x) {
-; CHECK-LABEL: define {{[^@]+}}@should_copy_nonnull
-; CHECK-SAME: (i32** [[X:%.*]]) {
-; CHECK-NEXT:    [[X_VAL:%.*]] = load i32*, i32** [[X]], align 4, !nonnull !1
-; CHECK-NEXT:    [[TMP1:%.*]] = call i32* @f_load_nonnull(i32* [[X_VAL]])
-; CHECK-NEXT:    ret i32* [[TMP1]]
-;
-  %1 = call i32* @f_load_nonnull(i32** %x)
-  ret i32* %1
-}
-
-define internal i32* @f_load_nonnull(i32** %v) {
-; CHECK-LABEL: define {{[^@]+}}@f_load_nonnull
-; CHECK-SAME: (i32* [[V_VAL:%.*]]) {
-; CHECK-NEXT:    ret i32* [[V_VAL]]
-;
-  %1 = load i32*, i32** %v, align 4, !nonnull !1
-  ret i32* %1
-}
-
-define i32* @should_copy_dereferenceable(i32** %x) {
-; CHECK-LABEL: define {{[^@]+}}@should_copy_dereferenceable
-; CHECK-SAME: (i32** [[X:%.*]]) {
-; CHECK-NEXT:    [[X_VAL:%.*]] = load i32*, i32** [[X]], align 4, !dereferenceable !2
-; CHECK-NEXT:    [[TMP1:%.*]] = call i32* @f_load_dereferenceable(i32* [[X_VAL]])
-; CHECK-NEXT:    ret i32* [[TMP1]]
-;
-  %1 = call i32* @f_load_dereferenceable(i32** %x)
-  ret i32* %1
-}
-
-define internal i32* @f_load_dereferenceable(i32** %v) {
-; CHECK-LABEL: define {{[^@]+}}@f_load_dereferenceable
-; CHECK-SAME: (i32* [[V_VAL:%.*]]) {
-; CHECK-NEXT:    ret i32* [[V_VAL]]
-;
-  %1 = load i32*, i32** %v, align 4, !dereferenceable !2
-  ret i32* %1
-}
-
-; CHECK:      !0 = !{i32 0, i32 4}
-; CHECK-NEXT: !1 = !{}
-; CHECK-NEXT: !2 = !{i64 42}
-;
-!0 = !{i32 0, i32 4}
-!1 = !{}
-!2 = !{i64 42}
