[llvm] [LoopFusion] Remove test dependency on assert (NFC) (PR #217180)
Ehsan Amiri via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 18 17:52:20 PDT 2026
https://github.com/amehsan created https://github.com/llvm/llvm-project/pull/217180
In preparation for another patch, I am changing this testcase to not require assertions.
>From 7f0284e984d1d9cf80e0eefd53f930ccb489724e Mon Sep 17 00:00:00 2001
From: Ehsan Amiri <ehsan.amiri at huawei.com>
Date: Tue, 18 Aug 2026 20:49:42 -0400
Subject: [PATCH] [LoopFusion] Remove test dependency on assert (NFC)
---
.../Transforms/LoopFusion/different_guards.ll | 43 +++++++++++++++++--
1 file changed, 40 insertions(+), 3 deletions(-)
diff --git a/llvm/test/Transforms/LoopFusion/different_guards.ll b/llvm/test/Transforms/LoopFusion/different_guards.ll
index 679e39c1bbd9d..7be960e745315 100644
--- a/llvm/test/Transforms/LoopFusion/different_guards.ll
+++ b/llvm/test/Transforms/LoopFusion/different_guards.ll
@@ -1,6 +1,5 @@
-; REQUIRES: asserts
-; RUN: opt -passes=loop-fusion -loop-fusion-peel-max-count=2 -disable-output -stats < %s 2>&1 | FileCheck -check-prefix=STAT %s
-; STAT-NOT: loop-fusion - Loops fused
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
+; RUN: opt -passes=loop-fusion -loop-fusion-peel-max-count=2 -S < %s 2>&1 | FileCheck %s
; Test reduced from the file diags_on_lat_aux_grid.F90 present in pop2,
; a program from spec 2017. Two loops have different guards, but otherwise
@@ -8,6 +7,44 @@
; iteration count. They should not be fused.
define void @diags_on_lat_aux_grid(i1 %cond, i1 %cond1, i1 %0, i1 %1, ptr noalias %b1, ptr noalias %b2, i64 %N) {
+; CHECK-LABEL: define void @diags_on_lat_aux_grid(
+; CHECK-SAME: i1 [[COND:%.*]], i1 [[COND1:%.*]], i1 [[TMP0:%.*]], i1 [[TMP1:%.*]], ptr noalias [[B1:%.*]], ptr noalias [[B2:%.*]], i64 [[N:%.*]]) {
+; CHECK-NEXT: [[_CRITEDGE:.*:]]
+; CHECK-NEXT: br i1 [[COND]], label %[[COMMON_RET:.*]], label %[[THREAD_PRE_SPLIT:.*]]
+; CHECK: [[COMMON_RET]]:
+; CHECK-NEXT: ret void
+; CHECK: [[THREAD_PRE_SPLIT]]:
+; CHECK-NEXT: br i1 [[COND1]], label %[[BB2:.*]], [[DOTLOOPEXIT:label %.*]]
+; CHECK: [[BB2]]:
+; CHECK-NEXT: br i1 [[TMP0]], label %[[DOTLR_PH1333_PREHEADER:.*]], [[DOT_CRIT_EDGE1334:label %.*]]
+; CHECK: [[_LR_PH1333_PREHEADER:.*:]]
+; CHECK-NEXT: br label %[[DOTLR_PH1333:.*]]
+; CHECK: [[_LR_PH1333:.*:]]
+; CHECK-NEXT: [[INDVARS_IV1386:%.*]] = phi i64 [ [[INDVARS_IV_NEXT1387:%.*]], %[[DOTLR_PH1333]] ], [ 0, %[[DOTLR_PH1333_PREHEADER]] ]
+; CHECK-NEXT: [[TMP3:%.*]] = getelementptr [8 x i8], ptr [[B1]], i64 [[INDVARS_IV1386]]
+; CHECK-NEXT: store double 0.000000e+00, ptr [[TMP3]], align 8
+; CHECK-NEXT: [[INDVARS_IV_NEXT1387]] = add i64 [[INDVARS_IV1386]], 1
+; CHECK-NEXT: [[EXITCOND1389_NOT:%.*]] = icmp eq i64 [[INDVARS_IV1386]], [[N]]
+; CHECK-NEXT: br i1 [[EXITCOND1389_NOT]], [[DOT_CRIT_EDGE1334_LOOPEXIT:label %.*]], label %[[DOTLR_PH1333]]
+; CHECK: [[__CRIT_EDGE1334_LOOPEXIT:.*:]]
+; CHECK-NEXT: br [[DOT_CRIT_EDGE1334]]
+; CHECK: [[__CRIT_EDGE1334:.*:]]
+; CHECK-NEXT: br i1 [[TMP1]], label %[[DOTLR_PH1336_PREHEADER:.*]], [[DOTLOOPEXIT]]
+; CHECK: [[_LR_PH1336_PREHEADER:.*:]]
+; CHECK-NEXT: br label %[[DOTLR_PH1336:.*]]
+; CHECK: [[_LR_PH1336:.*:]]
+; CHECK-NEXT: [[INDVARS_IV1390:%.*]] = phi i64 [ [[INDVARS_IV_NEXT1391:%.*]], %[[DOTLR_PH1336]] ], [ 0, %[[DOTLR_PH1336_PREHEADER]] ]
+; CHECK-NEXT: [[TMP4:%.*]] = getelementptr [8 x i8], ptr [[B2]], i64 [[INDVARS_IV1390]]
+; CHECK-NEXT: store double 0.000000e+00, ptr [[TMP4]], align 8
+; CHECK-NEXT: [[INDVARS_IV_NEXT1391]] = add i64 [[INDVARS_IV1390]], 1
+; CHECK-NEXT: [[EXITCOND1393_NOT:%.*]] = icmp eq i64 [[INDVARS_IV1390]], [[N]]
+; CHECK-NEXT: br i1 [[EXITCOND1393_NOT]], [[DOTLOOPEXIT_LOOPEXIT:label %.*]], label %[[DOTLR_PH1336]]
+; CHECK: [[_LOOPEXIT_LOOPEXIT:.*:]]
+; CHECK-NEXT: br [[DOTLOOPEXIT]]
+; CHECK: [[_LOOPEXIT:.*:]]
+; CHECK-NEXT: store volatile i32 0, ptr [[B1]], align 4
+; CHECK-NEXT: br label %[[COMMON_RET]]
+;
.critedge:
br i1 %cond, label %common.ret, label %thread-pre-split
More information about the llvm-commits
mailing list