[clang] a888825 - [UpdateTestChecks] Match define for labels

Sebastian Neubauer via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 12 03:30:10 PST 2022


Author: Sebastian Neubauer
Date: 2022-12-12T12:29:54+01:00
New Revision: a888825aeef8d6592c6cf5f4e5854cc39af49633

URL: https://github.com/llvm/llvm-project/commit/a888825aeef8d6592c6cf5f4e5854cc39af49633
DIFF: https://github.com/llvm/llvm-project/commit/a888825aeef8d6592c6cf5f4e5854cc39af49633.diff

LOG: [UpdateTestChecks] Match define for labels

Previously, the label also matched function calls with the function
name, which caused tests to fail because the label matched on the wrong
line.
Add the `define` prefix, so only function defines are matched.

Differential Revision: https://reviews.llvm.org/D139006

Added: 
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/define_after_call.ll
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/define_after_call.ll.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/define_after_call.test

Modified: 
    clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected
    clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.funcattrs.expected
    clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.plain.expected
    clang/test/utils/update_cc_test_checks/Inputs/def-and-decl.c.expected
    clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c.expected
    clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected
    clang/test/utils/update_cc_test_checks/Inputs/generated-funcs-regex.c.expected
    clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected
    clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected
    clang/test/utils/update_cc_test_checks/Inputs/global-hex-value-regex.c.expected
    clang/test/utils/update_cc_test_checks/Inputs/global-value-regex.c.expected
    clang/test/utils/update_cc_test_checks/Inputs/ifdef.c.expected
    clang/test/utils/update_cc_test_checks/Inputs/mangled_names.c.expected
    clang/test/utils/update_cc_test_checks/Inputs/on_the_fly_arg_change.c.expected
    clang/test/utils/update_cc_test_checks/Inputs/replace-value-regex-across-runs.c.expected
    clang/test/utils/update_cc_test_checks/check-globals.test
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/argument_name_reuse.ll.plain.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/basic.ll.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/custom-tool.ll.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.plain.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.scrub.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/sometimes_deleted_function.ll.expected
    llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected
    llvm/utils/UpdateTestChecks/common.py

Removed: 
    


################################################################################
diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected b/clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected
index 6c7dd730e543..ccd308688374 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected
@@ -8,7 +8,7 @@ class Foo {
 public:
   explicit Foo(int x);
   ~Foo();
-// CHECK-LABEL: @_ZNK3Foo23function_defined_inlineEi(
+// CHECK-LABEL: define {{[^@]+}}@_ZNK3Foo23function_defined_inlineEi(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %class.Foo*, align 8
 // CHECK-NEXT:    [[ARG_ADDR:%.*]] = alloca i32, align 4
@@ -27,7 +27,7 @@ public:
   inline int function_defined_out_of_line(int arg) const;
 };
 
-// CHECK-LABEL: @_ZN3FooC1Ei(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooC1Ei(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %class.Foo*, align 8
 // CHECK-NEXT:    [[X_ADDR:%.*]] = alloca i32, align 4
@@ -39,7 +39,7 @@ public:
 // CHECK-NEXT:    ret void
 //
 Foo::Foo(int x) : x(x) {}
-// CHECK-LABEL: @_ZN3FooD1Ev(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooD1Ev(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %class.Foo*, align 8
 // CHECK-NEXT:    store %class.Foo* [[THIS:%.*]], %class.Foo** [[THIS_ADDR]], align 8
@@ -48,7 +48,7 @@ Foo::Foo(int x) : x(x) {}
 // CHECK-NEXT:    ret void
 //
 Foo::~Foo() {}
-// CHECK-LABEL: @_ZNK3Foo28function_defined_out_of_lineEi(
+// CHECK-LABEL: define {{[^@]+}}@_ZNK3Foo28function_defined_out_of_lineEi(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %class.Foo*, align 8
 // CHECK-NEXT:    [[ARG_ADDR:%.*]] = alloca i32, align 4
@@ -64,7 +64,7 @@ Foo::~Foo() {}
 int Foo::function_defined_out_of_line(int arg) const { return x - arg; }
 
 // Call the inline methods to ensure the LLVM IR is generated:
-// CHECK-LABEL: @main(
+// CHECK-LABEL: define {{[^@]+}}@main(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[F:%.*]] = alloca [[CLASS_FOO:%.*]], align 4
 // CHECK-NEXT:    call void @_ZN3FooC1Ei(%class.Foo* noundef nonnull align 4 dereferenceable(4) [[F]], i32 noundef 1)

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.funcattrs.expected b/clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.funcattrs.expected
index 1551438f3526..9466caa3599b 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.funcattrs.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.funcattrs.expected
@@ -12,7 +12,7 @@ struct ST {
 };
 
 // CHECK: Function Attrs: mustprogress noinline nounwind optnone
-// CHECK-LABEL: @_Z3fooP2ST(
+// CHECK-LABEL: define {{[^@]+}}@_Z3fooP2ST(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[S_ADDR:%.*]] = alloca %struct.ST*, align 8
 // CHECK-NEXT:    store %struct.ST* [[S:%.*]], %struct.ST** [[S_ADDR]], align 8

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.plain.expected b/clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.plain.expected
index bb02b7ca9a8d..8fa0bfc537c4 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.plain.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.plain.expected
@@ -11,7 +11,7 @@ struct ST {
   struct RT Z;
 };
 
-// CHECK-LABEL: @_Z3fooP2ST(
+// CHECK-LABEL: define {{[^@]+}}@_Z3fooP2ST(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[S_ADDR:%.*]] = alloca %struct.ST*, align 8
 // CHECK-NEXT:    store %struct.ST* [[S:%.*]], %struct.ST** [[S_ADDR]], align 8

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/def-and-decl.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/def-and-decl.c.expected
index f73fdc730e10..ac768983f853 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/def-and-decl.c.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/def-and-decl.c.expected
@@ -6,7 +6,7 @@ int foo(int arg);
 
 void empty_function(void);
 
