CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
193 lines
4.0 KiB
LLVM
193 lines
4.0 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature
|
|
; RUN: opt -passes=ipsccp < %s -S | FileCheck %s
|
|
; RUN: opt -passes='ipsccp,ipsccp' < %s -S | FileCheck %s
|
|
|
|
define void @barney() {
|
|
; CHECK-LABEL: define {{[^@]+}}@barney() {
|
|
; CHECK-NEXT: bb:
|
|
; CHECK-NEXT: br label [[BB9:%.*]]
|
|
; CHECK: bb6:
|
|
; CHECK-NEXT: unreachable
|
|
; CHECK: bb9:
|
|
; CHECK-NEXT: br label [[BB6:%.*]]
|
|
;
|
|
bb:
|
|
br label %bb9
|
|
|
|
bb6: ; preds = %bb9
|
|
unreachable
|
|
|
|
bb7: ; preds = %bb9
|
|
unreachable
|
|
|
|
bb9: ; preds = %bb
|
|
switch i16 0, label %bb6 [
|
|
i16 61, label %bb7
|
|
]
|
|
}
|
|
|
|
define void @blam() {
|
|
; CHECK-LABEL: define {{[^@]+}}@blam() {
|
|
; CHECK-NEXT: bb:
|
|
; CHECK-NEXT: br label [[BB16:%.*]]
|
|
; CHECK: bb16:
|
|
; CHECK-NEXT: br label [[BB38:%.*]]
|
|
; CHECK: bb38:
|
|
; CHECK-NEXT: unreachable
|
|
;
|
|
bb:
|
|
br label %bb16
|
|
|
|
bb16: ; preds = %bb
|
|
switch i32 0, label %bb38 [
|
|
i32 66, label %bb17
|
|
i32 63, label %bb18
|
|
i32 86, label %bb19
|
|
]
|
|
|
|
bb17: ; preds = %bb16
|
|
unreachable
|
|
|
|
bb18: ; preds = %bb16
|
|
unreachable
|
|
|
|
bb19: ; preds = %bb16
|
|
unreachable
|
|
|
|
bb38: ; preds = %bb16
|
|
unreachable
|
|
}
|
|
|
|
|
|
define void @hoge(i1 %arg, i16 %arg2) {
|
|
; CHECK-LABEL: define {{[^@]+}}@hoge
|
|
; CHECK-SAME: (i1 [[ARG:%.*]], i16 [[ARG2:%.*]]) {
|
|
; CHECK-NEXT: bb:
|
|
; CHECK-NEXT: switch i16 [[ARG2]], label [[BB1:%.*]] [
|
|
; CHECK-NEXT: i16 135, label [[BB2:%.*]]
|
|
; CHECK-NEXT: i16 66, label [[BB2]]
|
|
; CHECK-NEXT: ]
|
|
; CHECK: bb1:
|
|
; CHECK-NEXT: ret void
|
|
; CHECK: bb2:
|
|
; CHECK-NEXT: br label [[BB3:%.*]]
|
|
; CHECK: bb3:
|
|
; CHECK-NEXT: unreachable
|
|
;
|
|
bb:
|
|
switch i16 %arg2, label %bb1 [
|
|
i16 135, label %bb2
|
|
i16 66, label %bb2
|
|
]
|
|
|
|
bb1: ; preds = %bb
|
|
ret void
|
|
|
|
bb2: ; preds = %bb, %bb
|
|
switch i16 0, label %bb3 [
|
|
i16 61, label %bb4
|
|
i16 54, label %bb4
|
|
i16 49, label %bb4
|
|
]
|
|
|
|
bb3: ; preds = %bb2
|
|
unreachable
|
|
|
|
bb4: ; preds = %bb2, %bb2, %bb2
|
|
unreachable
|
|
}
|
|
|
|
; Test case from PR49573. %default.bb is unfeasible. Make sure it gets replaced
|
|
; by an unreachable block.
|
|
define void @pr49573_main(i1 %arg) {
|
|
entry:
|
|
%tgt = call i16 @pr49573_fn(i1 %arg)
|
|
switch i16 %tgt, label %default.bb [
|
|
i16 0, label %case.0
|
|
i16 1, label %case.1
|
|
i16 2, label %case.2
|
|
]
|
|
|
|
case.0:
|
|
unreachable
|
|
|
|
default.bb:
|
|
ret void
|
|
|
|
case.1:
|
|
ret void
|
|
|
|
case.2:
|
|
br label %next
|
|
|
|
next:
|
|
%tgt.2 = call i16 @pr49573_fn_2(i1 %arg)
|
|
switch i16 %tgt.2, label %default.bb [
|
|
i16 0, label %case.0
|
|
i16 2, label %case.2
|
|
]
|
|
}
|
|
|
|
; Make sure a new unreachable BB is created.
|
|
define void @pr49573_main_2(i1 %arg) {
|
|
entry:
|
|
%tgt = call i16 @pr49573_fn(i1 %arg)
|
|
switch i16 %tgt, label %default.bb [
|
|
i16 0, label %case.0
|
|
i16 1, label %case.1
|
|
i16 2, label %case.2
|
|
]
|
|
|
|
case.0:
|
|
unreachable
|
|
|
|
default.bb:
|
|
ret void
|
|
|
|
case.1:
|
|
ret void
|
|
|
|
case.2:
|
|
ret void
|
|
}
|
|
|
|
define internal i16 @pr49573_fn(i1 %arg) {
|
|
; CHECK-LABEL: define {{[^@]+}}@pr49573_fn
|
|
; CHECK-SAME: (i1 [[ARG:%.*]]) {
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: br i1 [[ARG]], label [[THEN:%.*]], label [[ELSE:%.*]]
|
|
; CHECK: then:
|
|
; CHECK-NEXT: ret i16 0
|
|
; CHECK: else:
|
|
; CHECK-NEXT: ret i16 2
|
|
;
|
|
entry:
|
|
br i1 %arg, label %then, label %else
|
|
|
|
then:
|
|
ret i16 0
|
|
|
|
else:
|
|
ret i16 2
|
|
}
|
|
|
|
define internal i16 @pr49573_fn_2(i1 %arg) {
|
|
; CHECK-LABEL: define {{[^@]+}}@pr49573_fn_2
|
|
; CHECK-SAME: (i1 [[ARG:%.*]]) {
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: br i1 [[ARG]], label [[THEN:%.*]], label [[ELSE:%.*]]
|
|
; CHECK: then:
|
|
; CHECK-NEXT: ret i16 0
|
|
; CHECK: else:
|
|
; CHECK-NEXT: ret i16 2
|
|
;
|
|
entry:
|
|
br i1 %arg, label %then, label %else
|
|
|
|
then:
|
|
ret i16 0
|
|
|
|
else:
|
|
ret i16 2
|
|
}
|