| ; RUN: llc -mtriple=x86_64-apple-darwin8 < %s | FileCheck %s --check-prefix=X64 |
| ; RUN: llc -mtriple=x86_64-pc-linux < %s | FileCheck %s --check-prefix=X64 |
| ; RUN: llc -mtriple=i686-pc-linux < %s | FileCheck %s --check-prefix=X86 |
| ; RUN: llc -mtriple=x86_64-apple-darwin8 -terminal-rule < %s | FileCheck %s --check-prefix=X64 |
| ; RUN: llc -mtriple=x86_64-pc-linux -terminal-rule < %s | FileCheck %s --check-prefix=X64 |
| |
| define void @sret_void(i32* sret %p) { |
| store i32 0, i32* %p |
| ret void |
| } |
| |
| ; X64-LABEL: sret_void |
| ; X64-DAG: movl $0, (%rdi) |
| ; X64-DAG: movq %rdi, %rax |
| ; X64: retq |
| |
| ; X86-LABEL: sret_void |
| ; X86: movl 4(%esp), %eax |
| ; X86: movl $0, (%eax) |
| ; X86: retl |
| |
| define i256 @sret_demoted() { |
| ret i256 0 |
| } |
| |
| ; X64-LABEL: sret_demoted |
| ; X64-DAG: movq $0, (%rdi) |
| ; X64-DAG: movq %rdi, %rax |
| ; X64: retq |
| |
| ; X86-LABEL: sret_demoted |
| ; X86: movl 4(%esp), %eax |
| ; X86: movl $0, (%eax) |
| ; X86: retl |