1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
llvm-mirror/test/CodeGen/MIR/X86/virtual-registers.mir
Alex Lorenz 5694297a85 MIR Tests: Add liveins and successors to make tests pass with machine verifier.
This commit adds the liveins and successors properties to machine basic blocks
in some of the MIR tests to ensure that the tests will pass when the MIR parser
will run the machine verifier after initializing a machine function.

llvm-svn: 243124
2015-07-24 17:36:55 +00:00

110 lines
2.5 KiB
YAML

# RUN: llc -march=x86-64 -start-after machine-sink -stop-after machine-sink -o /dev/null %s | FileCheck %s
# This test ensures that the MIR parser parses virtual register definitions and
# references correctly.
--- |
define i32 @bar(i32 %a) {
entry:
%0 = icmp sle i32 %a, 10
br i1 %0, label %less, label %exit
less:
ret i32 0
exit:
ret i32 %a
}
define i32 @foo(i32 %a) {
entry:
%0 = icmp sle i32 %a, 10
br i1 %0, label %less, label %exit
less:
ret i32 0
exit:
ret i32 %a
}
...
---
name: bar
isSSA: true
tracksRegLiveness: true
# CHECK: registers:
# CHECK-NEXT: - { id: 0, class: gr32 }
# CHECK-NEXT: - { id: 1, class: gr32 }
# CHECK-NEXT: - { id: 2, class: gr32 }
registers:
- { id: 0, class: gr32 }
- { id: 1, class: gr32 }
- { id: 2, class: gr32 }
body:
- id: 0
name: entry
successors: [ '%bb.2.exit', '%bb.1.less' ]
liveins: [ '%edi' ]
# CHECK: %0 = COPY %edi
# CHECK-NEXT: %1 = SUB32ri8 %0, 10
instructions:
- '%0 = COPY %edi'
- '%1 = SUB32ri8 %0, 10, implicit-def %eflags'
- 'JG_1 %bb.2.exit, implicit %eflags'
- 'JMP_1 %bb.1.less'
- id: 1
name: less
# CHECK: %2 = MOV32r0
# CHECK-NEXT: %eax = COPY %2
instructions:
- '%2 = MOV32r0 implicit-def %eflags'
- '%eax = COPY %2'
- 'RETQ %eax'
- id: 2
name: exit
instructions:
- '%eax = COPY %0'
- 'RETQ %eax'
...
---
name: foo
isSSA: true
tracksRegLiveness: true
# CHECK: name: foo
# CHECK: registers:
# CHECK-NEXT: - { id: 0, class: gr32 }
# CHECK-NEXT: - { id: 1, class: gr32 }
# CHECK-NEXT: - { id: 2, class: gr32 }
registers:
- { id: 2, class: gr32 }
- { id: 0, class: gr32 }
- { id: 10, class: gr32 }
body:
- id: 0
name: entry
successors: [ '%bb.2.exit', '%bb.1.less' ]
liveins: [ '%edi' ]
# CHECK: %0 = COPY %edi
# CHECK-NEXT: %1 = SUB32ri8 %0, 10
instructions:
- '%2 = COPY %edi'
- '%0 = SUB32ri8 %2, 10, implicit-def %eflags'
- 'JG_1 %bb.2.exit, implicit %eflags'
- 'JMP_1 %bb.1.less'
- id: 1
name: less
# CHECK: %2 = MOV32r0
# CHECK-NEXT: %eax = COPY %2
instructions:
- '%10 = MOV32r0 implicit-def %eflags'
- '%eax = COPY %10'
- 'RETQ %eax'
- id: 2
name: exit
# CHECK: %eax = COPY %0
instructions:
- '%eax = COPY %2'
- 'RETQ %eax'
...