Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / AArch64 / swift-error-unreachable-use.ll
blob81fabc3f175c3310d880293f88297dd6ead9a122
1 ; RUN: llc -mtriple aarch64-unknown-windows-msvc %s -filetype asm -o - | FileCheck %s
2 ; RUN: llc -mtriple aarch64-unknown-linux-gnu %s -filetype asm -o - | FileCheck %s
3 ; RUN: llc -mtriple aarch64-apple-macosx %s -filetype asm -o - | FileCheck %s
4 ; Regression test for https://github.com/llvm/llvm-project/issues/59751
6 define void @"func"(i32** swifterror %0) #0 {
7 ; CHECK-LABEL: func:
8 ; CHECK:       {{.*}}%bb.0:
9 ; CHECK-NEXT:    b {{\.?}}LBB0_2
10 ; CHECK-NEXT:  {{\.?}}LBB0_1:{{.*}}%thirtythree
11 ; CHECK-NEXT:  {{.*}}=>This Inner Loop Header: Depth=1
12 ; CHECK-NEXT:    b {{\.?}}LBB0_1
13 ; CHECK-NEXT:  {{\.?}}LBB0_2:{{.*}}%thirtyeight
14 ; CHECK-NEXT:    b {{\.?}}LBB0_3
15 ; CHECK-NEXT:  {{\.?}}LBB0_3:{{.*}}%thirtythree.preheader
16 ; CHECK-NEXT:    b {{\.?}}LBB0_1
17   br label %thirtyeight
19 five:
20   br label %UelOc2l.exit
22 common.ret:
23   ret void
25 UelOc2l.exit:
26   %a = getelementptr inbounds [754 x i8*], [754 x i8*]* undef, i32 undef, i32 undef
27   %b = load i8*, i8** %a, align 8
28   %c = bitcast i8* %b to void ()*
29   call void %c()
30   br label %common.ret
32 thirtythree:
33   br i1 false, label %UelOc2l.exit, label %thirtythree
35 thirtyeight:
36   br i1 undef, label %thirtyeight, label %thirtythree
39 attributes #0 = { noinline optnone }