[clang] [llvm] [SimplifyCFG] Hoist common code for switch multi-case destinations (PR #165700)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 1 07:58:04 PST 2025
================
@@ -602,3 +602,33 @@ bar:
call void @bar()
ret void
}
+
+define void @test_switch_with_multicases_dest(i64 %i, ptr %Q) {
+; CHECK-LABEL: @test_switch_with_multicases_dest(
+; CHECK-NEXT: common.ret:
+; CHECK-NEXT: store i32 1, ptr [[Q:%.*]], align 4
+; CHECK-NEXT: [[C:%.*]] = load i32, ptr [[Q]], align 4
+; CHECK-NEXT: call void @bar(i32 [[C]])
+; CHECK-NEXT: ret void
+;
+ switch i64 %i, label %bb0 [
+ i64 1, label %bb1
+ i64 2, label %bb2
+ i64 3, label %bb2
+ ]
+bb0: ; preds = %0
+ store i32 1, ptr %Q
+ %A = load i32, ptr %Q ; <i32> [#uses=1]
----------------
nikic wrote:
Drop these uses comments (which haven't been emitted for a long time already).
https://github.com/llvm/llvm-project/pull/165700
More information about the llvm-commits
mailing list