| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| # RUN: llc -mtriple=x86_64-- -run-pass=machine-sink -o - %s | FileCheck %s |
| |
| --- |
| name: foo |
| alignment: 16 |
| tracksRegLiveness: true |
| registers: |
| - { id: 0, class: gr32 } |
| - { id: 1, class: gr32 } |
| - { id: 2, class: gr32 } |
| - { id: 3, class: gr32 } |
| frameInfo: |
| maxAlignment: 4 |
| machineFunctionInfo: {} |
| body: | |
| ; CHECK-LABEL: name: foo |
| ; CHECK: bb.0.entry: |
| ; CHECK-NEXT: successors: %bb.2(0x80000000) |
| ; CHECK-NEXT: liveins: $edi, $esi |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: JMP_1 %bb.2 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: bb.1: |
| ; CHECK-NEXT: successors: %bb.2(0x80000000) |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: [[MOV32rr:%[0-9]+]]:gr32 = MOV32rr undef %1:gr32 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: bb.2: |
| ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.3(0x40000000) |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: [[MOV32rr1:%[0-9]+]]:gr32 = MOV32rr undef %3:gr32 |
| ; CHECK-NEXT: JCC_1 %bb.1, 15, implicit undef $eflags |
| ; CHECK-NEXT: JMP_1 %bb.3 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: bb.3: |
| ; CHECK-NEXT: successors: %bb.3(0x40000000), %bb.4(0x40000000) |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: MOV32mr $rip, 1, $noreg, 12, $noreg, [[MOV32rr1]] |
| ; CHECK-NEXT: JCC_1 %bb.3, 15, implicit undef $eflags |
| ; CHECK-NEXT: JMP_1 %bb.4 |
| ; CHECK-NEXT: {{ $}} |
| ; CHECK-NEXT: bb.4: |
| ; CHECK-NEXT: RET 0, undef $eax |
| bb.0.entry: |
| liveins: $edi, $esi |
| JMP_1 %bb.2 |
| bb.1: |
| %0:gr32 = MOV32rr undef %1:gr32 |
| bb.2: |
| %2:gr32 = MOV32rr undef %3:gr32 |
| JCC_1 %bb.1, 15, undef implicit $eflags |
| JMP_1 %bb.3 |
| |
| bb.3: |
| MOV32mr $rip, 1, $noreg, 12, $noreg, %2 |
| JCC_1 %bb.3, 15, undef implicit $eflags |
| JMP_1 %bb.4 |
| |
| bb.4: |
| RET 0, undef $eax |
| |
| ... |