-// CHECK-LABEL: @main(
+// CHECK-LABEL: define {{[^@]+}}@main(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4
 // CHECK-NEXT:    store i32 0, i32* [[RETVAL]], align 4
@@ -19,7 +19,7 @@ int main(void) {
   return foo(1);
 }
 
-// CHECK-LABEL: @foo(
+// CHECK-LABEL: define {{[^@]+}}@foo(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[ARG_ADDR:%.*]] = alloca i32, align 4
 // CHECK-NEXT:    store i32 [[ARG:%.*]], i32* [[ARG_ADDR]], align 4
@@ -30,7 +30,7 @@ int foo(int arg) {
   return arg;
 }
 
-// CHECK-LABEL: @empty_function(
+// CHECK-LABEL: define {{[^@]+}}@empty_function(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    ret void
 //

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c.expected
index 7c817d45e8ef..92c8a572ce0b 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/exec-all-runlines.c.expected
@@ -15,19 +15,19 @@
 
 void use(int);
 
-// CHECK1-LABEL: @test(
+// CHECK1-LABEL: define {{[^@]+}}@test(
 // CHECK1-NEXT:  entry:
 // CHECK1-NEXT:    [[A_ADDR:%.*]] = alloca i32, align 4
 // CHECK1-NEXT:    store i32 [[A:%.*]], i32* [[A_ADDR]], align 4
 // CHECK1-NEXT:    ret void
 //
-// CHECK2-LABEL: @test(
+// CHECK2-LABEL: define {{[^@]+}}@test(
 // CHECK2-NEXT:  entry:
 // CHECK2-NEXT:    [[A_ADDR:%.*]] = alloca i32, align 4
 // CHECK2-NEXT:    store i32 [[A:%.*]], i32* [[A_ADDR]], align 4
 // CHECK2-NEXT:    ret void
 //
-// CHECK3-LABEL: @test(
+// CHECK3-LABEL: define {{[^@]+}}@test(
 // CHECK3-NEXT:  entry:
 // CHECK3-NEXT:    [[A_ADDR:%.*]] = alloca i32, align 4
 // CHECK3-NEXT:    store i32 [[A:%.*]], i32* [[A_ADDR]], align 4

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected b/clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected
index 53466c3a11bb..660e8033dd67 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected
@@ -36,7 +36,7 @@ public:
 
 // These two specializations should generate lines for all of Foo's methods.
 
-// CHECK-LABEL: @_ZN3FooIcEC1Ec(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooIcEC1Ec(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Foo*, align 8
 // CHECK-NEXT:    [[X_ADDR:%.*]] = alloca i8, align 1
@@ -47,7 +47,7 @@ public:
 // CHECK-NEXT:    call void @_ZN3FooIcEC2Ec(%struct.Foo* noundef nonnull align 1 dereferenceable(1) [[THIS1]], i8 noundef signext [[TMP0]])
 // CHECK-NEXT:    ret void
 //
-// CHECK-LABEL: @_ZN3FooIcED1Ev(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooIcED1Ev(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Foo*, align 8
 // CHECK-NEXT:    store %struct.Foo* [[THIS:%.*]], %struct.Foo** [[THIS_ADDR]], align 8
@@ -55,7 +55,7 @@ public:
 // CHECK-NEXT:    call void @_ZN3FooIcED2Ev(%struct.Foo* noundef nonnull align 1 dereferenceable(1) [[THIS1]]) #[[ATTR2:[0-9]+]]
 // CHECK-NEXT:    ret void
 //
-// CHECK-LABEL: @_ZN3FooIcE3getEv(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooIcE3getEv(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Foo*, align 8
 // CHECK-NEXT:    store %struct.Foo* [[THIS:%.*]], %struct.Foo** [[THIS_ADDR]], align 8
@@ -64,7 +64,7 @@ public:
 // CHECK-NEXT:    [[TMP0:%.*]] = load i8, i8* [[X]], align 1
 // CHECK-NEXT:    ret i8 [[TMP0]]
 //
-// CHECK-LABEL: @_ZN3FooIcE3setEc(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooIcE3setEc(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Foo*, align 8
 // CHECK-NEXT:    [[_X_ADDR:%.*]] = alloca i8, align 1
@@ -78,7 +78,7 @@ public:
 //
 template struct Foo<char>;
 
-// CHECK-LABEL: @_ZN3FooIsEC1Es(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooIsEC1Es(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Foo.0*, align 8
 // CHECK-NEXT:    [[X_ADDR:%.*]] = alloca i16, align 2
@@ -89,7 +89,7 @@ template struct Foo<char>;
 // CHECK-NEXT:    call void @_ZN3FooIsEC2Es(%struct.Foo.0* noundef nonnull align 2 dereferenceable(2) [[THIS1]], i16 noundef signext [[TMP0]])
 // CHECK-NEXT:    ret void
 //
-// CHECK-LABEL: @_ZN3FooIsED1Ev(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooIsED1Ev(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Foo.0*, align 8
 // CHECK-NEXT:    store %struct.Foo.0* [[THIS:%.*]], %struct.Foo.0** [[THIS_ADDR]], align 8
@@ -97,7 +97,7 @@ template struct Foo<char>;
 // CHECK-NEXT:    call void @_ZN3FooIsED2Ev(%struct.Foo.0* noundef nonnull align 2 dereferenceable(2) [[THIS1]]) #[[ATTR2]]
 // CHECK-NEXT:    ret void
 //
-// CHECK-LABEL: @_ZN3FooIsE3getEv(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooIsE3getEv(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Foo.0*, align 8
 // CHECK-NEXT:    store %struct.Foo.0* [[THIS:%.*]], %struct.Foo.0** [[THIS_ADDR]], align 8
@@ -106,7 +106,7 @@ template struct Foo<char>;
 // CHECK-NEXT:    [[TMP0:%.*]] = load i16, i16* [[X]], align 2
 // CHECK-NEXT:    ret i16 [[TMP0]]
 //
-// CHECK-LABEL: @_ZN3FooIsE3setEs(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3FooIsE3setEs(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Foo.0*, align 8
 // CHECK-NEXT:    [[_X_ADDR:%.*]] = alloca i16, align 2
