[llvm] [ValueTracking] Fix crash in PR175590 (PR #180355)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 7 09:14:22 PST 2026


================
@@ -213,6 +213,55 @@ for.body:                                         ; preds = %for.cond
   br label %for.cond
 }
 
+define fastcc i1 @ShouldMergeBlock(ptr %arena, i1 %exitcond) {
+; CHECK-LABEL: define fastcc i1 @ShouldMergeBlock(
+; CHECK-SAME: ptr [[ARENA:%.*]], i1 [[EXITCOND:%.*]]) {
+; CHECK-NEXT:  [[ENTRY:.*]]:
+; CHECK-NEXT:    br label %[[LOOP:.*]]
+; CHECK:       [[LOOP]]:
+; CHECK-NEXT:    [[DOT026:%.*]] = phi double [ 0.000000e+00, %[[ENTRY]] ], [ 1.000000e+00, %[[LOOP_BACKEDGE:.*]] ]
+; CHECK-NEXT:    br i1 true, label %[[LOAD_BLOCK:.*]], label %[[ZERO_BLOCK:.*]]
+; CHECK:       [[ZERO_BLOCK]]:
+; CHECK-NEXT:    br label %[[LOOP_BACKEDGE]]
+; CHECK:       [[LOAD_BLOCK]]:
+; CHECK-NEXT:    [[LOADED_VAL:%.*]] = load double, ptr [[ARENA]], align 8
+; CHECK-NEXT:    br label %[[LOOP_BACKEDGE]]
+; CHECK:       [[LOOP_BACKEDGE]]:
+; CHECK-NEXT:    [[DOT0_I22:%.*]] = phi double [ [[LOADED_VAL]], %[[LOAD_BLOCK]] ], [ 0.000000e+00, %[[ZERO_BLOCK]] ]
+; CHECK-NEXT:    br i1 [[EXITCOND]], label %[[LOOP]], label %[[EXIT:.*]]
+; CHECK:       [[EXIT]]:
+; CHECK-NEXT:    [[FMA_RESULT:%.*]] = tail call double @llvm.fmuladd.f64(double 0.000000e+00, double [[DOT0_I22]], double [[DOT026]])
+; CHECK-NEXT:    [[CMP:%.*]] = fcmp oge double [[FMA_RESULT]], 0.000000e+00
+; CHECK-NEXT:    ret i1 [[CMP]]
+;
+entry:
+  br label %loop
+
+loop:
+  %.026 = phi double [ 0.000000e+00, %entry ],
+  [ 1.000000e+00, %loop_backedge ]
+  br i1 true, label %load_block, label %zero_block
+
+zero_block:
+  br label %loop_backedge
+
+load_block:
+  %loaded_val = load double, ptr %arena, align 8
+  br label %loop_backedge
+
+loop_backedge:
+  %.0.i22 = phi double [ %loaded_val, %load_block ],
+  [ 0.000000e+00, %zero_block ]
----------------
arsenm wrote:

Weird formatting 

https://github.com/llvm/llvm-project/pull/180355


More information about the llvm-commits mailing list