[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