@@ -123,7 +123,7 @@ template struct Foo<short>;
 // This should not generate lines for the implicit specialization of Foo, but
 // should generate lines for the explicit specialization of Bar.
 
-// CHECK-LABEL: @_ZN3BarIiEC1Ei(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3BarIiEC1Ei(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Bar*, align 8
 // CHECK-NEXT:    [[X_ADDR:%.*]] = alloca i32, align 4
@@ -134,7 +134,7 @@ template struct Foo<short>;
 // CHECK-NEXT:    call void @_ZN3BarIiEC2Ei(%struct.Bar* noundef nonnull align 4 dereferenceable(4) [[THIS1]], i32 noundef [[TMP0]])
 // CHECK-NEXT:    ret void
 //
-// CHECK-LABEL: @_ZN3BarIiED1Ev(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3BarIiED1Ev(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Bar*, align 8
 // CHECK-NEXT:    store %struct.Bar* [[THIS:%.*]], %struct.Bar** [[THIS_ADDR]], align 8
@@ -142,7 +142,7 @@ template struct Foo<short>;
 // CHECK-NEXT:    call void @_ZN3BarIiED2Ev(%struct.Bar* noundef nonnull align 4 dereferenceable(4) [[THIS1]]) #[[ATTR2]]
 // CHECK-NEXT:    ret void
 //
-// CHECK-LABEL: @_ZN3BarIiE3getEv(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3BarIiE3getEv(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Bar*, align 8
 // CHECK-NEXT:    store %struct.Bar* [[THIS:%.*]], %struct.Bar** [[THIS_ADDR]], align 8
@@ -151,7 +151,7 @@ template struct Foo<short>;
 // CHECK-NEXT:    [[CALL:%.*]] = call noundef i32 @_ZN3FooIiE3getEv(%struct.Foo.1* noundef nonnull align 4 dereferenceable(4) [[FOO]])
 // CHECK-NEXT:    ret i32 [[CALL]]
 //
-// CHECK-LABEL: @_ZN3BarIiE3setEi(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3BarIiE3setEi(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Bar*, align 8
 // CHECK-NEXT:    [[_X_ADDR:%.*]] = alloca i32, align 4
@@ -168,7 +168,7 @@ template struct Bar<int>;
 // This should not generate lines for the implicit specialization of Foo, but
 // should generate lines for the explicit specialization of Baz.
 
-// CHECK-LABEL: @_ZN3BazIlEC1El(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3BazIlEC1El(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Baz*, align 8
 // CHECK-NEXT:    [[X_ADDR:%.*]] = alloca i64, align 8
@@ -179,7 +179,7 @@ template struct Bar<int>;
 // CHECK-NEXT:    call void @_ZN3BazIlEC2El(%struct.Baz* noundef nonnull align 8 dereferenceable(8) [[THIS1]], i64 noundef [[TMP0]])
 // CHECK-NEXT:    ret void
 //
-// CHECK-LABEL: @_ZN3BazIlED1Ev(
+// CHECK-LABEL: define {{[^@]+}}@_ZN3BazIlED1Ev(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[THIS_ADDR:%.*]] = alloca %struct.Baz*, align 8
 // CHECK-NEXT:    store %struct.Baz* [[THIS:%.*]], %struct.Baz** [[THIS_ADDR]], align 8

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs-regex.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs-regex.c.expected
index f99c2e64cec3..e2ed534579d8 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs-regex.c.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs-regex.c.expected
@@ -12,7 +12,7 @@ void foo(int a)
     __test_offloading_42_abcdef_bar_l123();
     int somevar_abc123_;
 }
-// CHECK-LABEL: @foo(
+// CHECK-LABEL: define {{[^@]+}}@foo(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[A_ADDR:%.*]] = alloca i32, align 4
 // CHECK-NEXT:    [[A_CASTED:%.*]] = alloca i64, align 8
@@ -27,7 +27,7 @@ void foo(int a)
 // CHECK-NEXT:    ret void
 //
 //
-// CHECK-LABEL: @{{__omp_offloading_[a-z0-9]+_[a-z0-9]+_foo_l[0-9]+}}(
+// CHECK-LABEL: define {{[^@]+}}@{{__omp_offloading_[a-z0-9]+_[a-z0-9]+_foo_l[0-9]+}}(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[A_ADDR:%.*]] = alloca i64, align 8
 // CHECK-NEXT:    store i64 [[A:%.*]], i64* [[A_ADDR]], align 8

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected
index adc8922658c8..b8d6f3e1415a 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected
@@ -30,7 +30,7 @@ void foo(void) {
     A[i] = 1.0;
   }
 }
-// OMP-LABEL: @main(
+// OMP-LABEL: define {{[^@]+}}@main(
 // OMP-NEXT:  entry:
 // OMP-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4
 // OMP-NEXT:    [[I:%.*]] = alloca i32, align 4
