[clang] de11de3 - [InstrProf] Use i32 for GEP index from lowering llvm.instrprof.increment

Kyungwoo Lee via cfe-commits cfe-commits at lists.llvm.org
Fri Nov 19 15:45:43 PST 2021


Author: Ellis Hoag
Date: 2021-11-19T15:45:14-08:00
New Revision: de11de308b6480fc35d901c7104f46918674418c

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

LOG: [InstrProf] Use i32 for GEP index from lowering llvm.instrprof.increment

The `llvm.instrprof.increment` intrinsic uses `i32` for the index. We should use this same type for the index into the GEP instructions.

Reviewed By: MaskRay

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

Added: 
    

Modified: 
    clang/test/CodeGen/profile-filter.c
    clang/test/Profile/branch-logical-mixed.cpp
    clang/test/Profile/c-captured.c
    clang/test/Profile/c-general.c
    clang/test/Profile/c-ternary.c
    clang/test/Profile/cxx-class.cpp
    clang/test/Profile/cxx-lambda.cpp
    clang/test/Profile/cxx-rangefor.cpp
    clang/test/Profile/cxx-stmt-initializers.cpp
    clang/test/Profile/cxx-templates.cpp
    clang/test/Profile/cxx-throws.cpp
    clang/test/Profile/objc-general.m
    llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
    llvm/test/Instrumentation/InstrProfiling/atomic-updates.ll
    llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll
    llvm/test/Transforms/PGOProfile/counter_promo_exit_catchswitch.ll
    llvm/test/Transforms/PGOProfile/instr_entry_bb.ll

Removed: 
    


################################################################################
diff  --git a/clang/test/CodeGen/profile-filter.c b/clang/test/CodeGen/profile-filter.c
index d39097076fc9c..5d71657f8f2d7 100644
--- a/clang/test/CodeGen/profile-filter.c
+++ b/clang/test/CodeGen/profile-filter.c
@@ -37,11 +37,11 @@ unsigned i;
 // EXCLUDE: noprofile
 // EXCLUDE: @test1
 unsigned test1() {
-  // CHECK: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i64 0, i64 0)
-  // FUNC: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i64 0, i64 0)
-  // FILE: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i64 0, i64 0)
-  // SECTION-NOT: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i64 0, i64 0)
-  // EXCLUDE-NOT: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i64 0, i64 0)
+  // CHECK: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i32 0, i32 0)
+  // FUNC: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i32 0, i32 0)
+  // FILE: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i32 0, i32 0)
+  // SECTION-NOT: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i32 0, i32 0)
+  // EXCLUDE-NOT: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test1, i32 0, i32 0)
   return i + 1;
 }
 
