Home | History | Annotate | Download | only in X86
      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:
     33 name:            f2
     34 body:             |
     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