1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/test/CodeGen/MIR/X86/register-mask-operands.mir
Alex Lorenz 813af3fadc MIR Parser: Verify the implicit machine register operands.
This commit verifies that the parsed machine instructions contain the implicit
register operands as specified by the MCInstrDesc. Variadic and call
instructions aren't verified.

Reviewers: Duncan P. N. Exon Smith

Differential Revision: http://reviews.llvm.org/D10781

llvm-svn: 241537
2015-07-07 02:08:46 +00:00

44 lines
1.1 KiB
YAML

# RUN: llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s | FileCheck %s
# This test ensures that the MIR parser parses register mask operands correctly.
--- |
define i32 @compute(i32 %a) #0 {
body:
%c = mul i32 %a, 11
ret i32 %c
}
define i32 @foo(i32 %a) #0 {
entry:
%b = call i32 @compute(i32 %a)
ret i32 %b
}
attributes #0 = { "no-frame-pointer-elim"="false" }
...
---
name: compute
body:
- id: 0
name: body
instructions:
- '%eax = IMUL32rri8 %edi, 11, implicit-def %eflags'
- 'RETQ %eax'
...
---
# CHECK: name: foo
name: foo
body:
- id: 0
name: entry
instructions:
# CHECK: - 'PUSH64r %rax
# CHECK-NEXT: - 'CALL64pcrel32 @compute, csr_64, implicit %rsp, implicit %edi, implicit-def %rsp, implicit-def %eax'
- 'PUSH64r %rax, implicit-def %rsp, implicit %rsp'
- 'CALL64pcrel32 @compute, csr_64, implicit %rsp, implicit %edi, implicit-def %rsp, implicit-def %eax'
- '%rdx = POP64r implicit-def %rsp, implicit %rsp'
- 'RETQ %eax'
...