[llvm] [LSR] Reuse identical casts and instructions across fixups (PR #201839)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 11 08:01:01 PDT 2026


================
@@ -16,21 +16,17 @@ define void @f() personality ptr @_except_handler3 {
 ; CHECK-NEXT:    br label [[THROW:%.*]]
 ; CHECK:       throw:
 ; CHECK-NEXT:    invoke void @reserve()
-; CHECK-NEXT:    to label [[THROW]] unwind label [[PAD:%.*]]
+; CHECK-NEXT:            to label [[THROW]] unwind label [[PAD:%.*]]
 ; CHECK:       pad:
-; CHECK-NEXT:    [[CS:%.*]] = catchswitch within none [label %unreachable] unwind label [[BLAH2:%.*]]
+; CHECK-NEXT:    [[CS:%.*]] = catchswitch within none [label [[UNREACHABLE:%.*]]] unwind label [[BLAH2:%.*]]
 ; CHECK:       unreachable:
 ; CHECK-NEXT:    [[TMP0:%.*]] = catchpad within [[CS]] []
 ; CHECK-NEXT:    unreachable
 ; CHECK:       blah2:
 ; CHECK-NEXT:    [[CLEANUPPADI4_I_I_I:%.*]] = cleanuppad within none []
 ; CHECK-NEXT:    br label [[LOOP_BODY:%.*]]
 ; CHECK:       loop_body:
-; CHECK-NEXT:    [[LSR_IV:%.*]] = phi i32 [ [[LSR_IV_NEXT:%.*]], [[ITER:%.*]] ], [ 0, [[BLAH2]] ]
-; CHECK-NEXT:    [[LSR_IV_NEXT]] = add nuw nsw i32 [[LSR_IV]], -1
-; CHECK-NEXT:    [[LSR_IV_NEXT1:%.*]] = inttoptr i32 [[LSR_IV_NEXT]] to ptr
-; CHECK-NEXT:    [[TMP100:%.*]] = icmp eq ptr [[LSR_IV_NEXT1]], null
-; CHECK-NEXT:    br i1 [[TMP100]], label [[UNWIND_OUT:%.*]], label [[ITER]]
+; CHECK-NEXT:    br i1 false, label [[UNWIND_OUT:%.*]], label [[ITER:%.*]]
----------------
nikic wrote:

Best to do it separately, so it's clear the changes are pure test changes and not impacted by the code change.

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


More information about the llvm-commits mailing list