[llvm] [InstrProfiling] Generate test checks (NFC) (PR #226409)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 25 02:18:20 PDT 2026


https://github.com/nikic created https://github.com/llvm/llvm-project/pull/226409

None

>From e7f884db35f7c334ff7b103149c9526b2ec62e94 Mon Sep 17 00:00:00 2001
From: Nikita Popov <npopov at redhat.com>
Date: Fri, 25 Sep 2026 11:17:45 +0200
Subject: [PATCH] [InstrProfiling] Generate test checks (NFC)

---
 .../conditional-counter-updates.ll            | 84 +++++++++++--------
 1 file changed, 51 insertions(+), 33 deletions(-)

diff --git a/llvm/test/Instrumentation/InstrProfiling/conditional-counter-updates.ll b/llvm/test/Instrumentation/InstrProfiling/conditional-counter-updates.ll
index 998443ec0cd56..d9d702d748280 100644
--- a/llvm/test/Instrumentation/InstrProfiling/conditional-counter-updates.ll
+++ b/llvm/test/Instrumentation/InstrProfiling/conditional-counter-updates.ll
@@ -1,3 +1,4 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
 ; RUN: opt < %s -S -passes=instrprof -conditional-counter-update | FileCheck %s
 
 target triple = "x86_64-unknown-linux-gnu"
@@ -5,45 +6,62 @@ target triple = "x86_64-unknown-linux-gnu"
 @__profn_foo = private constant [3 x i8] c"foo"
 @__profn_bar = private constant [3 x i8] c"bar"
 
-; CHECK-LABEL: define void @foo
-; CHECK-NEXT: %pgocount = load i8, ptr @__profc_foo, align 1
-; CHECK-NEXT: %pgocount.ifnonzero = icmp ne i8 %pgocount, 0
-; CHECK-NEXT: br i1 %pgocount.ifnonzero, label %1, label %2
-
-; CHECK-LABEL: 1:
-; CHECK-NEXT: store i8 0, ptr @__profc_foo, align 1
-; CHECK-NEXT: br label %2
-
-; CHECK-LABEL: 2:
-; CHECK-NEXT: ret void
 define void @foo() {
+; CHECK-LABEL: define void @foo() {
+; CHECK-NEXT:    [[PGOCOUNT:%.*]] = load i8, ptr @__profc_foo, align 1
+; CHECK-NEXT:    [[PGOCOUNT_IFNONZERO:%.*]] = icmp ne i8 [[PGOCOUNT]], 0
+; CHECK-NEXT:    br i1 [[PGOCOUNT_IFNONZERO]], label %[[BB1:.*]], label %[[BB2:.*]]
+; CHECK:       [[BB1]]:
+; CHECK-NEXT:    store i8 0, ptr @__profc_foo, align 1
+; CHECK-NEXT:    br label %[[BB2]]
+; CHECK:       [[BB2]]:
+; CHECK-NEXT:    ret void
+;
   call void @llvm.instrprof.cover(ptr @__profn_foo, i64 0, i32 1, i32 0)
   ret void
 }
 
-; CHECK-LABEL: define i32 @bar
-; CHECK-LABEL: entry:
-; CHECK-NEXT: %retval = alloca i32, align 4
-; CHECK-NEXT: %cond.addr = alloca i32, align 4
-; CHECK-NEXT: store i32 %cond, ptr %cond.addr, align 4
-; CHECK-NEXT: %pgocount = load i8, ptr @__profc_bar, align 1
-; CHECK-NEXT: %pgocount.ifnonzero = icmp ne i8 %pgocount, 0
-; CHECK-NEXT: br i1 %pgocount.ifnonzero, label %0, label %1
-
-; CHECK-LABEL: 0:                                  ; preds = %entry
-; CHECK-NEXT: store i8 0, ptr @__profc_bar, align 1
-; CHECK-NEXT: br label %1
-
-; CHECK-LABEL: 1:                                  ; preds = %entry, %0
-; CHECK-NEXT: %2 = load i32, ptr %cond.addr, align 4
-; CHECK-NEXT: %cmp = icmp slt i32 %2, 0
-; CHECK-NEXT: br i1 %cmp, label %if.then, label %if.end
-
-; CHECK-LABEL: if.then:                            ; preds = %1
-; CHECK-NEXT: %pgocount1 = load i8, ptr getelementptr inbounds ([3 x i8], ptr @__profc_bar, i32 0, i32 1), align 1
-; CHECK-NEXT: %pgocount.ifnonzero2 = icmp ne i8 %pgocount1, 0
-; CHECK-NEXT: br i1 %pgocount.ifnonzero2, label %3, label %4
 define i32 @bar(i32 %cond) #0 {
+; CHECK-LABEL: define i32 @bar(
+; CHECK-SAME: i32 [[COND:%.*]]) {
+; CHECK-NEXT:  [[ENTRY:.*:]]
+; CHECK-NEXT:    [[RETVAL:%.*]] = alloca i32, align 4
+; CHECK-NEXT:    [[COND_ADDR:%.*]] = alloca i32, align 4
+; CHECK-NEXT:    store i32 [[COND]], ptr [[COND_ADDR]], align 4
+; CHECK-NEXT:    [[PGOCOUNT:%.*]] = load i8, ptr @__profc_bar, align 1
+; CHECK-NEXT:    [[PGOCOUNT_IFNONZERO:%.*]] = icmp ne i8 [[PGOCOUNT]], 0
+; CHECK-NEXT:    br i1 [[PGOCOUNT_IFNONZERO]], label %[[BB0:.*]], label %[[BB1:.*]]
+; CHECK:       [[BB0]]:
+; CHECK-NEXT:    store i8 0, ptr @__profc_bar, align 1
+; CHECK-NEXT:    br label %[[BB1]]
+; CHECK:       [[BB1]]:
+; CHECK-NEXT:    [[TMP2:%.*]] = load i32, ptr [[COND_ADDR]], align 4
+; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i32 [[TMP2]], 0
+; CHECK-NEXT:    br i1 [[CMP]], label %[[IF_THEN:.*]], label %[[IF_END:.*]]
+; CHECK:       [[IF_THEN]]:
+; CHECK-NEXT:    [[PGOCOUNT1:%.*]] = load i8, ptr getelementptr inbounds ([3 x i8], ptr @__profc_bar, i32 0, i32 1), align 1
+; CHECK-NEXT:    [[PGOCOUNT_IFNONZERO2:%.*]] = icmp ne i8 [[PGOCOUNT1]], 0
+; CHECK-NEXT:    br i1 [[PGOCOUNT_IFNONZERO2]], label %[[BB3:.*]], label %[[BB4:.*]]
+; CHECK:       [[BB3]]:
+; CHECK-NEXT:    store i8 0, ptr getelementptr inbounds ([3 x i8], ptr @__profc_bar, i32 0, i32 1), align 1
+; CHECK-NEXT:    br label %[[BB4]]
+; CHECK:       [[BB4]]:
+; CHECK-NEXT:    store i32 -1, ptr [[RETVAL]], align 4
+; CHECK-NEXT:    br label %[[RETURN:.*]]
+; CHECK:       [[IF_END]]:
+; CHECK-NEXT:    [[PGOCOUNT3:%.*]] = load i8, ptr getelementptr inbounds ([3 x i8], ptr @__profc_bar, i32 0, i32 2), align 1
+; CHECK-NEXT:    [[PGOCOUNT_IFNONZERO4:%.*]] = icmp ne i8 [[PGOCOUNT3]], 0
+; CHECK-NEXT:    br i1 [[PGOCOUNT_IFNONZERO4]], label %[[BB5:.*]], label %[[BB6:.*]]
+; CHECK:       [[BB5]]:
+; CHECK-NEXT:    store i8 0, ptr getelementptr inbounds ([3 x i8], ptr @__profc_bar, i32 0, i32 2), align 1
+; CHECK-NEXT:    br label %[[BB6]]
+; CHECK:       [[BB6]]:
+; CHECK-NEXT:    store i32 0, ptr [[RETVAL]], align 4
+; CHECK-NEXT:    br label %[[RETURN]]
+; CHECK:       [[RETURN]]:
+; CHECK-NEXT:    [[TMP7:%.*]] = load i32, ptr [[RETVAL]], align 4
+; CHECK-NEXT:    ret i32 [[TMP7]]
+;
 entry:
   %retval = alloca i32, align 4
   %cond.addr = alloca i32, align 4



More information about the llvm-commits mailing list