Mercurial > hg > CbC > CbC_llvm
diff test/CodeGen/X86/sret-implicit.ll @ 95:afa8332a0e37 LLVM3.8
LLVM 3.8
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 13 Oct 2015 17:48:58 +0900 |
parents | 60c9769439b8 |
children | c2174574ed3a |
line wrap: on
line diff
--- a/test/CodeGen/X86/sret-implicit.ll Wed Feb 18 14:56:07 2015 +0900 +++ b/test/CodeGen/X86/sret-implicit.ll Tue Oct 13 17:48:58 2015 +0900 @@ -1,10 +1,34 @@ -; RUN: llc -mtriple=x86_64-apple-darwin8 < %s | FileCheck %s -; RUN: llc -mtriple=x86_64-pc-linux < %s | FileCheck %s +; 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 +} -; CHECK-LABEL: return32 -; CHECK-DAG: movq $0, (%rdi) -; CHECK-DAG: movq %rdi, %rax -; CHECK: retq -define i256 @return32() { +; 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