1; RUN: llc -mtriple=x86_64-apple-darwin8 < %s | FileCheck %s --check-prefix=X64 2; RUN: llc -mtriple=x86_64-pc-linux < %s | FileCheck %s --check-prefix=X64 3; RUN: llc -mtriple=i686-pc-linux < %s | FileCheck %s --check-prefix=X86 4; RUN: llc -mtriple=x86_64-apple-darwin8 -terminal-rule < %s | FileCheck %s --check-prefix=X64 5; RUN: llc -mtriple=x86_64-pc-linux -terminal-rule < %s | FileCheck %s --check-prefix=X64 6 7define void @sret_void(ptr sret(i32) %p) { 8 store i32 0, ptr %p 9 ret void 10} 11 12; X64-LABEL: sret_void 13; X64-DAG: movq %rdi, %rax 14; X64-DAG: movl $0, (%rdi) 15; X64: retq 16 17; X86-LABEL: sret_void 18; X86: movl 4(%esp), %eax 19; X86: movl $0, (%eax) 20; X86: retl 21 22define i256 @sret_demoted() { 23 ret i256 0 24} 25 26; X64-LABEL: sret_demoted 27; X64-DAG: movq %rdi, %rax 28; X64-DAG: xorps %xmm0, %xmm0 29; X64-DAG: movaps %xmm0, (%rdi) 30; X64: retq 31 32; X86-LABEL: sret_demoted 33; X86: movl 4(%esp), %eax 34; X86: movl $0, (%eax) 35; X86: retl 36