• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llc -march=x86-64 -verify-machineinstrs -run-pass block-placement -o - %s | FileCheck %s
2# Check the conditional jump in bb.1 is changed to unconditional after block placement swaps bb.2 and bb.3.
3
4--- |
5  @a = external global i16
6  @b = external global i32
7
8  ; Function Attrs: nounwind
9  define void @f2() {
10    br i1 undef, label %bb1, label %bb3
11
12  bb1:
13    br i1 undef, label %bb2, label %bb2
14
15  bb2:
16    br label %bb4
17
18  bb3:
19    br label %bb2
20
21  bb4:
22    ret void
23  }
24
25
26...
27---
28# CHECK-LABEL: name: f2
29# CHECK: bb.1:
30# CHECK: JMP_1 %bb.2
31# CHECK: bb.3:
32# CHECK: bb.2:
33name:            f2
34body:             |
35  bb.0 (%ir-block.0):
36    successors: %bb.1(50), %bb.3(50)
37
38    JNE_1 %bb.1, implicit %eflags
39    JMP_1 %bb.3
40  bb.1:
41    successors: %bb.2(100)
42
43    JNE_1 %bb.2, implicit %eflags
44
45  bb.2:
46    successors: %bb.4(100)
47
48    JMP_1 %bb.4
49
50  bb.3:
51    successors: %bb.2(100)
52    JMP_1 %bb.2
53
54  bb.4:
55    RETQ
56
57...
58