diff --git a/clang/test/CodeGenCXX/auto-var-init.cpp b/clang/test/CodeGenCXX/auto-var-init.cpp --- a/clang/test/CodeGenCXX/auto-var-init.cpp +++ b/clang/test/CodeGenCXX/auto-var-init.cpp @@ -597,9 +597,7 @@ // PATTERN-O1: store i8 [[I8]], {{.*}} align 1, !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_empty_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i8 0, {{.*}} align 1 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i8 0, {{.*}} align 1, !annotation [[AUTO_INIT]] TEST_BRACES(empty, empty); // CHECK-LABEL: @test_empty_braces() @@ -618,9 +616,7 @@ // PATTERN-O1: store i8 [[I8]], {{.*}} align 1, !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_small_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i8 0, {{.*}} align 1 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i8 0, {{.*}} align 1, !annotation [[AUTO_INIT]] TEST_BRACES(small, small); // CHECK-LABEL: @test_small_braces() @@ -671,10 +667,8 @@ // PATTERN-O1: store i8 42, {{.*}} align 1 // ZERO-LABEL: @test_smallpartinit_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1-LEGACY: store i16 0, i16* %uninit, align 2 -// ZERO-O1-NEWPM: store i16 0, i16* %uninit, align 2 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1-LEGACY: store i16 0, i16* %uninit, align 2, !annotation [[AUTO_INIT]] +// ZERO-O1-NEWPM: store i16 0, i16* %uninit, align 2, !annotation [[AUTO_INIT]] TEST_BRACES(smallpartinit, smallpartinit); // CHECK-LABEL: @test_smallpartinit_braces() @@ -726,14 +720,10 @@ // CHECK-NEXT: call void @{{.*}}used{{.*}}%uninit) // PATTERN-LABEL: @test_padded_uninit() // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_padded_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] -// PATTERN-O1: store i64 [[I64]], i64* %uninit, align 8 -// FIXME: !annotation dropped by optimizations -// PATTERN-O1-NOT: !annotation +// PATTERN-O1: store i64 [[I64]], i64* %uninit, align 8, !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_padded_uninit() -// ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}) -// ZERO-O1: store i64 0, i64* %uninit, align 8 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] +// ZERO-O1: store i64 0, i64* %uninit, align 8, !annotation [[AUTO_INIT]] TEST_BRACES(padded, padded); // CHECK-LABEL: @test_padded_braces() @@ -758,15 +748,16 @@ // CHECK-NEXT: call void @{{.*}}used{{.*}}%uninit) // PATTERN-LABEL: @test_paddednullinit_uninit() // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_paddednullinit_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] -// PATTERN-O1-LEGACY: store i64 [[I64]], i64* %uninit, align 8 -// PATTERN-O1-NEWPM: store i64 [[I64]], i64* %uninit, align 8 -// FIXME: !annotation dropped by optimizations -// PATTERN-O1-NOT: !annotation +// PATTERN-O1-LEGACY: store i64 [[I64]], i64* %uninit, align 8, !annotation [[AUTO_INIT]] +// PATTERN-O1-NEWPM: store i64 [[I64]], i64* %uninit, align 8, !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_paddednullinit_uninit() -// ZERO-O0: call void @llvm.memset{{.*}}, i8 0, -// ZERO-O1: store i64 0, i64* %uninit, align 8 +// ZERO-O0: call void @llvm.memset{{.*}}, i8 0, {{.*}}, !annotation [[AUTO_INIT]] +// ZERO-O1-LEGACY: store i64 0, i64* %uninit, align 8, !annotation [[AUTO_INIT]] +// ZERO-O1-NEWPM: store i64 0, i64* %uninit, align 8 // FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1-NEWPM-NOT: !annotation +// ZERO: ret + TEST_BRACES(paddednullinit, paddednullinit); // CHECK-LABEL: @test_paddednullinit_braces() @@ -922,9 +913,7 @@ // PATTERN-O1-NOT: !annotation // ZERO-LABEL: @test_bitfield_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i32 0, i32* %uninit, align 4 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i32 0, i32* %uninit, align 4, !annotation [[AUTO_INIT]] TEST_BRACES(bitfield, bitfield); // CHECK-LABEL: @test_bitfield_braces() @@ -953,9 +942,7 @@ // PATTERN-O1-NOT: !annotation // ZERO-LABEL: @test_bitfieldaligned_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i64 0, i64* %uninit, align 8 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i64 0, i64* %uninit, align 8, !annotation [[AUTO_INIT]] TEST_BRACES(bitfieldaligned, bitfieldaligned); // CHECK-LABEL: @test_bitfieldaligned_braces() @@ -1007,9 +994,7 @@ // PATTERN-O1: store i32 [[I32]], {{.*}} align 4, !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_arraytail_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i32 0, {{.*}} align 4 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i32 0, {{.*}} align 4, !annotation [[AUTO_INIT]] TEST_BRACES(arraytail, arraytail); // CHECK-LABEL: @test_arraytail_braces() @@ -1053,9 +1038,7 @@ // PATTERN-O1: store i32 [[I32]], {{.*}} align 4, !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_int1_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i32 0, {{.*}} align 4 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i32 0, {{.*}} align 4, !annotation [[AUTO_INIT]] TEST_BRACES(int1, int[1]); // CHECK-LABEL: @test_int1_braces() @@ -1109,9 +1092,7 @@ // PATTERN-O1-NOT: !annotation // ZERO-LABEL: @test_bool4_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i32 0, i32* %uninit, align 4 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i32 0, i32* %uninit, align 4, !annotation [[AUTO_INIT]] TEST_BRACES(bool4, bool[4]); // CHECK-LABEL: @test_bool4_braces() @@ -1244,7 +1225,7 @@ // PATTERN-LABEL: @test_atomicnotlockfree_uninit() // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_atomicnotlockfree_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] // PATTERN-O1: bitcast -// PATTERN-O1: call void @llvm.memset{{.*}}({{.*}}, i8 [[I8]], i64 32 +// PATTERN-O1: call void @llvm.memset{{.*}}({{.*}}, i8 [[I8]], i64 32{{.*}} // FIXME: !annotation dropped by optimizations // PATTERN-O1-NOT: !annotation // ZERO-LABEL: @test_atomicnotlockfree_uninit() @@ -1256,14 +1237,10 @@ // CHECK-NEXT: call void @{{.*}}used{{.*}}%uninit) // PATTERN-LABEL: @test_atomicpadded_uninit() // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_atomicpadded_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] -// PATTERN-O1: store i64 [[IPTR]], i64* %uninit, align 8 -// FIXME: !annotation dropped by optimizations -// PATTERN-O1-NOT: !annotation +// PATTERN-O1: store i64 [[IPTR]], i64* %uninit, align 8, !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_atomicpadded_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0, {{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i64 0, i64* %uninit, align 8 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i64 0, i64* %uninit, align 8, !annotation [[AUTO_INIT]] TEST_UNINIT(atomictailpad, _Atomic(tailpad)); // CHECK-LABEL: @test_atomictailpad_uninit() @@ -1273,9 +1250,7 @@ // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_atomictailpad_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_atomictailpad_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i32 0, i32* %uninit, align 4 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i32 0, i32* %uninit, align 4, !annotation [[AUTO_INIT]] TEST_UNINIT(complexfloat, _Complex float); // CHECK-LABEL: @test_complexfloat_uninit() @@ -1291,9 +1266,7 @@ // ZERO-LABEL: @test_complexfloat_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0, {{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i64 0, i64* %uninit, align 8 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i64 0, i64* %uninit, align 8, !annotation [[AUTO_INIT]] TEST_BRACES(complexfloat, _Complex float); // CHECK-LABEL: @test_complexfloat_braces() @@ -1372,9 +1345,7 @@ // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_semivolatile_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_semivolatile_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0, {{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i64 0, i64* %uninit, align 8 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i64 0, i64* %uninit, align 8, !annotation [[AUTO_INIT]] TEST_BRACES(semivolatile, semivolatile); // CHECK-LABEL: @test_semivolatile_braces() @@ -1433,8 +1404,7 @@ // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] // ZERO-O1-LEGACY: store i64 0, {{.*}} align 8 // ZERO-O1-NEWPM: store i32 (...)** bitcast (i8** getelementptr inbounds ({ [4 x i8*] }, { [4 x i8*] }* @_ZTV4base, i64 0, inrange i32 0, i64 2) to i32 (...)**), {{.*}}, align 8 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1-NOT-NEWPM: !annotation TEST_BRACES(base, base); // CHECK-LABEL: @test_base_braces() @@ -1454,10 +1424,8 @@ // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_derived_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_derived_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0, {{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1-LEGACY: store i64 0, {{.*}} align 8 +// ZERO-O1: store i64 0, {{.*}} align 8, !annotation [[AUTO_INIT]] // ZERO-O1-NEWPM: store i32 (...)** bitcast (i8** getelementptr inbounds ({ [4 x i8*] }, { [4 x i8*] }* @_ZTV7derived, i64 0, inrange i32 0, i64 2) to i32 (...)**), {{.*}} align 8 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation TEST_BRACES(derived, derived); // CHECK-LABEL: @test_derived_braces() @@ -1497,9 +1465,7 @@ // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_matching_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_matching_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0, {{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i32 0, {{.*}} align 4 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i32 0, {{.*}} align 4, !annotation [[AUTO_INIT]] TEST_BRACES(matching, matching); // CHECK-LABEL: @test_matching_braces() @@ -1529,9 +1495,7 @@ // PATTERN-O1: store float 0xFFFFFFFFE0000000, {{.+}}, !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_matchingreverse_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0,{{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i32 0, {{.*}} align 4 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i32 0, {{.*}} align 4, !annotation [[AUTO_INIT]] TEST_BRACES(matchingreverse, matchingreverse); // CHECK-LABEL: @test_matchingreverse_braces() @@ -1559,9 +1523,7 @@ // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_unmatched_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_unmatched_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0, {{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i32 0, {{.*}} align 4 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i32 0, {{.*}} align 4, !annotation [[AUTO_INIT]] TEST_BRACES(unmatched, unmatched); // CHECK-LABEL: @test_unmatched_braces() @@ -1589,9 +1551,7 @@ // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_unmatchedreverse_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_unmatchedreverse_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0, {{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i32 0, {{.*}} align 4 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i32 0, {{.*}} align 4, !annotation [[AUTO_INIT]] TEST_BRACES(unmatchedreverse, unmatchedreverse); // CHECK-LABEL: @test_unmatchedreverse_braces() @@ -1619,9 +1579,7 @@ // PATTERN-O0: call void @llvm.memcpy{{.*}} @__const.test_unmatchedfp_uninit.uninit{{.+}}), !annotation [[AUTO_INIT]] // ZERO-LABEL: @test_unmatchedfp_uninit() // ZERO-O0: call void @llvm.memset{{.*}}, i8 0, {{.+}}), !annotation [[AUTO_INIT]] -// ZERO-O1: store i64 0, {{.*}} align 8 -// FIXME: !annotation dropped by optimizations -// ZERO-O1-NOT: !annotation +// ZERO-O1: store i64 0, {{.*}} align 8, !annotation [[AUTO_INIT]] TEST_BRACES(unmatchedfp, unmatchedfp); // CHECK-LABEL: @test_unmatchedfp_braces() diff --git a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp --- a/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp +++ b/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp @@ -3678,7 +3678,8 @@ // Now that we have an instruction, try combining it to simplify it. Builder.SetInsertPoint(I); - Builder.CollectMetadataToCopy(I, {LLVMContext::MD_dbg}); + Builder.CollectMetadataToCopy( + I, {LLVMContext::MD_dbg, LLVMContext::MD_annotation}); #ifndef NDEBUG std::string OrigI; diff --git a/llvm/test/Transforms/InstCombine/annotations.ll b/llvm/test/Transforms/InstCombine/annotations.ll --- a/llvm/test/Transforms/InstCombine/annotations.ll +++ b/llvm/test/Transforms/InstCombine/annotations.ll @@ -49,8 +49,8 @@ define void @copy_1_byte(i8* %d, i8* %s) { ; CHECK-LABEL: define {{.+}} @copy_1_byte({{.+}} -; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1 -; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1 +; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1, !annotation [[ANN]] +; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1, !annotation [[ANN]] ; CHECK-NEXT: ret void ; call void @llvm.memcpy.p0i8.p0i8.i32(i8* %d, i8* %s, i32 1, i1 false), !annotation !0 @@ -61,8 +61,8 @@ define void @libcallcopy_1_byte(i8* %d, i8* %s) { ; CHECK-LABEL: define {{.+}} @libcallcopy_1_byte({{.+}} -; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1 -; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1 +; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1, !annotation [[ANN]] +; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1, !annotation [[ANN]] ; CHECK-NEXT: ret void ; call i8* @memcpy(i8* %d, i8* %s, i64 1), !annotation !0 @@ -73,8 +73,8 @@ define void @libcallcopy_1_byte_chk(i8* %d, i8* %s) { ; CHECK-LABEL: define {{.+}} @libcallcopy_1_byte_chk({{.+}} -; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1 -; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1 +; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1, !annotation [[ANN]] +; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1, !annotation [[ANN]] ; CHECK-NEXT: ret void ; call i8* @__memcpy_chk(i8* %d, i8* %s, i64 1, i64 1), !annotation !0 @@ -85,8 +85,8 @@ define void @move_1_byte(i8* %d, i8* %s) { ; CHECK-LABEL: define {{.+}} @move_1_byte({{.+}} -; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1 -; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1 +; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1, !annotation [[ANN]] +; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1, !annotation [[ANN]] ; CHECK-NEXT: ret void ; call void @llvm.memmove.p0i8.p0i8.i32(i8* %d, i8* %s, i32 1, i1 false), !annotation !0 @@ -97,8 +97,8 @@ define void @libcallmove_1_byte(i8* %d, i8* %s) { ; CHECK-LABEL: define {{.+}} @libcallmove_1_byte({{.+}} -; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1 -; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1 +; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1, !annotation [[ANN]] +; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1, !annotation [[ANN]] ; CHECK-NEXT: ret void ; call i8* @memmove(i8* %d, i8* %s, i64 1), !annotation !0 @@ -109,8 +109,8 @@ define void @libcallmove_1_byte_chk(i8* %d, i8* %s) { ; CHECK-LABEL: define {{.+}} @libcallmove_1_byte_chk({{.+}} -; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1 -; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1 +; CHECK-NEXT: [[TMP1:%.*]] = load i8, i8* [[S:%.*]], align 1, !annotation [[ANN]] +; CHECK-NEXT: store i8 [[TMP1]], i8* [[D:%.*]], align 1, !annotation [[ANN]] ; CHECK-NEXT: ret void ; call i8* @__memmove_chk(i8* %d, i8* %s, i64 1, i64 1), !annotation !0 @@ -121,7 +121,7 @@ define void @set_1_byte(i8* %d) { ; CHECK-LABEL: define {{.+}} @set_1_byte({{.+}} -; CHECK-NEXT: store i8 1, i8* [[D:%.*]], align 1 +; CHECK-NEXT: store i8 1, i8* [[D:%.*]], align 1, !annotation [[ANN]] ; CHECK-NEXT: ret void ; call void @llvm.memset.p0i8.i32(i8* %d, i8 1, i32 1, i1 false), !annotation !0 @@ -132,7 +132,7 @@ define void @libcall_set_1_byte(i8* %d) { ; CHECK-LABEL: define {{.+}} @libcall_set_1_byte({{.+}} -; CHECK-NEXT: store i8 1, i8* [[D:%.*]], align 1 +; CHECK-NEXT: store i8 1, i8* [[D:%.*]], align 1, !annotation [[ANN]] ; CHECK-NEXT: ret void ; call i8* @memset(i8* %d, i32 1, i64 1), !annotation !0 @@ -143,7 +143,7 @@ define void @libcall_set_1_byte_chk(i8* %d) { ; CHECK-LABEL: define {{.+}} @libcall_set_1_byte_chk({{.+}} -; CHECK-NEXT: store i8 1, i8* [[D:%.*]], align 1 +; CHECK-NEXT: store i8 1, i8* [[D:%.*]], align 1, !annotation [[ANN]] ; CHECK-NEXT: ret void ; call i8* @__memset_chk(i8* %d, i32 1, i64 1, i64 1), !annotation !0