diff --git a/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp b/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp
index 40f3cad..11026e8 100644
--- a/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp
+++ b/clang/test/CodeGenCXX/devirtualize-virtual-function-calls-final.cpp
@@ -5,7 +5,7 @@
     virtual int f() final;
   };
 
-  // CHECK: define i32 @_ZN5Test11fEPNS_1AE
+  // CHECK-LABEL: define i32 @_ZN5Test11fEPNS_1AE
   int f(A *a) {
     // CHECK: call i32 @_ZN5Test11A1fEv
     return a->f();
@@ -17,7 +17,7 @@
     virtual int f();
   };
 
-  // CHECK: define i32 @_ZN5Test21fEPNS_1AE
+  // CHECK-LABEL: define i32 @_ZN5Test21fEPNS_1AE
   int f(A *a) {
     // CHECK: call i32 @_ZN5Test21A1fEv
     return a->f();
@@ -31,19 +31,19 @@
 
   struct B final : A { };
 
-  // CHECK: define i32 @_ZN5Test31fEPNS_1BE
+  // CHECK-LABEL: define i32 @_ZN5Test31fEPNS_1BE
   int f(B *b) {
     // CHECK: call i32 @_ZN5Test31A1fEv
     return b->f();
   }
 
-  // CHECK: define i32 @_ZN5Test31fERNS_1BE
+  // CHECK-LABEL: define i32 @_ZN5Test31fERNS_1BE
   int f(B &b) {
     // CHECK: call i32 @_ZN5Test31A1fEv
     return b.f();
   }
 
-  // CHECK: define i32 @_ZN5Test31fEPv
+  // CHECK-LABEL: define i32 @_ZN5Test31fEPv
   int f(void *v) {
     // CHECK: call i32 @_ZN5Test31A1fEv
     return static_cast<B*>(v)->f();
@@ -59,7 +59,7 @@
     virtual void f();
   };
 
-  // CHECK: define void @_ZN5Test41fEPNS_1BE
+  // CHECK-LABEL: define void @_ZN5Test41fEPNS_1BE
   void f(B* d) {
     // CHECK: call void @_ZN5Test41B1fEv
     static_cast<A*>(d)->f();
@@ -78,7 +78,7 @@
   struct C final : B {
   };
 
-  // CHECK: define void @_ZN5Test51fEPNS_1CE
+  // CHECK-LABEL: define void @_ZN5Test51fEPNS_1CE
   void f(C* d) {
     // FIXME: It should be possible to devirtualize this case, but that is
     // not implemented yet.
@@ -105,7 +105,7 @@
   struct D final : public C, public B {
   };
 
-  // CHECK: define void @_ZN5Test61fEPNS_1DE
+  // CHECK-LABEL: define void @_ZN5Test61fEPNS_1DE
   void f(D* d) {
     // CHECK: call void @_ZN5Test61DD1Ev
     static_cast<A*>(d)->~A();
@@ -126,7 +126,7 @@
     virtual int f() {return z;}
   };
 
-  // CHECK: define i32 @_ZN5Test71fEPNS_3zedE
+  // CHECK-LABEL: define i32 @_ZN5Test71fEPNS_3zedE
   int f(zed *z) {
     // CHECK: alloca
     // CHECK-NEXT: store
@@ -144,7 +144,7 @@
     virtual int foo() { return b; }
   };
   struct C final : A, B {  };
-  // CHECK: define i32 @_ZN5Test84testEPNS_1CE
+  // CHECK-LABEL: define i32 @_ZN5Test84testEPNS_1CE
   int test(C *c) {
     // CHECK: %[[THIS:.*]] = phi
     // CHECK-NEXT: call i32 @_ZN5Test81B3fooEv(%"struct.Test8::B"* %[[THIS]])
