mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-22 12:33:33 +02:00
097d0e97f1
llvm-svn: 279680
53 lines
1.6 KiB
YAML
53 lines
1.6 KiB
YAML
# RUN: llc -march=x86-64 -run-pass none -o - %s | FileCheck %s
|
|
|
|
--- |
|
|
define i64 @test(i64 %x, i64 %y) #0 {
|
|
entry:
|
|
%x0 = call { i64, i64 } asm "foo", "=r,=r,1,0,~{dirflag},~{fpsr},~{flags}"(i64 %x, i64 %y) #0
|
|
%x1 = extractvalue { i64, i64 } %x0, 0
|
|
ret i64 %x1
|
|
}
|
|
|
|
define i64 @test2(i64 %x, i64 %y) #0 {
|
|
entry:
|
|
%x0 = call { i64, i64 } asm "foo", "=r,=r,1,0,~{dirflag},~{fpsr},~{flags}"(i64 %x, i64 %y) #0
|
|
%x1 = extractvalue { i64, i64 } %x0, 0
|
|
ret i64 %x1
|
|
}
|
|
|
|
attributes #0 = { nounwind }
|
|
...
|
|
---
|
|
name: test
|
|
tracksRegLiveness: true
|
|
liveins:
|
|
- { reg: '%rdi' }
|
|
- { reg: '%rsi' }
|
|
body: |
|
|
bb.0.entry:
|
|
liveins: %rdi, %rsi
|
|
|
|
; CHECK-LABEL: name: test
|
|
; CHECK: INLINEASM $foo, 0, 2818058, def %rsi, 2818058, def dead %rdi,
|
|
INLINEASM $foo, 0, 2818058, def %rsi, 2818058, def dead %rdi, 2147549193, killed %rdi, 2147483657, killed %rsi, 12, implicit-def dead early-clobber %eflags
|
|
%rax = MOV64rr killed %rsi
|
|
RETQ killed %rax
|
|
...
|
|
---
|
|
name: test2
|
|
tracksRegLiveness: true
|
|
liveins:
|
|
- { reg: '%rdi' }
|
|
- { reg: '%rsi' }
|
|
body: |
|
|
bb.0.entry:
|
|
liveins: %rdi, %rsi
|
|
|
|
; Verify that the register ties are preserved.
|
|
; CHECK-LABEL: name: test2
|
|
; CHECK: INLINEASM $foo, 0, 2818058, def %rsi, 2818058, def dead %rdi, 2147549193, killed %rdi(tied-def 5), 2147483657, killed %rsi(tied-def 3), 12, implicit-def dead early-clobber %eflags
|
|
INLINEASM $foo, 0, 2818058, def %rsi, 2818058, def dead %rdi, 2147549193, killed %rdi(tied-def 5), 2147483657, killed %rsi(tied-def 3), 12, implicit-def dead early-clobber %eflags
|
|
%rax = MOV64rr killed %rsi
|
|
RETQ killed %rax
|
|
...
|