@@ -56,10 +56,10 @@ unsigned test1() {
 // EXCLUDE-NOT: noprofile
 // EXCLUDE: @test2
 unsigned test2() {
-  // CHECK: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i64 0, i64 0)
-  // FUNC-NOT: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i64 0, i64 0)
-  // FILE: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i64 0, i64 0)
-  // SECTION: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i64 0, i64 0)
-  // EXCLUDE: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i64 0, i64 0)
+  // CHECK: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i32 0, i32 0)
+  // FUNC-NOT: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i32 0, i32 0)
+  // FILE: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i32 0, i32 0)
+  // SECTION: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i32 0, i32 0)
+  // EXCLUDE: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_test2, i32 0, i32 0)
   return i - 1;
 }

diff  --git a/clang/test/Profile/branch-logical-mixed.cpp b/clang/test/Profile/branch-logical-mixed.cpp
index 04b51d81d13bd..cdcee76c3d0cf 100644
--- a/clang/test/Profile/branch-logical-mixed.cpp
+++ b/clang/test/Profile/branch-logical-mixed.cpp
@@ -23,44 +23,44 @@ bool func() {
   bool bf5 = false;
 
   bool a = bt0 &&
-           bf0 &&                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 10
-           bt1 &&                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 8
-           bf1 &&                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 6
-           bt2 &&                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 4
-           bf2;                     // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 2
+           bf0 && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 10
+           bt1 && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 8
+           bf1 && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 6
+           bt2 && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 4
+           bf2;   // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 2
 
   bool b = bt0 ||
-           bf0 ||                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 20
-           bt1 ||                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 18
-           bf1 ||                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 16
-           bt2 ||                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 14
-           bf2;                     // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 12
+           bf0 || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 20
+           bt1 || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 18
+           bf1 || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 16
+           bt2 || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 14
+           bf2;   // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 12
 
-  bool c = (bt0  &&
-            bf0) ||                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 27
-           (bt1  &&
-            bf1) ||                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 29
-           (bt2  &&
-            bf2) ||                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 31
-           (bt3  &&
-            bf3) ||                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 33
-           (bt4  &&
-            bf4) ||                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 35
-           (bf5  &&
-            bf5);                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 37
+  bool c = (bt0 &&
+            bf0) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 27
+           (bt1 &&
+            bf1) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 29
+           (bt2 &&
+            bf2) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 31
+           (bt3 &&
+            bf3) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 33
+           (bt4 &&
+            bf4) || // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 35
+           (bf5 &&
+            bf5); // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 37
 
-  bool d = (bt0  ||
-            bf0) &&                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 44
-           (bt1  ||
-            bf1) &&                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 46
-           (bt2  ||
-            bf2) &&                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 48
-           (bt3  ||
-            bf3) &&                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 50
-           (bt4  ||
-            bf4) &&                 // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 52
-           (bt5  ||
-            bf5);                   // CHECK: store {{.*}} @[[FUNC]], i64 0, i64 54
+  bool d = (bt0 ||
+            bf0) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 44
+           (bt1 ||
+            bf1) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 46
+           (bt2 ||
+            bf2) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 48
+           (bt3 ||
+            bf3) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 50
+           (bt4 ||
+            bf4) && // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 52
+           (bt5 ||
+            bf5); // CHECK: store {{.*}} @[[FUNC]], i32 0, i32 54
 
   return a && b && c && d;
 }

diff  --git a/clang/test/Profile/c-captured.c b/clang/test/Profile/c-captured.c
index bec10e9876020..f34f0cb8d4658 100644
--- a/clang/test/Profile/c-captured.c
+++ b/clang/test/Profile/c-captured.c
@@ -8,22 +8,22 @@
 // PGOGEN: @[[C1C:__profc_c_captured.c___captured_stmt.1]] = private global [3 x i64] zeroinitializer
 
 // PGOALL-LABEL: define{{.*}} void @debug_captured()
-// PGOGEN: store {{.*}} @[[DCC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[DCC]], i32 0, i32 0
 void debug_captured() {
   int x = 10;
 
-  // Check both debug_captured counters, so we can do this all in one pass
-  // PGOGEN: store {{.*}} @[[DCC]], i64 0, i64 1
-  // PGOUSE: br {{.*}} !prof ![[DC1:[0-9]+]]
-  // PGOGEN: store {{.*}} @[[DCC]], i64 0, i64 2
-  // PGOUSE: br {{.*}} !prof ![[DC2:[0-9]+]]
-  // PGOALL: ret
+// Check both debug_captured counters, so we can do this all in one pass
+// PGOGEN: store {{.*}} @[[DCC]], i32 0, i32 1
+// PGOUSE: br {{.*}} !prof ![[DC1:[0-9]+]]
+// PGOGEN: store {{.*}} @[[DCC]], i32 0, i32 2
+// PGOUSE: br {{.*}} !prof ![[DC2:[0-9]+]]
+// PGOALL: ret
 
-  // PGOALL-LABEL: define internal void @__captured_stmt(
-  // PGOGEN: store {{.*}} @[[CSC]], i64 0, i64 0
-  #pragma clang __debug captured
+// PGOALL-LABEL: define internal void @__captured_stmt(
+// PGOGEN: store {{.*}} @[[CSC]], i32 0, i32 0
+#pragma clang __debug captured
   {
-    // PGOGEN: store {{.*}} @[[CSC]], i64 0, i64 1
+    // PGOGEN: store {{.*}} @[[CSC]], i32 0, i32 1
     // PGOUSE: br {{.*}} !prof ![[CS1:[0-9]+]]
     if (x) {}
     // PGOALL: ret
@@ -31,14 +31,14 @@ void debug_captured() {
 
   if (x) {} // This is DC1. Checked above.
 
-  // PGOALL-LABEL: define internal void @__captured_stmt.1(
-  // PGOGEN: store {{.*}} @[[C1C]], i64 0, i64 0
-  #pragma clang __debug captured
+// PGOALL-LABEL: define internal void @__captured_stmt.1(
+// PGOGEN: store {{.*}} @[[C1C]], i32 0, i32 0
+#pragma clang __debug captured
   {
-    // PGOGEN: store {{.*}} @[[C1C]], i64 0, i64 1
+    // PGOGEN: store {{.*}} @[[C1C]], i32 0, i32 1
     // PGOUSE: br {{.*}} !prof ![[C11:[0-9]+]]
     for (int i = 0; i < x; ++i) {}
-    // PGOGEN: store {{.*}} @[[C1C]], i64 0, i64 2
+    // PGOGEN: store {{.*}} @[[C1C]], i32 0, i32 2
     // PGOUSE: br {{.*}} !prof ![[C12:[0-9]+]]
     if (x) {}
     // PGOALL: ret

diff  --git a/clang/test/Profile/c-general.c b/clang/test/Profile/c-general.c
index d77301d83cd58..91e5984272d0b 100644
--- a/clang/test/Profile/c-general.c
+++ b/clang/test/Profile/c-general.c
@@ -24,18 +24,18 @@
 
 // PGOGEN-LABEL: @simple_loops()
 // PGOUSE-LABEL: @simple_loops()
-// PGOGEN: store {{.*}} @[[SLC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[SLC]], i32 0, i32 0
 void simple_loops() {
   int i;
-  // PGOGEN: store {{.*}} @[[SLC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[SLC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[SL1:[0-9]+]]
   for (i = 0; i < 100; ++i) {
   }
-  // PGOGEN: store {{.*}} @[[SLC]], i64 0, i64 2
+  // PGOGEN: store {{.*}} @[[SLC]], i32 0, i32 2
   // PGOUSE: br {{.*}} !prof ![[SL2:[0-9]+]]
   while (i > 0)
     i--;
-  // PGOGEN: store {{.*}} @[[SLC]], i64 0, i64 3
+  // PGOGEN: store {{.*}} @[[SLC]], i32 0, i32 3
   // PGOUSE: br {{.*}} !prof ![[SL3:[0-9]+]]
   do {} while (i++ < 75);
 
@@ -45,37 +45,37 @@ void simple_loops() {
 
 // PGOGEN-LABEL: @conditionals()
 // PGOUSE-LABEL: @conditionals()
-// PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 0
 void conditionals() {
-  // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[IF1:[0-9]+]]
   for (int i = 0; i < 100; ++i) {
-    // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 2
+    // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 2
     // PGOUSE: br {{.*}} !prof ![[IF2:[0-9]+]]
     if (i % 2) {
-      // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 3
+      // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 3
       // PGOUSE: br {{.*}} !prof ![[IF3:[0-9]+]]
       if (i) {}
-    // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 4
-    // PGOUSE: br {{.*}} !prof ![[IF4:[0-9]+]]
+      // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 4
+      // PGOUSE: br {{.*}} !prof ![[IF4:[0-9]+]]
     } else if (i % 3) {
-      // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 5
+      // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 5
       // PGOUSE: br {{.*}} !prof ![[IF5:[0-9]+]]
       if (i) {}
     } else {
-      // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 6
+      // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 6
       // PGOUSE: br {{.*}} !prof ![[IF6:[0-9]+]]
       if (i) {}
     }
 
-    // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 8
-    // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 9
-    // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 7
+    // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 8
+    // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 9
+    // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 7
     // PGOUSE: br {{.*}} !prof ![[IF7:[0-9]+]]
     if (1 && i) {}
-    // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 11
-    // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 12
-    // PGOGEN: store {{.*}} @[[IFC]], i64 0, i64 10
+    // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 11
+    // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 12
+    // PGOGEN: store {{.*}} @[[IFC]], i32 0, i32 10
     // PGOUSE: br {{.*}} !prof ![[IF8:[0-9]+]]
     if (0 || i) {}
   }
@@ -86,35 +86,35 @@ void conditionals() {
 
 // PGOGEN-LABEL: @early_exits()
 // PGOUSE-LABEL: @early_exits()
-// PGOGEN: store {{.*}} @[[EEC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[EEC]], i32 0, i32 0
 void early_exits() {
   int i = 0;
 
-  // PGOGEN: store {{.*}} @[[EEC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[EEC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[EE1:[0-9]+]]
   if (i) {}
 
-  // PGOGEN: store {{.*}} @[[EEC]], i64 0, i64 2
+  // PGOGEN: store {{.*}} @[[EEC]], i32 0, i32 2
   // PGOUSE: br {{.*}} !prof ![[EE2:[0-9]+]]
   while (i < 100) {
     i++;
-    // PGOGEN: store {{.*}} @[[EEC]], i64 0, i64 3
+    // PGOGEN: store {{.*}} @[[EEC]], i32 0, i32 3
     // PGOUSE: br {{.*}} !prof ![[EE3:[0-9]+]]
     if (i > 50)
       break;
-    // PGOGEN: store {{.*}} @[[EEC]], i64 0, i64 4
+    // PGOGEN: store {{.*}} @[[EEC]], i32 0, i32 4
     // PGOUSE: br {{.*}} !prof ![[EE4:[0-9]+]]
     if (i % 2)
       continue;
   }
 
-  // PGOGEN: store {{.*}} @[[EEC]], i64 0, i64 5
+  // PGOGEN: store {{.*}} @[[EEC]], i32 0, i32 5
   // PGOUSE: br {{.*}} !prof ![[EE5:[0-9]+]]
   if (i) {}
 
-  // PGOGEN: store {{.*}} @[[EEC]], i64 0, i64 6
+  // PGOGEN: store {{.*}} @[[EEC]], i32 0, i32 6
   do {
-    // PGOGEN: store {{.*}} @[[EEC]], i64 0, i64 7
+    // PGOGEN: store {{.*}} @[[EEC]], i32 0, i32 7
     // PGOUSE: br {{.*}} !prof ![[EE6:[0-9]+]]
     if (i > 75)
       return;
@@ -123,7 +123,7 @@ void early_exits() {
   // PGOUSE: br {{.*}} !prof ![[EE7:[0-9]+]]
   } while (i < 100);
 
-  // PGOGEN: store {{.*}} @[[EEC]], i64 0, i64 8
+  // PGOGEN: store {{.*}} @[[EEC]], i32 0, i32 8
   // Never reached -> no weights
   if (i) {}
 
@@ -133,78 +133,78 @@ void early_exits() {
 
 // PGOGEN-LABEL: @jumps()
 // PGOUSE-LABEL: @jumps()
-// PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 0
 void jumps() {
   int i;
 
-  // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[JM1:[0-9]+]]
   for (i = 0; i < 2; ++i) {
     goto outofloop;
     // Never reached -> no weights
     if (i) {}
   }
-// PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 3
+// PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 3
 outofloop:
-  // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 4
+  // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 4
   // PGOUSE: br {{.*}} !prof ![[JM2:[0-9]+]]
   if (i) {}
 
   goto loop1;
 
-  // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 5
+  // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 5
   // PGOUSE: br {{.*}} !prof ![[JM3:[0-9]+]]
   while (i) {
-  // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 6
+  // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 6
   loop1:
-    // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 7
+    // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 7
     // PGOUSE: br {{.*}} !prof ![[JM4:[0-9]+]]
     if (i) {}
   }
 
   goto loop2;
-// PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 8
+// PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 8
 first:
-// PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 9
+// PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 9
 second:
-// PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 10
+// PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 10
 third:
   i++;
-  // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 11
+  // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 11
   // PGOUSE: br {{.*}} !prof ![[JM5:[0-9]+]]
   if (i < 3)
     goto loop2;
 
-  // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 12
+  // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 12
   // PGOUSE: br {{.*}} !prof ![[JM6:[0-9]+]]
   while (i < 3) {
-  // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 13
+  // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 13
   loop2:
     // PGOUSE: switch {{.*}} [
     // PGOUSE: ], !prof ![[JM7:[0-9]+]]
     switch (i) {
-    // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 15
+    // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 15
     case 0:
       goto first;
-    // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 16
+    // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 16
     case 1:
       goto second;
-    // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 17
+    // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 17
     case 2:
       goto third;
     }
-    // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 14
+    // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 14
   }
 
-  // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 18
+  // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 18
   // PGOUSE: br {{.*}} !prof ![[JM8:[0-9]+]]
   for (i = 0; i < 10; ++i) {
     goto withinloop;
     // never reached -> no weights
     if (i) {}
-  // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 20
+  // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 20
   withinloop:
-    // PGOGEN: store {{.*}} @[[JMC]], i64 0, i64 21
+    // PGOGEN: store {{.*}} @[[JMC]], i32 0, i32 21
     // PGOUSE: br {{.*}} !prof ![[JM9:[0-9]+]]
     if (i) {}
   }
@@ -215,70 +215,70 @@ void jumps() {
 
 // PGOGEN-LABEL: @switches()
 // PGOUSE-LABEL: @switches()
-// PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 0
 void switches() {
   static int weights[] = {1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5};
 
   // No cases -> no weights
   switch (weights[0]) {
-  // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 2
+  // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 2
   default:
     break;
   }
-  // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 1
 
-  // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 3
+  // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 3
   // PGOUSE: br {{.*}} !prof ![[SW1:[0-9]+]]
   for (int i = 0, len = sizeof(weights) / sizeof(weights[0]); i < len; ++i) {
     // PGOUSE: switch {{.*}} [
     // PGOUSE: ], !prof ![[SW2:[0-9]+]]
     switch (i[weights]) {
-    // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 5
+    // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 5
     case 1:
-      // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 6
+      // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 6
       // PGOUSE: br {{.*}} !prof ![[SW3:[0-9]+]]
       if (i) {}
       // fallthrough
-    // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 7
+    // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 7
     case 2:
-      // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 8
+      // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 8
       // PGOUSE: br {{.*}} !prof ![[SW4:[0-9]+]]
       if (i) {}
       break;
-    // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 9
+    // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 9
     case 3:
-      // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 10
+      // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 10
       // PGOUSE: br {{.*}} !prof ![[SW5:[0-9]+]]
       if (i) {}
       continue;
-    // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 11
+    // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 11
     case 4:
-      // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 12
+      // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 12
       // PGOUSE: br {{.*}} !prof ![[SW6:[0-9]+]]
       if (i) {}
       // PGOUSE: switch {{.*}} [
       // PGOUSE: ], !prof ![[SW7:[0-9]+]]
       switch (i) {
-      // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 14
+      // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 14
       case 6 ... 9:
-        // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 15
+        // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 15
         // PGOUSE: br {{.*}} !prof ![[SW8:[0-9]+]]
         if (i) {}
         continue;
       }
-      // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 13
+      // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 13
 
-    // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 16
+    // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 16
     default:
-      // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 17
+      // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 17
       // PGOUSE: br {{.*}} !prof ![[SW9:[0-9]+]]
       if (i == len - 1)
         return;
     }
-    // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 4
+    // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 4
   }
 
-  // PGOGEN: store {{.*}} @[[SWC]], i64 0, i64 18
+  // PGOGEN: store {{.*}} @[[SWC]], i32 0, i32 18
   // Never reached -> no weights
   if (weights[0]) {}
 
@@ -288,64 +288,64 @@ void switches() {
 
 // PGOGEN-LABEL: @big_switch()
 // PGOUSE-LABEL: @big_switch()
-// PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 0
 void big_switch() {
-  // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[BS1:[0-9]+]]
   for (int i = 0; i < 32; ++i) {
     // PGOUSE: switch {{.*}} [
     // PGOUSE: ], !prof ![[BS2:[0-9]+]]
     switch (1 << i) {
-    // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 3
+    // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 3
     case (1 << 0):
-      // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 4
+      // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 4
       // PGOUSE: br {{.*}} !prof ![[BS3:[0-9]+]]
       if (i) {}
       // fallthrough
-    // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 5
+    // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 5
     case (1 << 1):
-      // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 6
+      // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 6
       // PGOUSE: br {{.*}} !prof ![[BS4:[0-9]+]]
       if (i) {}
       break;
-    // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 7
+    // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 7
     case (1 << 2) ... (1 << 12):
-      // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 8
+      // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 8
       // PGOUSE: br {{.*}} !prof ![[BS5:[0-9]+]]
       if (i) {}
       break;
     // The branch for the large case range above appears after the case body
     // PGOUSE: br {{.*}} !prof ![[BS6:[0-9]+]]
 
-    // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 9
+    // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 9
     case (1 << 13):
-      // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 10
+      // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 10
       // PGOUSE: br {{.*}} !prof ![[BS7:[0-9]+]]
       if (i) {}
       break;
-    // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 11
+    // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 11
     case (1 << 14) ... (1 << 28):
-      // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 12
+      // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 12
       // PGOUSE: br {{.*}} !prof ![[BS8:[0-9]+]]
       if (i) {}
       break;
     // The branch for the large case range above appears after the case body
     // PGOUSE: br {{.*}} !prof ![[BS9:[0-9]+]]
 
-    // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 13
+    // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 13
     case (1 << 29) ... ((1 << 29) + 1):
-      // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 14
+      // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 14
       // PGOUSE: br {{.*}} !prof ![[BS10:[0-9]+]]
       if (i) {}
       break;
-    // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 15
+    // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 15
     default:
-      // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 16
+      // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 16
       // PGOUSE: br {{.*}} !prof ![[BS11:[0-9]+]]
       if (i) {}
       break;
     }
-    // PGOGEN: store {{.*}} @[[BSC]], i64 0, i64 2
+    // PGOGEN: store {{.*}} @[[BSC]], i32 0, i32 2
   }
 
   // PGOGEN-NOT: store {{.*}} @[[BSC]],
@@ -355,34 +355,34 @@ void big_switch() {
 
 // PGOGEN-LABEL: @boolean_operators()
 // PGOUSE-LABEL: @boolean_operators()
-// PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 0
 void boolean_operators() {
   int v;
-  // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[BO1:[0-9]+]]
   for (int i = 0; i < 100; ++i) {
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 2
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 3
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 2
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 3
     // PGOUSE: br {{.*}} !prof ![[BO2:[0-9]+]]
     v = i % 3 || i;
 
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 4
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 5
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 4
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 5
     // PGOUSE: br {{.*}} !prof ![[BO3:[0-9]+]]
     v = i % 3 && i;
 
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 8
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 9
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 6
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 7
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 8
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 9
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 6
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 7
     // PGOUSE: br {{.*}} !prof ![[BO4:[0-9]+]]
     // PGOUSE: br {{.*}} !prof ![[BO5:[0-9]+]]
     v = i % 3 || i % 2 || i;
 
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 12
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 13
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 10
-    // PGOGEN: store {{.*}} @[[BOC]], i64 0, i64 11
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 12
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 13
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 10
+    // PGOGEN: store {{.*}} @[[BOC]], i32 0, i32 11
     // PGOUSE: br {{.*}} !prof ![[BO6:[0-9]+]]
     // PGOUSE: br {{.*}} !prof ![[BO7:[0-9]+]]
     v = i % 2 && i % 3 && i;
@@ -394,36 +394,36 @@ void boolean_operators() {
 
 // PGOGEN-LABEL: @boolop_loops()
 // PGOUSE-LABEL: @boolop_loops()
-// PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 0
 void boolop_loops() {
   int i = 100;
 
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 2
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 3
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 2
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 3
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[BL1:[0-9]+]]
   // PGOUSE: br {{.*}} !prof ![[BL2:[0-9]+]]
   while (i && i > 50)
     i--;
 
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 5
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 6
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 4
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 5
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 6
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 4
   // PGOUSE: br {{.*}} !prof ![[BL3:[0-9]+]]
   // PGOUSE: br {{.*}} !prof ![[BL4:[0-9]+]]
   while ((i % 2) || (i > 0))
     i--;
 
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 8
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 9
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 7
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 8
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 9
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 7
   // PGOUSE: br {{.*}} !prof ![[BL5:[0-9]+]]
   // PGOUSE: br {{.*}} !prof ![[BL6:[0-9]+]]
   for (i = 100; i && i > 50; --i);
 
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 11
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 12
-  // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 10
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 11
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 12
+  // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 10
   // PGOUSE: br {{.*}} !prof ![[BL7:[0-9]+]]
   // PGOUSE: br {{.*}} !prof ![[BL8:[0-9]+]]
   for (; (i % 2) || (i > 0); --i);
@@ -434,15 +434,15 @@ void boolop_loops() {
 
 // PGOGEN-LABEL: @conditional_operator()
 // PGOUSE-LABEL: @conditional_operator()
-// PGOGEN: store {{.*}} @[[COC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[COC]], i32 0, i32 0
 void conditional_operator() {
   int i = 100;
 
-  // PGOGEN: store {{.*}} @[[COC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[COC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[CO1:[0-9]+]]
   int j = i < 50 ? i : 1;
 
-  // PGOGEN: store {{.*}} @[[COC]], i64 0, i64 2
+  // PGOGEN: store {{.*}} @[[COC]], i32 0, i32 2
   // PGOUSE: br {{.*}} !prof ![[CO2:[0-9]+]]
   int k = i ?: 0;
 
@@ -452,18 +452,18 @@ void conditional_operator() {
 
 // PGOGEN-LABEL: @do_fallthrough()
 // PGOUSE-LABEL: @do_fallthrough()
-// PGOGEN: store {{.*}} @[[DFC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[DFC]], i32 0, i32 0
 void do_fallthrough() {
-  // PGOGEN: store {{.*}} @[[DFC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[DFC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[DF1:[0-9]+]]
   for (int i = 0; i < 10; ++i) {
     int j = 0;
-    // PGOGEN: store {{.*}} @[[DFC]], i64 0, i64 2
+    // PGOGEN: store {{.*}} @[[DFC]], i32 0, i32 2
     do {
       // The number of exits out of this do-loop via the break statement
       // exceeds the counter value for the loop (which does not include the
       // fallthrough count). Make sure that does not violate any assertions.
-      // PGOGEN: store {{.*}} @[[DFC]], i64 0, i64 3
+      // PGOGEN: store {{.*}} @[[DFC]], i32 0, i32 3
       // PGOUSE: br {{.*}} !prof ![[DF3:[0-9]+]]
       if (i < 8) break;
       j++;
@@ -474,9 +474,9 @@ void do_fallthrough() {
 
 // PGOGEN-LABEL: @static_func()
 // PGOUSE-LABEL: @static_func()
-// PGOGEN: store {{.*}} @[[STC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[STC]], i32 0, i32 0
 static void static_func() {
-  // PGOGEN: store {{.*}} @[[STC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[STC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[ST1:[0-9]+]]
   for (int i = 0; i < 10; ++i) {
   }

diff  --git a/clang/test/Profile/c-ternary.c b/clang/test/Profile/c-ternary.c
index 7d41b0405e55a..c1560bef4e5f4 100644
--- a/clang/test/Profile/c-ternary.c
+++ b/clang/test/Profile/c-ternary.c
@@ -5,11 +5,11 @@
 // condition when the condition evaluates to true.
 // CHECK-LABEL: define{{.*}} i32 @f1
 int f1(int x) {
-// CHECK: [[TOBOOL:%.*]] = icmp ne i32 %{{.*}}, 0
-// CHECK-NEXT: [[STEP:%.*]] = zext i1 [[TOBOOL]] to i64
-// CHECK-NEXT: [[COUNTER:%.*]] = load i64, i64* getelementptr inbounds ([2 x i64], [2 x i64]* @__profc_f1, i64 0, i64 1)
-// CHECK-NEXT: add i64 [[COUNTER]], [[STEP]]
-// CHECK: [[COND:%.*]] = select i1 [[TOBOOL]], i32 0, i32 1
+  // CHECK: [[TOBOOL:%.*]] = icmp ne i32 %{{.*}}, 0
+  // CHECK-NEXT: [[STEP:%.*]] = zext i1 [[TOBOOL]] to i64
+  // CHECK-NEXT: [[COUNTER:%.*]] = load i64, i64* getelementptr inbounds ([2 x i64], [2 x i64]* @__profc_f1, i32 0, i32 1)
+  // CHECK-NEXT: add i64 [[COUNTER]], [[STEP]]
+  // CHECK: [[COND:%.*]] = select i1 [[TOBOOL]], i32 0, i32 1
   return x ? 0 : 1;
 // CHECK: ret i32 [[COND]]
 }

diff  --git a/clang/test/Profile/cxx-class.cpp b/clang/test/Profile/cxx-class.cpp
index ab90d195cdc6c..9fc2e24ebdd27 100644
--- a/clang/test/Profile/cxx-class.cpp
+++ b/clang/test/Profile/cxx-class.cpp
@@ -22,9 +22,9 @@ class Simple {
   int Member;
   // CTRGEN-LABEL: define {{.*}} @_ZN6SimpleC2Ei(
   // CTRUSE-LABEL: define {{.*}} @_ZN6SimpleC2Ei(
-  // CTRGEN: store {{.*}} @[[SCC:__profc__ZN6SimpleC2Ei]], i64 0, i64 0
+  // CTRGEN: store {{.*}} @[[SCC:__profc__ZN6SimpleC2Ei]], i32 0, i32 0
   explicit Simple(int Member) : Member(Member) {
-    // CTRGEN: store {{.*}} @[[SCC]], i64 0, i64 1
+    // CTRGEN: store {{.*}} @[[SCC]], i32 0, i32 1
     // CTRUSE: br {{.*}} !prof ![[SC1:[0-9]+]]
     if (Member) {}
     // CTRGEN-NOT: store {{.*}} @[[SCC]],
@@ -35,9 +35,9 @@ class Simple {
 
   // DTRGEN-LABEL: define {{.*}} @_ZN6SimpleD2Ev(
   // DTRUSE-LABEL: define {{.*}} @_ZN6SimpleD2Ev(
-  // DTRGEN: store {{.*}} @[[SDC:__profc__ZN6SimpleD2Ev]], i64 0, i64 0
+  // DTRGEN: store {{.*}} @[[SDC:__profc__ZN6SimpleD2Ev]], i32 0, i32 0
   ~Simple() {
-    // DTRGEN: store {{.*}} @[[SDC]], i64 0, i64 1
+    // DTRGEN: store {{.*}} @[[SDC]], i32 0, i32 1
     // DTRUSE: br {{.*}} !prof ![[SD1:[0-9]+]]
     if (Member) {}
     // DTRGEN-NOT: store {{.*}} @[[SDC]],
@@ -48,9 +48,9 @@ class Simple {
 
   // MTHGEN-LABEL: define {{.*}} @_ZN6Simple6methodEv(
   // MTHUSE-LABEL: define {{.*}} @_ZN6Simple6methodEv(
-  // MTHGEN: store {{.*}} @[[SMC:__profc__ZN6Simple6methodEv]], i64 0, i64 0
+  // MTHGEN: store {{.*}} @[[SMC:__profc__ZN6Simple6methodEv]], i32 0, i32 0
   void method() {
-    // MTHGEN: store {{.*}} @[[SMC]], i64 0, i64 1
+    // MTHGEN: store {{.*}} @[[SMC]], i32 0, i32 1
     // MTHUSE: br {{.*}} !prof ![[SM1:[0-9]+]]
     if (Member) {}
     // MTHGEN-NOT: store {{.*}} @[[SMC]],
@@ -64,9 +64,9 @@ class Derived : virtual public Simple {
 public:
   // VCTRGEN-LABEL: define {{.*}} @_ZN7DerivedC1Ev(
   // VCTRUSE-LABEL: define {{.*}} @_ZN7DerivedC1Ev(
-  // VCTRGEN: store {{.*}} @[[SCC:__profc__ZN7DerivedC1Ev]], i64 0, i64 0
+  // VCTRGEN: store {{.*}} @[[SCC:__profc__ZN7DerivedC1Ev]], i32 0, i32 0
   Derived() : Simple(0) {
-    // VCTRGEN: store {{.*}} @[[SCC]], i64 0, i64 1
+    // VCTRGEN: store {{.*}} @[[SCC]], i32 0, i32 1
     // VCTRUSE: br {{.*}} !prof ![[SC1:[0-9]+]]
     if (Member) {}
     // VCTRGEN-NOT: store {{.*}} @[[SCC]],
@@ -77,9 +77,9 @@ class Derived : virtual public Simple {
 
   // VDTRGEN-LABEL: define {{.*}} @_ZN7DerivedD2Ev(
   // VDTRUSE-LABEL: define {{.*}} @_ZN7DerivedD2Ev(
-  // VDTRGEN: store {{.*}} @[[SDC:__profc__ZN7DerivedD2Ev]], i64 0, i64 0
+  // VDTRGEN: store {{.*}} @[[SDC:__profc__ZN7DerivedD2Ev]], i32 0, i32 0
   ~Derived() {
-    // VDTRGEN: store {{.*}} @[[SDC]], i64 0, i64 1
+    // VDTRGEN: store {{.*}} @[[SDC]], i32 0, i32 1
     // VDTRUSE: br {{.*}} !prof ![[SD1:[0-9]+]]
     if (Member) {}
     // VDTRGEN-NOT: store {{.*}} @[[SDC]],
@@ -91,9 +91,9 @@ class Derived : virtual public Simple {
 
 // WRPGEN-LABEL: define {{.*}} @_Z14simple_wrapperv(
 // WRPUSE-LABEL: define {{.*}} @_Z14simple_wrapperv(
-// WRPGEN: store {{.*}} @[[SWC:__profc__Z14simple_wrapperv]], i64 0, i64 0
+// WRPGEN: store {{.*}} @[[SWC:__profc__Z14simple_wrapperv]], i32 0, i32 0
 void simple_wrapper() {
-  // WRPGEN: store {{.*}} @[[SWC]], i64 0, i64 1
+  // WRPGEN: store {{.*}} @[[SWC]], i32 0, i32 1
   // WRPUSE: br {{.*}} !prof ![[SW1:[0-9]+]]
   for (int I = 0; I < 100; ++I) {
     Derived d;

diff  --git a/clang/test/Profile/cxx-lambda.cpp b/clang/test/Profile/cxx-lambda.cpp
index 4512f23e0849a..26d5474b9996c 100644
--- a/clang/test/Profile/cxx-lambda.cpp
+++ b/clang/test/Profile/cxx-lambda.cpp
@@ -15,32 +15,33 @@
 
 // PGOGEN-LABEL: define {{.*}}void @_Z7lambdasv()
 // PGOUSE-LABEL: define {{.*}}void @_Z7lambdasv()
-// PGOGEN: store {{.*}} @[[LWC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[LWC]], i32 0, i32 0
 void lambdas() {
   int i = 1;
 
   // LMBGEN-LABEL: define internal{{( [0-9_a-z]*cc)?( zeroext)?}} i1 @"_ZZ7lambdasvENK3$_0clEi"(
   // LMBUSE-LABEL: define internal{{( [0-9_a-z]*cc)?( zeroext)?}} i1 @"_ZZ7lambdasvENK3$_0clEi"(
-  // LMBGEN: store {{.*}} @[[LFC]], i64 0, i64 0
+  // LMBGEN: store {{.*}} @[[LFC]], i32 0, i32 0
   auto f = [&i](int k) {
-    // LMBGEN: store {{.*}} @[[LFC]], i64 0, i64 1
+    // LMBGEN: store {{.*}} @[[LFC]], i32 0, i32 1
     // LMBUSE: br {{.*}} !prof ![[LF1:[0-9]+]]
-    if (i > 0) {}
-    // LMBGEN: store {{.*}} @[[LFC]], i64 0, i64 2
+    if (i > 0) {
+    }
+    // LMBGEN: store {{.*}} @[[LFC]], i32 0, i32 2
     // LMBUSE: br {{.*}} !prof ![[LF2:[0-9]+]]
     return k && i;
   };
 
-  // PGOGEN: store {{.*}} @[[LWC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[LWC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[LW1:[0-9]+]]
   if (i) {}
 
-  // PGOGEN: store {{.*}} @[[LWC]], i64 0, i64 2
+  // PGOGEN: store {{.*}} @[[LWC]], i32 0, i32 2
   // PGOUSE: br {{.*}} !prof ![[LW2:[0-9]+]]
   for (i = 0; i < 10; ++i)
     f(9 - i);
 
-  // PGOGEN: store {{.*}} @[[LWC]], i64 0, i64 3
+  // PGOGEN: store {{.*}} @[[LWC]], i32 0, i32 3
   // PGOUSE: br {{.*}} !prof ![[LW3:[0-9]+]]
   if (i) {}
 }

diff  --git a/clang/test/Profile/cxx-rangefor.cpp b/clang/test/Profile/cxx-rangefor.cpp
index 1d2f7f470cfec..4f463ce8a031e 100644
--- a/clang/test/Profile/cxx-rangefor.cpp
+++ b/clang/test/Profile/cxx-rangefor.cpp
@@ -10,25 +10,25 @@
 // PGOGEN: @[[RFC:__profc__Z9range_forv]] = {{(private|internal)}} global [5 x i64] zeroinitializer
 
 // CHECK-LABEL: define {{.*}}void @_Z9range_forv()
-// PGOGEN: store {{.*}} @[[RFC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[RFC]], i32 0, i32 0
 void range_for() {
   int arr[] = {1, 2, 3, 4, 5};
   int sum = 0;
-  // PGOGEN: store {{.*}} @[[RFC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[RFC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[RF1:[0-9]+]]
   for (auto i : arr) {
-    // PGOGEN: store {{.*}} @[[RFC]], i64 0, i64 2
+    // PGOGEN: store {{.*}} @[[RFC]], i32 0, i32 2
     // PGOUSE: br {{.*}} !prof ![[RF2:[0-9]+]]
     if (i == 3)
       continue;
     sum += i;
-    // PGOGEN: store {{.*}} @[[RFC]], i64 0, i64 3
+    // PGOGEN: store {{.*}} @[[RFC]], i32 0, i32 3
     // PGOUSE: br {{.*}} !prof ![[RF3:[0-9]+]]
     if (sum >= 7)
       break;
   }
 
-  // PGOGEN: store {{.*}} @[[RFC]], i64 0, i64 4
+  // PGOGEN: store {{.*}} @[[RFC]], i32 0, i32 4
   // PGOUSE: br {{.*}} !prof ![[RF4:[0-9]+]]
   if (sum) {}
 }

diff  --git a/clang/test/Profile/cxx-stmt-initializers.cpp b/clang/test/Profile/cxx-stmt-initializers.cpp
index 6ff4d6eda1721..6baa44ba63564 100644
--- a/clang/test/Profile/cxx-stmt-initializers.cpp
+++ b/clang/test/Profile/cxx-stmt-initializers.cpp
@@ -10,20 +10,20 @@
 // switch initializer, and the switch successor block.
 //
 // CHECK-LABEL: define {{.*}}void @_Z11switch_initv()
-// PGOGEN: store {{.*}} @[[SIC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[SIC]], i32 0, i32 0
 void switch_init() {
   switch (int i = true ? 0 : 1; i) {}
-  // PGOGEN: store {{.*}} @[[SIC]], i64 0, i64 2
-  // PGOGEN: store {{.*}} @[[SIC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[SIC]], i32 0, i32 2
+  // PGOGEN: store {{.*}} @[[SIC]], i32 0, i32 1
 }
 
 // Note: We expect counters for the function entry block, the condition in the
 // if initializer, and the if successor block.
 //
 // CHECK-LABEL: define {{.*}}void @_Z7if_initv()
-// PGOGEN: store {{.*}} @[[IIC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[IIC]], i32 0, i32 0
 void if_init() {
   if (int i = true ? 0 : 1; i) {}
-  // PGOGEN: store {{.*}} @[[IIC]], i64 0, i64 2
-  // PGOGEN: store {{.*}} @[[IIC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[IIC]], i32 0, i32 2
+  // PGOGEN: store {{.*}} @[[IIC]], i32 0, i32 1
 }

diff  --git a/clang/test/Profile/cxx-templates.cpp b/clang/test/Profile/cxx-templates.cpp
index 9f8c5a0bcf593..32073768266df 100644
--- a/clang/test/Profile/cxx-templates.cpp
+++ b/clang/test/Profile/cxx-templates.cpp
@@ -21,13 +21,13 @@
 // T100USE-LABEL: define linkonce_odr {{.*}}void @_Z4loopILj100EEvv()
 template <unsigned N> void loop() {
   // ALL-NOT: ret
-  // T0GEN: store {{.*}} @[[T0C]], i64 0, i64 0
-  // T100GEN: store {{.*}} @[[T100C]], i64 0, i64 0
+  // T0GEN: store {{.*}} @[[T0C]], i32 0, i32 0
+  // T100GEN: store {{.*}} @[[T100C]], i32 0, i32 0
 
   // ALL-NOT: ret
-  // T0GEN: store {{.*}} @[[T0C]], i64 0, i64 1
+  // T0GEN: store {{.*}} @[[T0C]], i32 0, i32 1
   // T0USE: br {{.*}} !prof ![[T01:[0-9]+]]
-  // T100GEN: store {{.*}} @[[T100C]], i64 0, i64 1
+  // T100GEN: store {{.*}} @[[T100C]], i32 0, i32 1
   // T100USE: br {{.*}} !prof ![[T1001:[0-9]+]]
   for (unsigned I = 0; I < N; ++I) {}
 

diff  --git a/clang/test/Profile/cxx-throws.cpp b/clang/test/Profile/cxx-throws.cpp
index f6c0f52b67a1f..a646cbb294d07 100644
--- a/clang/test/Profile/cxx-throws.cpp
+++ b/clang/test/Profile/cxx-throws.cpp
@@ -16,16 +16,16 @@
 
 // PGOGEN-LABEL: @_Z6throwsv()
 // PGOUSE-LABEL: @_Z6throwsv()
-// PGOGEN: store {{.*}} @[[THC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[THC]], i32 0, i32 0
 void throws() {
-  // PGOGEN: store {{.*}} @[[THC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[THC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[TH1:[0-9]+]]
   for (int i = 0; i < 100; ++i) {
     try {
-      // PGOGEN: store {{.*}} @[[THC]], i64 0, i64 3
+      // PGOGEN: store {{.*}} @[[THC]], i32 0, i32 3
       // PGOUSE: br {{.*}} !prof ![[TH2:[0-9]+]]
       if (i % 3) {
-        // PGOGEN: store {{.*}} @[[THC]], i64 0, i64 4
+        // PGOGEN: store {{.*}} @[[THC]], i32 0, i32 4
         // PGOUSE: br {{.*}} !prof ![[TH3:[0-9]+]]
         if (i < 50)
           throw 1;
@@ -36,7 +36,7 @@ void throws() {
         // PGOUSE: if.else{{.*}}:
         // PGOGEN: if.else{{.*}}:
 
-        // PGOGEN: store {{.*}} @[[THC]], i64 0, i64 5
+        // PGOGEN: store {{.*}} @[[THC]], i32 0, i32 5
         // PGOUSE: br {{.*}} !prof ![[TH4:[0-9]+]]
         if (i >= 50)
           throw 0;
@@ -45,14 +45,14 @@ void throws() {
       // PGOUSE-EXC: catch{{.*}}:
       // PGOGEN-EXC: catch{{.*}}:
 
-      // PGOGEN-EXC: store {{.*}} @[[THC]], i64 0, i64 6
-      // PGOGEN-EXC: store {{.*}} @[[THC]], i64 0, i64 7
+      // PGOGEN-EXC: store {{.*}} @[[THC]], i32 0, i32 6
+      // PGOGEN-EXC: store {{.*}} @[[THC]], i32 0, i32 7
       // PGOUSE-EXC: br {{.*}} !prof ![[TH5:[0-9]+]]
       if (e) {}
     }
-    // PGOGEN: store {{.*}} @[[THC]], i64 0, i64 2
+    // PGOGEN: store {{.*}} @[[THC]], i32 0, i32 2
 
-    // PGOGEN: store {{.*}} @[[THC]], i64 0, i64 8
+    // PGOGEN: store {{.*}} @[[THC]], i32 0, i32 8
     // PGOUSE: br {{.*}} !prof ![[TH6:[0-9]+]]
     if (i < 100) {}
   }
@@ -63,14 +63,14 @@ void throws() {
 
 // PGOGEN-LABEL: @_Z11unreachablei(i32
 // PGOUSE-LABEL: @_Z11unreachablei(i32
-// PGOGEN: store {{.*}} @[[UNC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[UNC]], i32 0, i32 0
 void unreachable(int i) {
-  // PGOGEN: store {{.*}} @[[UNC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[UNC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[UN1:[0-9]+]]
   if (i)
     throw i;
 
-  // PGOGEN: store {{.*}} @[[UNC]], i64 0, i64 2
+  // PGOGEN: store {{.*}} @[[UNC]], i32 0, i32 2
   // Since we never reach here, the weights should all be zero (and skipped)
   // PGOUSE-NOT: br {{.*}} !prof !{{.*}}
   if (i) {}

diff  --git a/clang/test/Profile/objc-general.m b/clang/test/Profile/objc-general.m
index 7a4cac9412056..b043363ec5d90 100644
--- a/clang/test/Profile/objc-general.m
+++ b/clang/test/Profile/objc-general.m
@@ -44,23 +44,25 @@ + (void)foreach: (NSArray *)array;
 @implementation A
 // PGOGEN: define {{.*}}+[A foreach:]
 // PGOUSE: define {{.*}}+[A foreach:]
-// PGOGEN: store {{.*}} @[[FRC]], i64 0, i64 0
+// PGOGEN: store {{.*}} @[[FRC]], i32 0, i32 0
 + (void)foreach: (NSArray *)array
 {
   __block id result;
-  // PGOGEN: store {{.*}} @[[FRC]], i64 0, i64 1
+  // PGOGEN: store {{.*}} @[[FRC]], i32 0, i32 1
   // PGOUSE: br {{.*}} !prof ![[FR1:[0-9]+]]
   // PGOUSE: br {{.*}} !prof ![[FR2:[0-9]+]]
   for (id x in array) {
     // PGOGEN: define {{.*}}_block_invoke
     // PGOUSE: define {{.*}}_block_invoke
-    // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 0
-    ^{ static int init = 0;
-      // PGOGEN: store {{.*}} @[[BLC]], i64 0, i64 1
+    // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 0
+    ^{
+      static int init = 0;
+      // PGOGEN: store {{.*}} @[[BLC]], i32 0, i32 1
       // PGOUSE: br {{.*}} !prof ![[BL1:[0-9]+]]
-       if (init)
-         result = x;
-       init = 1; }();
+      if (init)
+        result = x;
+      init = 1;
+    }();
   }
 }
 @end

diff  --git a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
index ad21fec269ece..36a66e0963829 100644
--- a/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
+++ b/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
@@ -692,7 +692,7 @@ void InstrProfiling::lowerIncrement(InstrProfIncrementInst *Inc) {
 
   IRBuilder<> Builder(Inc);
   uint64_t Index = Inc->getIndex()->getZExtValue();
-  Value *Addr = Builder.CreateConstInBoundsGEP2_64(Counters->getValueType(),
+  Value *Addr = Builder.CreateConstInBoundsGEP2_32(Counters->getValueType(),
                                                    Counters, 0, Index);
 
   if (isRuntimeCounterRelocationEnabled()) {

diff  --git a/llvm/test/Instrumentation/InstrProfiling/atomic-updates.ll b/llvm/test/Instrumentation/InstrProfiling/atomic-updates.ll
index 691a116990261..d123f6b9818d8 100644
--- a/llvm/test/Instrumentation/InstrProfiling/atomic-updates.ll
+++ b/llvm/test/Instrumentation/InstrProfiling/atomic-updates.ll
@@ -5,7 +5,7 @@ target triple = "x86_64-apple-macosx10.10.0"
 @__profn_foo = private constant [3 x i8] c"foo"
 
 ; CHECK-LABEL: define void @foo
-; CHECK-NEXT: atomicrmw add i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_foo, i64 0, i64 0), i64 1 monotonic
+; CHECK-NEXT: atomicrmw add i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_foo, i32 0, i32 0), i64 1 monotonic
 define void @foo() {
   call void @llvm.instrprof.increment(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @__profn_foo, i32 0, i32 0), i64 0, i32 1, i32 0)
   ret void

diff  --git a/llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll b/llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll
index cd5d36b8a6e3e..e5e9b7dad934d 100644
--- a/llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll
+++ b/llvm/test/Instrumentation/InstrProfiling/runtime-counter-relocation.ll
@@ -8,9 +8,9 @@ target triple = "x86_64-unknown-linux-gnu"
 ; RELOC: @__llvm_profile_counter_bias = linkonce_odr hidden global i64 0, comdat
 
 ; CHECK-LABEL: define void @foo
-; CHECK-NEXT: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_foo, i64 0, i64 0)
+; CHECK-NEXT: %pgocount = load i64, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_foo, i32 0, i32 0)
 ; CHECK-NEXT: %1 = add i64 %pgocount, 1
-; CHECK-NEXT: store i64 %1, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_foo, i64 0, i64 0)
+; CHECK-NEXT: store i64 %1, i64* getelementptr inbounds ([1 x i64], [1 x i64]* @__profc_foo, i32 0, i32 0)
 ; RELOC-LABEL: define void @foo
 ; RELOC-NEXT: %1 = load i64, i64* @__llvm_profile_counter_bias
 ; RELOC-NEXT: %2 = add i64 ptrtoint ([1 x i64]* @__profc_foo to i64), %1

diff  --git a/llvm/test/Transforms/PGOProfile/counter_promo_exit_catchswitch.ll b/llvm/test/Transforms/PGOProfile/counter_promo_exit_catchswitch.ll
index dc7a166e18ada..dc84b4f02ea5c 100644
--- a/llvm/test/Transforms/PGOProfile/counter_promo_exit_catchswitch.ll
+++ b/llvm/test/Transforms/PGOProfile/counter_promo_exit_catchswitch.ll
@@ -38,11 +38,11 @@ for.cond:                                         ; preds = %for.inc, %entry
 
 for.body:                                         ; preds = %for.cond
 ; CHECK: for.body:
-; NOTENTRY: %pgocount1 = load i64, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i64 0, i64 0)
-; TENTRY: %pgocount1 = load i64, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i64 0, i64 1)
+; NOTENTRY: %pgocount1 = load i64, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i32 0, i32 0)
+; TENTRY: %pgocount1 = load i64, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i32 0, i32 1)
 ; CHECK: %1 = add i64 %pgocount1, 1
-; NOTENTRY: store i64 %1, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i64 0, i64 0)
-; ENTRY: store i64 %1, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i64 0, i64 1)
+; NOTENTRY: store i64 %1, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i32 0, i32 0)
+; ENTRY: store i64 %1, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i32 0, i32 1)
   %idxprom = zext i32 %i.0 to i64
   %arrayidx = getelementptr inbounds [200 x i8], [200 x i8]* @"?buffer@@3PADA", i64 0, i64 %idxprom
   %0 = load i8, i8* %arrayidx, align 1
@@ -55,11 +55,11 @@ if.end:                                           ; preds = %for.body
 
 for.inc:                                          ; preds = %if.end
 ; CHECK: for.inc:
-; NOTENTRY: %pgocount2 = load i64, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i64 0, i64 1)
-; ENTRY: %pgocount2 = load i64, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i64 0, i64 2)
+; NOTENTRY: %pgocount2 = load i64, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i32 0, i32 1)
+; ENTRY: %pgocount2 = load i64, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i32 0, i32 2)
 ; CHECK: %3 = add i64 %pgocount2, 1
-; NOTENTRY: store i64 %3, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i64 0, i64 1)
-; ENTRY: store i64 %3, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i64 0, i64 2)
+; NOTENTRY: store i64 %3, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i32 0, i32 1)
+; ENTRY: store i64 %3, i64* getelementptr inbounds ([3 x i64], [3 x i64]* @"__profc_?run@@YAXH at Z", i32 0, i32 2)
   %inc = add nuw nsw i32 %i.0, 1
   br label %for.cond
 

diff  --git a/llvm/test/Transforms/PGOProfile/instr_entry_bb.ll b/llvm/test/Transforms/PGOProfile/instr_entry_bb.ll
index 80e30a3c576a6..34586e651ca24 100644
--- a/llvm/test/Transforms/PGOProfile/instr_entry_bb.ll
+++ b/llvm/test/Transforms/PGOProfile/instr_entry_bb.ll
@@ -18,7 +18,7 @@ entry:
 ; GEN: entry:
 ; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__profn_test_br_2, i32 0, i32 0), i64 {{[0-9]+}}, i32 2, i32 0)
 ; GENA: entry:
-; GENA: %{{[0-9+]}} = atomicrmw add i64* getelementptr inbounds ([2 x i64], [2 x i64]* @__profc_test_br_2, i64 0, i64 0), i64 1 monotonic
+; GENA: %{{[0-9+]}} = atomicrmw add i64* getelementptr inbounds ([2 x i64], [2 x i64]* @__profc_test_br_2, i32 0, i32 0), i64 1 monotonic
 ; USE: br i1 %cmp, label %if.then, label %if.else
 ; USE-SAME: !prof ![[BW_ENTRY:[0-9]+]]
 ; USE: ![[BW_ENTRY]] = !{!"branch_weights", i32 0, i32 1}
@@ -35,9 +35,9 @@ if.else:
 ; GEN: if.else:
 ; GEN: call void @llvm.instrprof.increment(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @__profn_test_br_2, i32 0, i32 0), i64 {{[0-9]+}}, i32 2, i32 1)
 ; GENA: if.else:
-; GENA:  %pgocount = load i64, i64* getelementptr inbounds ([2 x i64], [2 x i64]* @__profc_test_br_2, i64 0, i64 1), align 8
+; GENA:  %pgocount = load i64, i64* getelementptr inbounds ([2 x i64], [2 x i64]* @__profc_test_br_2, i32 0, i32 1), align 8
 ; GENA:  [[V:%[0-9]*]] = add i64 %pgocount, 1
-; GENA:  store i64 [[V]], i64* getelementptr inbounds ([2 x i64], [2 x i64]* @__profc_test_br_2, i64 0, i64 1), align 8
+; GENA:  store i64 [[V]], i64* getelementptr inbounds ([2 x i64], [2 x i64]* @__profc_test_br_2, i32 0, i32 1), align 8
   %sub = sub nsw i32 %i, 2
   br label %if.end
 


        


More information about the cfe-commits mailing list