Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AArch64 / nomerge.ll
blob47c7fa59ed9e9be23ceaf02101eac380f742db65
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=aarch64 -o - | FileCheck %s
4 define void @foo(i32 %i) nounwind {
5 ; CHECK-LABEL: foo:
6 ; CHECK:       // %bb.0: // %entry
7 ; CHECK-NEXT:    str x30, [sp, #-16]! // 8-byte Folded Spill
8 ; CHECK-NEXT:    cmp w0, #7
9 ; CHECK-NEXT:    b.eq .LBB0_3
10 ; CHECK-NEXT:  // %bb.1: // %entry
11 ; CHECK-NEXT:    cmp w0, #5
12 ; CHECK-NEXT:    b.ne .LBB0_4
13 ; CHECK-NEXT:  // %bb.2: // %if.then
14 ; CHECK-NEXT:    bl bar
15 ; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload
16 ; CHECK-NEXT:    b bar
17 ; CHECK-NEXT:  .LBB0_3: // %if.then2
18 ; CHECK-NEXT:    bl bar
19 ; CHECK-NEXT:  .LBB0_4: // %if.end3
20 ; CHECK-NEXT:    ldr x30, [sp], #16 // 8-byte Folded Reload
21 ; CHECK-NEXT:    b bar
22 entry:
23   switch i32 %i, label %if.end3 [
24     i32 5, label %if.then
25     i32 7, label %if.then2
26   ]
28 if.then:
29   tail call void @bar() #0
30   br label %if.end3
32 if.then2:
33   tail call void @bar() #0
34   br label %if.end3
36 if.end3:
37   tail call void @bar() #0
38   ret void
41 define void @foo_tail(i1 %i) nounwind {
42 ; CHECK-LABEL: foo_tail:
43 ; CHECK:       // %bb.0: // %entry
44 ; CHECK-NEXT:    tbz w0, #0, .LBB1_2
45 ; CHECK-NEXT:  // %bb.1: // %if.then
46 ; CHECK-NEXT:    b bar
47 ; CHECK-NEXT:  .LBB1_2: // %if.else
48 ; CHECK-NEXT:    b bar
49 entry:
50   br i1 %i, label %if.then, label %if.else
52 if.then:
53   tail call void @bar() #0
54   br label %if.end
56 if.else:
57   tail call void @bar() #0
58   br label %if.end
60 if.end:
61   ret void
64 declare void @bar()
66 attributes #0 = { nomerge }