@@ -41,7 +41,7 @@ void foo(void) {
 // OMP-NEXT:    ret i32 0
 //
 //
-// OMP-LABEL: @.omp_outlined.(
+// OMP-LABEL: define {{[^@]+}}@.omp_outlined.(
 // OMP-NEXT:  entry:
 // OMP-NEXT:    [[DOTGLOBAL_TID__ADDR:%.*]] = alloca i32*, align 8
 // OMP-NEXT:    [[DOTBOUND_TID__ADDR:%.*]] = alloca i32*, align 8
@@ -104,7 +104,7 @@ void foo(void) {
 // OMP-NEXT:    ret void
 //
 //
-// OMP-LABEL: @foo(
+// OMP-LABEL: define {{[^@]+}}@foo(
 // OMP-NEXT:  entry:
 // OMP-NEXT:    [[I:%.*]] = alloca i32, align 4
 // OMP-NEXT:    store i32 0, i32* [[I]], align 4
@@ -112,7 +112,7 @@ void foo(void) {
 // OMP-NEXT:    ret void
 //
 //
-// OMP-LABEL: @.omp_outlined..1(
+// OMP-LABEL: define {{[^@]+}}@.omp_outlined..1(
 // OMP-NEXT:  entry:
 // OMP-NEXT:    [[DOTGLOBAL_TID__ADDR:%.*]] = alloca i32*, align 8
 // OMP-NEXT:    [[DOTBOUND_TID__ADDR:%.*]] = alloca i32*, align 8
@@ -175,7 +175,7 @@ void foo(void) {
 // OMP-NEXT:    ret void
 //
 //
-// NOOMP-LABEL: @main(
+// NOOMP-LABEL: define {{[^@]+}}@main(
 // NOOMP-NEXT:  entry:
 // NOOMP-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4
 // NOOMP-NEXT:    [[I:%.*]] = alloca i32, align 4
@@ -203,7 +203,7 @@ void foo(void) {
 // NOOMP-NEXT:    ret i32 0
 //
 //
-// NOOMP-LABEL: @foo(
+// NOOMP-LABEL: define {{[^@]+}}@foo(
 // NOOMP-NEXT:  entry:
 // NOOMP-NEXT:    [[I:%.*]] = alloca i32, align 4
 // NOOMP-NEXT:    store i32 0, i32* [[I]], align 4

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected
index 700903ff040f..0aacd69d31b7 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected
@@ -9,7 +9,7 @@ double A[size];
 
 void foo(void);
 
-// OMP-LABEL: @main(
+// OMP-LABEL: define {{[^@]+}}@main(
 // OMP-NEXT:  entry:
 // OMP-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4
 // OMP-NEXT:    [[I:%.*]] = alloca i32, align 4
@@ -19,7 +19,7 @@ void foo(void);
 // OMP-NEXT:    call void @foo()
 // OMP-NEXT:    ret i32 0
 //
-// NOOMP-LABEL: @main(
+// NOOMP-LABEL: define {{[^@]+}}@main(
 // NOOMP-NEXT:  entry:
 // NOOMP-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4
 // NOOMP-NEXT:    [[I:%.*]] = alloca i32, align 4
@@ -59,14 +59,14 @@ int main(void) {
   return 0;
 }
 
-// OMP-LABEL: @foo(
+// OMP-LABEL: define {{[^@]+}}@foo(
 // OMP-NEXT:  entry:
 // OMP-NEXT:    [[I:%.*]] = alloca i32, align 4
 // OMP-NEXT:    store i32 0, i32* [[I]], align 4
 // OMP-NEXT:    call void (%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...) @__kmpc_fork_call(%struct.ident_t* @[[GLOB2]], i32 0, void (i32*, i32*, ...)* bitcast (void (i32*, i32*)* @.omp_outlined..1 to void (i32*, i32*, ...)*))
 // OMP-NEXT:    ret void
 //
-// NOOMP-LABEL: @foo(
+// NOOMP-LABEL: define {{[^@]+}}@foo(
 // NOOMP-NEXT:  entry:
 // NOOMP-NEXT:    [[I:%.*]] = alloca i32, align 4
 // NOOMP-NEXT:    store i32 0, i32* [[I]], align 4

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/global-hex-value-regex.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/global-hex-value-regex.c.expected
index f494971a6a88..fab550de7fff 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/global-hex-value-regex.c.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/global-hex-value-regex.c.expected
@@ -7,7 +7,7 @@
 // CHECK: @bar.hex = internal global i32 [[#0x20]], align 4
 // CHECK: @bar.dec = internal global i32 20, align 4
 //.
-// CHECK-LABEL: @foo(
+// CHECK-LABEL: define {{[^@]+}}@foo(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    ret void
 //
@@ -15,7 +15,7 @@ void foo(void) {
   static int hex = 0x10;
   static int dec = 10;
 }
-// CHECK-LABEL: @bar(
+// CHECK-LABEL: define {{[^@]+}}@bar(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    ret void
 //

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/global-value-regex.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/global-value-regex.c.expected
index 94e08ce9553b..f55c496a269a 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/global-value-regex.c.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/global-value-regex.c.expected
@@ -5,14 +5,14 @@
 // CHECK: @foo.i = internal global i32 0, align 4
 // CHECK: @foo.j = internal global i32 0, align 4
 //.
-// CHECK-LABEL: @foo(
+// CHECK-LABEL: define {{[^@]+}}@foo(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    ret void
 //
 void foo(void) {
   static int i, j;
 }
-// CHECK-LABEL: @bar(
+// CHECK-LABEL: define {{[^@]+}}@bar(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    ret void
 //

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/ifdef.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/ifdef.c.expected
index c1fb72db9339..2bedf5b88128 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/ifdef.c.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/ifdef.c.expected
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple=x86_64-unknown-linux-gnu -emit-llvm -o - %s -DFOO | FileCheck -check-prefixes=CHECK,FOO %s
 
 #ifdef FOO
-// FOO-LABEL: @foo(
+// FOO-LABEL: define {{[^@]+}}@foo(
 // FOO-NEXT:  entry:
 // FOO-NEXT:    ret i32 1
 //
@@ -12,7 +12,7 @@ int foo() {
 }
 #endif
 
-// CHECK-LABEL: @bar(
+// CHECK-LABEL: define {{[^@]+}}@bar(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    ret i32 2
 //

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/mangled_names.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/mangled_names.c.expected
index cf1fc9c50385..290d47cf7875 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/mangled_names.c.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/mangled_names.c.expected
@@ -2,7 +2,7 @@
 // Example input for update_cc_test_checks
 // RUN: %clang_cc1 -no-opaque-pointers -triple=x86_64-unknown-linux-gnu -emit-llvm -o - %s | FileCheck %s
 
-// CHECK-LABEL: @test(
+// CHECK-LABEL: define {{[^@]+}}@test(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[A_ADDR:%.*]] = alloca i64, align 8
 // CHECK-NEXT:    [[B_ADDR:%.*]] = alloca i32, align 4
@@ -19,7 +19,7 @@ long test(long a, int b) {
 }
 
 // A function with a mangled name
-// CHECK-LABEL: @_Z4testlii(
+// CHECK-LABEL: define {{[^@]+}}@_Z4testlii(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    [[A_ADDR:%.*]] = alloca i64, align 8
 // CHECK-NEXT:    [[B_ADDR:%.*]] = alloca i32, align 4

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/on_the_fly_arg_change.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/on_the_fly_arg_change.c.expected
index 4688ec932b59..6ca311681b24 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/on_the_fly_arg_change.c.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/on_the_fly_arg_change.c.expected
@@ -1,7 +1,7 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // RUN: %clang_cc1 -triple=x86_64-unknown-linux-gnu -emit-llvm -o - %s | FileCheck %s
 
-// CHECK-LABEL: @checks_please(
+// CHECK-LABEL: define {{[^@]+}}@checks_please(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    ret i32 1
 //
@@ -20,7 +20,7 @@ int no_checks_please(void) {
 // UTC_ARGS: --enable
 
 
-// CHECK-LABEL: @checks_again(
+// CHECK-LABEL: define {{[^@]+}}@checks_again(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    ret i32 2
 //

diff  --git a/clang/test/utils/update_cc_test_checks/Inputs/replace-value-regex-across-runs.c.expected b/clang/test/utils/update_cc_test_checks/Inputs/replace-value-regex-across-runs.c.expected
index ea3cc9480f6d..a8024f7cda91 100644
--- a/clang/test/utils/update_cc_test_checks/Inputs/replace-value-regex-across-runs.c.expected
+++ b/clang/test/utils/update_cc_test_checks/Inputs/replace-value-regex-across-runs.c.expected
@@ -4,7 +4,7 @@
 // RUN: %clang_cc1 -triple x86_64-pc-linux-gnu -fopenmp -emit-llvm -o - %s | \
 // RUN:     FileCheck %s
 
-// CHECK-LABEL: @foo(
+// CHECK-LABEL: define {{[^@]+}}@foo(
 // CHECK-NEXT:  entry:
 // CHECK-NEXT:    call void @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}_foo_l7() #[[ATTR2:[0-9]+]]
 // CHECK-NEXT:    ret void

diff  --git a/clang/test/utils/update_cc_test_checks/check-globals.test b/clang/test/utils/update_cc_test_checks/check-globals.test
index 9a2e0cca4c4c..494a58448fa0 100644
--- a/clang/test/utils/update_cc_test_checks/check-globals.test
+++ b/clang/test/utils/update_cc_test_checks/check-globals.test
@@ -56,7 +56,7 @@ BOTH-EMPTY:
  BOTH-NEXT:// CHECK: @bar.i = internal global i32 0, align 4
  BOTH-NEXT:// CHECK: @bar.j = internal global i32 0, align 4
  BOTH-NEXT://.
- BOTH-NEXT:// CHECK-LABEL: @foo(
+ BOTH-NEXT:// CHECK-LABEL: define {{.+}}@foo(
  BOTH-NEXT:// CHECK-NEXT:  entry:
  BOTH-NEXT:// CHECK-NEXT:    ret void
  BOTH-NEXT://
@@ -64,7 +64,7 @@ BOTH-EMPTY:
   NRM-NEXT:  static int i, j;
   NRM-NEXT:}
   IGF-NEXT://
- BOTH-NEXT:// CHECK-LABEL: @bar(
+ BOTH-NEXT:// CHECK-LABEL: define {{.+}}@bar(
  BOTH-NEXT:// CHECK-NEXT:  entry:
  BOTH-NEXT:// CHECK-NEXT:    ret void
  BOTH-NEXT://

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/argument_name_reuse.ll.plain.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/argument_name_reuse.ll.plain.expected
index e6cb25980a2f..a462c843337d 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/argument_name_reuse.ll.plain.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/argument_name_reuse.ll.plain.expected
@@ -2,7 +2,7 @@
 ; RUN: opt < %s -S | FileCheck %s
 
 define i32 @reuse_arg_names(i32 %X, i32 %Y) {
-; CHECK-LABEL: @reuse_arg_names(
+; CHECK-LABEL: define {{[^@]+}}@reuse_arg_names(
 ; CHECK-NEXT:    [[Z:%.*]] = sub i32 [[X:%.*]], [[Y:%.*]]
 ; CHECK-NEXT:    [[Q:%.*]] = add i32 [[Z]], [[Y]]
 ; CHECK-NEXT:    ret i32 [[Q]]

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/basic.ll.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/basic.ll.expected
index 457540fc7cbb..771af39d6c21 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/basic.ll.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/basic.ll.expected
@@ -3,7 +3,7 @@
 ; RUN: opt < %s -passes=instsimplify -S | FileCheck %s
 
 define i32 @common_sub_operand(i32 %X, i32 %Y) {
-; CHECK-LABEL: @common_sub_operand(
+; CHECK-LABEL: define {{[^@]+}}@common_sub_operand(
 ; CHECK-NEXT:    ret i32 [[X:%.*]]
 ;
   %Z = sub i32 %X, %Y
@@ -12,7 +12,7 @@ define i32 @common_sub_operand(i32 %X, i32 %Y) {
 }
 
 define i32 @negated_operand(i32 %x) {
-; CHECK-LABEL: @negated_operand(
+; CHECK-LABEL: define {{[^@]+}}@negated_operand(
 ; CHECK-NEXT:    ret i32 0
 ;
   %negx = sub i32 0, %x
@@ -21,7 +21,7 @@ define i32 @negated_operand(i32 %x) {
 }
 
 define <2 x i32> @negated_operand_commute_vec(<2 x i32> %x) {
-; CHECK-LABEL: @negated_operand_commute_vec(
+; CHECK-LABEL: define {{[^@]+}}@negated_operand_commute_vec(
 ; CHECK-NEXT:    ret <2 x i32> zeroinitializer
 ;
   %negx = sub <2 x i32> zeroinitializer, %x
@@ -30,7 +30,7 @@ define <2 x i32> @negated_operand_commute_vec(<2 x i32> %x) {
 }
 
 define i8 @knownnegation(i8 %x, i8 %y) {
-; CHECK-LABEL: @knownnegation(
+; CHECK-LABEL: define {{[^@]+}}@knownnegation(
 ; CHECK-NEXT:    ret i8 0
 ;
   %xy = sub i8 %x, %y
@@ -40,7 +40,7 @@ define i8 @knownnegation(i8 %x, i8 %y) {
 }
 
 define <2 x i8> @knownnegation_commute_vec(<2 x i8> %x, <2 x i8> %y) {
-; CHECK-LABEL: @knownnegation_commute_vec(
+; CHECK-LABEL: define {{[^@]+}}@knownnegation_commute_vec(
 ; CHECK-NEXT:    ret <2 x i8> zeroinitializer
 ;
   %xy = sub <2 x i8> %x, %y
@@ -50,7 +50,7 @@ define <2 x i8> @knownnegation_commute_vec(<2 x i8> %x, <2 x i8> %y) {
 }
 
 define i32 @nameless_value(i32 %X) {
-; CHECK-LABEL: @nameless_value(
+; CHECK-LABEL: define {{[^@]+}}@nameless_value(
 ; CHECK-NEXT:    [[TMP1:%.*]] = sub i32 42, [[X:%.*]]
 ; CHECK-NEXT:    ret i32 [[TMP1]]
 ;

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/custom-tool.ll.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/custom-tool.ll.expected
index 6b7ac81bd6d8..d77d328990d8 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/custom-tool.ll.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/custom-tool.ll.expected
@@ -2,7 +2,7 @@
 ; RUN: llvm-extract -S --func=foo %s | FileCheck --check-prefixes=CHECK %s
 
 define i32 @foo(i32 %x) {
-; CHECK-LABEL: @foo(
+; CHECK-LABEL: define {{[^@]+}}@foo(
 ; CHECK-NEXT:    [[Y:%.*]] = add i32 [[X:%.*]], 1
 ; CHECK-NEXT:    ret i32 [[Y]]
 ;

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/define_after_call.ll b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/define_after_call.ll
new file mode 100644
index 000000000000..d2d247fa3702
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/define_after_call.ll
@@ -0,0 +1,10 @@
+; RUN: opt < %s -S | FileCheck %s
+
+define i32 @a() {
+  %val = call i32 @b(i32 0)
+  ret i32 %val
+}
+
+define i32 @b(i32 %arg) {
+  ret i32 %arg
+}

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/define_after_call.ll.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/define_after_call.ll.expected
new file mode 100644
index 000000000000..b81619506185
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/define_after_call.ll.expected
@@ -0,0 +1,18 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -S | FileCheck %s
+
+define i32 @a() {
+; CHECK-LABEL: define {{[^@]+}}@a(
+; CHECK-NEXT:    [[VAL:%.*]] = call i32 @b(i32 0)
+; CHECK-NEXT:    ret i32 [[VAL]]
+;
+  %val = call i32 @b(i32 0)
+  ret i32 %val
+}
+
+define i32 @b(i32 %arg) {
+; CHECK-LABEL: define {{[^@]+}}@b(
+; CHECK-NEXT:    ret i32 [[ARG:%.*]]
+;
+  ret i32 %arg
+}

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.expected
index 905a79fdff40..075ce2b4a0e4 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.expected
@@ -35,7 +35,7 @@ exit:
 
 declare void @llvm.trap() noreturn cold
 declare void @_Z10sideeffectv()
-; CHECK-LABEL: @foo(
+; CHECK-LABEL: define {{[^@]+}}@foo(
 ; CHECK-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; CHECK-NEXT:    tail call void @_Z10sideeffectv()
 ; CHECK-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -46,7 +46,7 @@ declare void @_Z10sideeffectv()
 ; CHECK-NEXT:    ret void
 ;
 ;
-; CHECK-LABEL: @bar(
+; CHECK-LABEL: define {{[^@]+}}@bar(
 ; CHECK-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; CHECK-NEXT:    tail call void @_Z10sideeffectv()
 ; CHECK-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -57,7 +57,7 @@ declare void @_Z10sideeffectv()
 ; CHECK-NEXT:    ret void
 ;
 ;
-; CHECK-LABEL: @foo.cold.1(
+; CHECK-LABEL: define {{[^@]+}}@foo.cold.1(
 ; CHECK-NEXT:  newFuncRoot:
 ; CHECK-NEXT:    br label [[SINK:%.*]]
 ; CHECK:       sink:
@@ -66,7 +66,7 @@ declare void @_Z10sideeffectv()
 ; CHECK-NEXT:    unreachable
 ;
 ;
-; CHECK-LABEL: @bar.cold.1(
+; CHECK-LABEL: define {{[^@]+}}@bar.cold.1(
 ; CHECK-NEXT:  newFuncRoot:
 ; CHECK-NEXT:    br label [[SINK:%.*]]
 ; CHECK:       sink:

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected
index 1fee1aa8dfc5..b3bda45b5f08 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.globals.expected
@@ -38,7 +38,7 @@ declare void @_Z10sideeffectv()
 ;.
 ; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external dso_local global i32, align 4
 ;.
-; CHECK-LABEL: @foo(
+; CHECK-LABEL: define {{[^@]+}}@foo(
 ; CHECK-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; CHECK-NEXT:    tail call void @_Z10sideeffectv()
 ; CHECK-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -49,7 +49,7 @@ declare void @_Z10sideeffectv()
 ; CHECK-NEXT:    ret void
 ;
 ;
-; CHECK-LABEL: @bar(
+; CHECK-LABEL: define {{[^@]+}}@bar(
 ; CHECK-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; CHECK-NEXT:    tail call void @_Z10sideeffectv()
 ; CHECK-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -60,7 +60,7 @@ declare void @_Z10sideeffectv()
 ; CHECK-NEXT:    ret void
 ;
 ;
-; CHECK-LABEL: @foo.cold.1(
+; CHECK-LABEL: define {{[^@]+}}@foo.cold.1(
 ; CHECK-NEXT:  newFuncRoot:
 ; CHECK-NEXT:    br label [[SINK:%.*]]
 ; CHECK:       sink:
@@ -69,7 +69,7 @@ declare void @_Z10sideeffectv()
 ; CHECK-NEXT:    unreachable
 ;
 ;
-; CHECK-LABEL: @bar.cold.1(
+; CHECK-LABEL: define {{[^@]+}}@bar.cold.1(
 ; CHECK-NEXT:  newFuncRoot:
 ; CHECK-NEXT:    br label [[SINK:%.*]]
 ; CHECK:       sink:

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.expected
index 37e98df641ae..8189c161b62a 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.expected
@@ -6,7 +6,7 @@ target triple = "x86_64-apple-macosx10.14.0"
 @G = external dso_local global i32, align 4
 
 define void @foo(i32) {
-; CHECK-LABEL: @foo(
+; CHECK-LABEL: define {{[^@]+}}@foo(
 ; CHECK-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; CHECK-NEXT:    tail call void @_Z10sideeffectv()
 ; CHECK-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -30,7 +30,7 @@ exit:
 }
 
 define void @bar(i32) {
-; CHECK-LABEL: @bar(
+; CHECK-LABEL: define {{[^@]+}}@bar(
 ; CHECK-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; CHECK-NEXT:    tail call void @_Z10sideeffectv()
 ; CHECK-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected
index 417fe2ac5cb4..1375c7de4867 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.globals.expected
@@ -9,7 +9,7 @@ target triple = "x86_64-apple-macosx10.14.0"
 ; CHECK: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external dso_local global i32, align 4
 ;.
 define void @foo(i32) {
-; CHECK-LABEL: @foo(
+; CHECK-LABEL: define {{[^@]+}}@foo(
 ; CHECK-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; CHECK-NEXT:    tail call void @_Z10sideeffectv()
 ; CHECK-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -33,7 +33,7 @@ exit:
 }
 
 define void @bar(i32) {
-; CHECK-LABEL: @bar(
+; CHECK-LABEL: define {{[^@]+}}@bar(
 ; CHECK-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; CHECK-NEXT:    tail call void @_Z10sideeffectv()
 ; CHECK-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.expected
index e37caf215c45..732d472e70ba 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.expected
@@ -36,7 +36,7 @@ exit:
 
 declare void @llvm.trap() noreturn cold
 declare void @_Z10sideeffectv()
-; REUSE-LABEL: @foo(
+; REUSE-LABEL: define {{[^@]+}}@foo(
 ; REUSE-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; REUSE-NEXT:    tail call void @_Z10sideeffectv()
 ; REUSE-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -47,7 +47,7 @@ declare void @_Z10sideeffectv()
 ; REUSE-NEXT:    ret void
 ;
 ;
-; REUSE-LABEL: @bar(
+; REUSE-LABEL: define {{[^@]+}}@bar(
 ; REUSE-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; REUSE-NEXT:    tail call void @_Z10sideeffectv()
 ; REUSE-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -58,7 +58,7 @@ declare void @_Z10sideeffectv()
 ; REUSE-NEXT:    ret void
 ;
 ;
-; REUSE-LABEL: @foo.cold.1(
+; REUSE-LABEL: define {{[^@]+}}@foo.cold.1(
 ; REUSE-NEXT:  newFuncRoot:
 ; REUSE-NEXT:    br label [[SINK:%.*]]
 ; REUSE:       sink:
@@ -67,7 +67,7 @@ declare void @_Z10sideeffectv()
 ; REUSE-NEXT:    unreachable
 ;
 ;
-; REUSE-LABEL: @bar.cold.1(
+; REUSE-LABEL: define {{[^@]+}}@bar.cold.1(
 ; REUSE-NEXT:  newFuncRoot:
 ; REUSE-NEXT:    br label [[SINK:%.*]]
 ; REUSE:       sink:

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected
index 7bc047929488..c728b84cf491 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.generated.globals.expected
@@ -39,7 +39,7 @@ declare void @_Z10sideeffectv()
 ;.
 ; REUSE: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external dso_local global i32, align 4
 ;.
-; REUSE-LABEL: @foo(
+; REUSE-LABEL: define {{[^@]+}}@foo(
 ; REUSE-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; REUSE-NEXT:    tail call void @_Z10sideeffectv()
 ; REUSE-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -50,7 +50,7 @@ declare void @_Z10sideeffectv()
 ; REUSE-NEXT:    ret void
 ;
 ;
-; REUSE-LABEL: @bar(
+; REUSE-LABEL: define {{[^@]+}}@bar(
 ; REUSE-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; REUSE-NEXT:    tail call void @_Z10sideeffectv()
 ; REUSE-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -61,7 +61,7 @@ declare void @_Z10sideeffectv()
 ; REUSE-NEXT:    ret void
 ;
 ;
-; REUSE-LABEL: @foo.cold.1(
+; REUSE-LABEL: define {{[^@]+}}@foo.cold.1(
 ; REUSE-NEXT:  newFuncRoot:
 ; REUSE-NEXT:    br label [[SINK:%.*]]
 ; REUSE:       sink:
@@ -70,7 +70,7 @@ declare void @_Z10sideeffectv()
 ; REUSE-NEXT:    unreachable
 ;
 ;
-; REUSE-LABEL: @bar.cold.1(
+; REUSE-LABEL: define {{[^@]+}}@bar.cold.1(
 ; REUSE-NEXT:  newFuncRoot:
 ; REUSE-NEXT:    br label [[SINK:%.*]]
 ; REUSE:       sink:

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.expected
index 50dbb8324acc..66b49d0b62a8 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.expected
@@ -7,7 +7,7 @@ target triple = "x86_64-apple-macosx10.14.0"
 @G = external dso_local global i32, align 4
 
 define void @foo(i32) {
-; REUSE-LABEL: @foo(
+; REUSE-LABEL: define {{[^@]+}}@foo(
 ; REUSE-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; REUSE-NEXT:    tail call void @_Z10sideeffectv()
 ; REUSE-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -31,7 +31,7 @@ exit:
 }
 
 define void @bar(i32) {
-; REUSE-LABEL: @bar(
+; REUSE-LABEL: define {{[^@]+}}@bar(
 ; REUSE-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; REUSE-NEXT:    tail call void @_Z10sideeffectv()
 ; REUSE-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected
index 0049c2ab6149..675df6e6e9c3 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs_prefix_reuse.ll.nogenerated.globals.expected
@@ -10,7 +10,7 @@ target triple = "x86_64-apple-macosx10.14.0"
 ; REUSE: @[[G:[a-zA-Z0-9_$"\\.-]+]] = external dso_local global i32, align 4
 ;.
 define void @foo(i32) {
-; REUSE-LABEL: @foo(
+; REUSE-LABEL: define {{[^@]+}}@foo(
 ; REUSE-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; REUSE-NEXT:    tail call void @_Z10sideeffectv()
 ; REUSE-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]
@@ -34,7 +34,7 @@ exit:
 }
 
 define void @bar(i32) {
-; REUSE-LABEL: @bar(
+; REUSE-LABEL: define {{[^@]+}}@bar(
 ; REUSE-NEXT:    [[TMP2:%.*]] = icmp eq i32 [[TMP0:%.*]], 0
 ; REUSE-NEXT:    tail call void @_Z10sideeffectv()
 ; REUSE-NEXT:    br i1 [[TMP2]], label [[CODEREPL:%.*]], label [[EXIT:%.*]]

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.plain.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.plain.expected
index fc6688daeb92..8886e3de5c4e 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.plain.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.plain.expected
@@ -4,7 +4,7 @@
 declare void @foo()
 
 define internal void @bar() {
-; CHECK-LABEL: @bar(
+; CHECK-LABEL: define {{[^@]+}}@bar(
 ; CHECK-NEXT:    call void @foo() #[[ATTR0:[0-9]+]]
 ; CHECK-NEXT:    ret void
 ;

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.scrub.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.scrub.expected
index 0674a8938e1f..514bd66bc674 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.scrub.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/scrub_attrs.ll.scrub.expected
@@ -4,7 +4,7 @@
 declare void @foo()
 
 define internal void @bar() {
-; CHECK-LABEL: @bar(
+; CHECK-LABEL: define {{[^@]+}}@bar(
 ; CHECK-NEXT:    call void @foo()
 ; CHECK-NEXT:    ret void
 ;

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/sometimes_deleted_function.ll.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/sometimes_deleted_function.ll.expected
index 269ded7a21cf..60231db8fc92 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/sometimes_deleted_function.ll.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/sometimes_deleted_function.ll.expected
@@ -8,11 +8,11 @@
 ; Also verify we use "ONE_AND_FOUR" for the unmodified @sometimes_here version and "THREE" for the version without the add.
 
 define internal void @sometimes_here() {
-; ONE_AND_FOUR-LABEL: @sometimes_here(
+; ONE_AND_FOUR-LABEL: define {{[^@]+}}@sometimes_here(
 ; ONE_AND_FOUR-NEXT:    [[C:%.*]] = add i32 undef, undef
 ; ONE_AND_FOUR-NEXT:    ret void
 ;
-; THREE-LABEL: @sometimes_here(
+; THREE-LABEL: define {{[^@]+}}@sometimes_here(
 ; THREE-NEXT:    ret void
 ;
   %c = add i32 undef, undef
@@ -20,7 +20,7 @@ define internal void @sometimes_here() {
 }
 
 define void @always_here() {
-; ALL-LABEL: @always_here(
+; ALL-LABEL: define {{[^@]+}}@always_here(
 ; ALL-NEXT:    ret void
 ;
   ret void

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected
index 99f5d91159c2..5c4d9f9795ac 100644
--- a/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/various_ir_values.ll.expected
@@ -9,7 +9,7 @@ target triple = "x86_64-unknown-linux-gnu"
 
 ; Function Attrs: nounwind uwtable
 define dso_local void @foo(i32* %A) #0 !dbg !7 {
-; CHECK-LABEL: @foo(
+; CHECK-LABEL: define {{[^@]+}}@foo(
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[A_ADDR:%.*]] = alloca i32*, align 8
 ; CHECK-NEXT:    [[I:%.*]] = alloca i32, align 4
@@ -97,7 +97,7 @@ declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2
 
 ; Function Attrs: nounwind uwtable
 define dso_local void @bar(i32* %A) #0 !dbg !39 {
-; CHECK-LABEL: @bar(
+; CHECK-LABEL: define {{[^@]+}}@bar(
 ; CHECK-NEXT:  entry:
 ; CHECK-NEXT:    [[A_ADDR:%.*]] = alloca i32*, align 8
 ; CHECK-NEXT:    [[I:%.*]] = alloca i32, align 4

diff  --git a/llvm/test/tools/UpdateTestChecks/update_test_checks/define_after_call.test b/llvm/test/tools/UpdateTestChecks/update_test_checks/define_after_call.test
new file mode 100644
index 000000000000..c3c55636b6b1
--- /dev/null
+++ b/llvm/test/tools/UpdateTestChecks/update_test_checks/define_after_call.test
@@ -0,0 +1,4 @@
+# Verify that calls and defines of the same function can be mixed
+# RUN: cp -f %S/Inputs/define_after_call.ll %t.ll && %update_test_checks %t.ll
+# RUN: 
diff  -u %t.ll %S/Inputs/define_after_call.ll.expected
+# RUN: opt < %t.ll -S | FileCheck %t.ll

diff  --git a/llvm/utils/UpdateTestChecks/common.py b/llvm/utils/UpdateTestChecks/common.py
index 6a2c2f4e01f5..7a66229693b0 100644
--- a/llvm/utils/UpdateTestChecks/common.py
+++ b/llvm/utils/UpdateTestChecks/common.py
@@ -1028,7 +1028,7 @@ def add_ir_checks(output_lines, comment_marker, prefix_list, func_dict,
                   func_name, preserve_names, function_sig,
                   global_vars_seen_dict, is_filtered):
   # Label format is based on IR string.
-  function_def_regex = 'define {{[^@]+}}' if function_sig else ''
+  function_def_regex = 'define {{[^@]+}}'
   check_label_format = '{} %s-LABEL: {}@%s%s%s'.format(comment_marker, function_def_regex)
   return add_checks(output_lines, comment_marker, prefix_list, func_dict, func_name,
                     check_label_format, False, preserve_names, global_vars_seen_dict,


        


More information about the cfe-commits mailing list