Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / SPARC / analyze-branch.ll
blobc39dde5a2b88b783619c6e3ff435200e833fad34
1 ; RUN: llc -mtriple=sparc-none-linux-gnu < %s | FileCheck %s
3 ; This test checks that LLVM can do basic stripping and reapplying of branches
4 ; to basic blocks.
6 declare void @test_true()
7 declare void @test_false()
9 ; !0 corresponds to a branch being taken, !1 to not being takne.
10 !0 = !{!"branch_weights", i32 64, i32 4}
11 !1 = !{!"branch_weights", i32 4, i32 64}
13 define void @test_Bcc_fallthrough_taken(i32 %in) nounwind {
14 ; CHECK-LABEL: test_Bcc_fallthrough_taken:
15   %tst = icmp eq i32 %in, 42
16   br i1 %tst, label %true, label %false, !prof !0
18 ; CHECK: cmp {{%[goli][0-9]+}}, 42
19 ; CHECK: bne [[FALSE:.LBB[0-9]+_[0-9]+]]
20 ; CHECK-NEXT: nop
21 ; CHECK-NEXT: ! %bb.
22 ; CHECK-NEXT: call test_true
24 ; CHECK: [[FALSE]]:
25 ; CHECK: call test_false
27 true:
28   call void @test_true()
29   ret void
31 false:
32   call void @test_false()
33   ret void
36 define void @test_Bcc_fallthrough_nottaken(i32 %in) nounwind {
37 ; CHECK-LABEL: test_Bcc_fallthrough_nottaken:
38   %tst = icmp eq i32 %in, 42
39   br i1 %tst, label %true, label %false, !prof !1
41 ; CHECK: cmp {{%[goli][0-9]+}}, 42
43 ; CHECK: be [[TRUE:.LBB[0-9]+_[0-9]+]]
44 ; CHECK-NEXT: nop
45 ; CHECK-NEXT: ! %bb.
46 ; CHECK-NEXT: call test_false
48 ; CHECK: [[TRUE]]:
49 ; CHECK: call test_true
51 true:
52   call void @test_true()
53   ret void
55 false:
56   call void @test_false()
57   ret void