Skip to content

Commit 624b487

Browse files
committed
[AArch64][NFC] Pre-commit IR translator switch lowering test.
1 parent 93c8468 commit 624b487

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
2+
; RUN: llc -stop-after=irtranslator -o - %s | FileCheck %s --check-prefix=CHECK-TRANSLATOR
3+
4+
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
5+
target triple = "arm64-apple-macosx14.0.0"
6+
7+
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
8+
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0
9+
10+
declare i32 @logg(...)
11+
12+
define i32 @scanfile(i32 %call148) {
13+
; CHECK-TRANSLATOR-LABEL: name: scanfile
14+
; CHECK-TRANSLATOR: bb.0.entry:
15+
; CHECK-TRANSLATOR-NEXT: successors: %bb.1(0x40000000), %bb.4(0x40000000)
16+
; CHECK-TRANSLATOR-NEXT: liveins: $w0, $lr
17+
; CHECK-TRANSLATOR-NEXT: {{ $}}
18+
; CHECK-TRANSLATOR-NEXT: early-clobber $sp = frame-setup STPXpre $fp, killed $lr, $sp, -2 :: (store (s64) into %stack.1), (store (s64) into %stack.0)
19+
; CHECK-TRANSLATOR-NEXT: frame-setup CFI_INSTRUCTION def_cfa_offset 16
20+
; CHECK-TRANSLATOR-NEXT: frame-setup CFI_INSTRUCTION offset $w30, -8
21+
; CHECK-TRANSLATOR-NEXT: frame-setup CFI_INSTRUCTION offset $w29, -16
22+
; CHECK-TRANSLATOR-NEXT: dead $wzr = SUBSWri renamable $w0, 0, 0, implicit-def $nzcv
23+
; CHECK-TRANSLATOR-NEXT: Bcc 12, %bb.4, implicit $nzcv
24+
; CHECK-TRANSLATOR-NEXT: {{ $}}
25+
; CHECK-TRANSLATOR-NEXT: bb.1.entry:
26+
; CHECK-TRANSLATOR-NEXT: successors: %bb.4(0x55555556), %bb.2(0x2aaaaaaa)
27+
; CHECK-TRANSLATOR-NEXT: liveins: $w0
28+
; CHECK-TRANSLATOR-NEXT: {{ $}}
29+
; CHECK-TRANSLATOR-NEXT: CBZW renamable $w0, %bb.4
30+
; CHECK-TRANSLATOR-NEXT: {{ $}}
31+
; CHECK-TRANSLATOR-NEXT: bb.2.entry:
32+
; CHECK-TRANSLATOR-NEXT: successors: %bb.5(0x00000000), %bb.3(0x80000000)
33+
; CHECK-TRANSLATOR-NEXT: liveins: $w0
34+
; CHECK-TRANSLATOR-NEXT: {{ $}}
35+
; CHECK-TRANSLATOR-NEXT: dead $wzr = ADDSWri renamable $w0, 2, 0, implicit-def $nzcv
36+
; CHECK-TRANSLATOR-NEXT: Bcc 0, %bb.5, implicit $nzcv
37+
; CHECK-TRANSLATOR-NEXT: {{ $}}
38+
; CHECK-TRANSLATOR-NEXT: bb.3.entry:
39+
; CHECK-TRANSLATOR-NEXT: successors: %bb.5(0x00000000), %bb.4(0x80000000)
40+
; CHECK-TRANSLATOR-NEXT: liveins: $w0
41+
; CHECK-TRANSLATOR-NEXT: {{ $}}
42+
; CHECK-TRANSLATOR-NEXT: dead $wzr = ADDSWri killed renamable $w0, 1, 0, implicit-def $nzcv
43+
; CHECK-TRANSLATOR-NEXT: Bcc 0, %bb.5, implicit $nzcv
44+
; CHECK-TRANSLATOR-NEXT: {{ $}}
45+
; CHECK-TRANSLATOR-NEXT: bb.4.common.ret:
46+
; CHECK-TRANSLATOR-NEXT: $w0 = ORRWrs $wzr, $wzr, 0
47+
; CHECK-TRANSLATOR-NEXT: early-clobber $sp, $fp, $lr = frame-destroy LDPXpost $sp, 2 :: (load (s64) from %stack.1), (load (s64) from %stack.0)
48+
; CHECK-TRANSLATOR-NEXT: RET undef $lr, implicit killed $w0
49+
; CHECK-TRANSLATOR-NEXT: {{ $}}
50+
; CHECK-TRANSLATOR-NEXT: bb.5.sw.bb150:
51+
; CHECK-TRANSLATOR-NEXT: BL @logg, csr_darwin_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $w0
52+
; CHECK-TRANSLATOR-NEXT: BRK 1
53+
entry:
54+
switch i32 %call148, label %common.ret [
55+
i32 -1, label %sw.bb
56+
i32 -2, label %sw.bb150
57+
i32 0, label %sw.bb152
58+
i32 1, label %sw.bb178
59+
]
60+
61+
sw.bb: ; preds = %entry
62+
%call149 = call i32 (...) @logg()
63+
unreachable
64+
65+
sw.bb150: ; preds = %entry
66+
%call151 = call i32 (...) @logg()
67+
unreachable
68+
69+
common.ret: ; preds = %sw.bb178, %sw.bb152, %entry
70+
ret i32 0
71+
72+
sw.bb152: ; preds = %entry
73+
%tobool154.not = icmp eq i32 0, 0
74+
br label %common.ret
75+
76+
sw.bb178: ; preds = %entry
77+
call void @llvm.lifetime.start.p0(i64 0, ptr null)
78+
br label %common.ret
79+
}
80+
81+
attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }

0 commit comments

Comments
 (0)