119 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=x86_64-linux -run-pass=block-placement -o - %s | FileCheck %s3 4---5# check loop bb.7 is not merged with bb.10, bb.136# check loop bb.9 is not merged with bb.127 8name: foo9body: |10 ; CHECK-LABEL: name: foo11 ; CHECK: bb.0:12 ; CHECK: successors: %bb.1(0x40000000), %bb.2(0x40000000)13 ; CHECK: TEST8ri $dl, 1, implicit-def $eflags, implicit killed $edx14 ; CHECK: JCC_1 %bb.1, 5, implicit $eflags15 ; CHECK: bb.2:16 ; CHECK: successors: %bb.1(0x30000000), %bb.3(0x50000000)17 ; CHECK: $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load (s64))18 ; CHECK: TEST64rr $rax, $rax, implicit-def $eflags19 ; CHECK: JCC_1 %bb.1, 4, implicit $eflags20 ; CHECK: bb.3:21 ; CHECK: successors: %bb.6(0x30000000), %bb.4(0x50000000)22 ; CHECK: CMP64mi32 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load (s64))23 ; CHECK: JCC_1 %bb.6, 4, implicit $eflags24 ; CHECK: bb.4:25 ; CHECK: $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags26 ; CHECK: dead $eax = XOR32rr undef $eax, undef $eax, implicit-def dead $eflags, implicit-def $al27 ; CHECK: RET64 $eax28 ; CHECK: bb.6:29 ; CHECK: successors: %bb.1(0x30000000), %bb.7(0x50000000)30 ; CHECK: $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load (s64))31 ; CHECK: TEST64rr $rax, $rax, implicit-def $eflags32 ; CHECK: JCC_1 %bb.1, 4, implicit $eflags33 ; CHECK: bb.7 (align 16):34 ; CHECK: successors: %bb.8(0x71555555), %bb.4(0x0eaaaaab)35 ; CHECK: CMP64mi32 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load (s64)), (load (s64))36 ; CHECK: JCC_1 %bb.4, 5, implicit $eflags37 ; CHECK: bb.8:38 ; CHECK: successors: %bb.1(0x04000000), %bb.7(0x7c000000)39 ; CHECK: $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load (s64))40 ; CHECK: TEST64rr $rax, $rax, implicit-def $eflags41 ; CHECK: JCC_1 %bb.7, 5, implicit $eflags42 ; CHECK: bb.1:43 ; CHECK: $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags44 ; CHECK: RET64 $eax45 bb.0:46 successors: %bb.1(0x40000000), %bb.7(0x40000000)47 48 TEST8ri $dl, 1, implicit-def $eflags, implicit killed $edx49 JCC_1 %bb.7, 4, implicit $eflags50 51 bb.1:52 successors: %bb.16(0x80000000)53 54 $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags55 JMP_1 %bb.1656 57 bb.7:58 successors: %bb.8(0x30000000), %bb.9(0x50000000)59 60 $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load (s64))61 TEST64rr $rax, $rax, implicit-def $eflags62 JCC_1 %bb.9, 5, implicit killed $eflags63 64 bb.8:65 successors: %bb.16(0x80000000)66 67 $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags68 JMP_1 %bb.1669 70 bb.9:71 successors: %bb.10(0x30000000), %bb.15(0x50000000)72 73 CMP64mi32 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load (s64))74 JCC_1 %bb.15, 5, implicit $eflags75 76 bb.10:77 successors: %bb.11(0x30000000), %bb.12(0x50000000)78 79 $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load (s64))80 TEST64rr $rax, $rax, implicit-def $eflags81 JCC_1 %bb.12, 5, implicit $eflags82 83 bb.11:84 successors: %bb.16(0x80000000)85 86 $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags87 JMP_1 %bb.1688 89 bb.12:90 successors: %bb.13(0x71555555), %bb.15(0x0eaaaaab)91 92 CMP64mi32 killed $rax, 1, $noreg, 8, $noreg, 0, implicit-def $eflags :: (load (s64)), (load (s64))93 JCC_1 %bb.15, 5, implicit $eflags94 95 bb.13:96 successors: %bb.14(0x04000000), %bb.12(0x7c000000)97 98 $rax = MOV64rm $r14, 1, $noreg, 0, $noreg :: (load (s64))99 TEST64rr $rax, $rax, implicit-def $eflags100 JCC_1 %bb.12, 5, implicit $eflags101 102 bb.14:103 successors: %bb.16(0x80000000)104 105 $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags106 JMP_1 %bb.16107 108 bb.15:109 successors: %bb.16(0x80000000)110 111 $ebp = XOR32rr undef $ebp, undef $ebp, implicit-def dead $eflags112 dead $eax = XOR32rr undef $eax, undef $eax, implicit-def dead $eflags, implicit-def $al113 114 bb.16:115 116 RET64 $eax117 118...119