summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/x86-64-sret-return-2.ll
blob: 9f57ee1960e12d0b6496bbc005f3e67b2463b759 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; RUN: llc -mtriple=x86_64-apple-darwin8 < %s | FileCheck %s
; RUN: llc -mtriple=x86_64-pc-linux < %s | FileCheck %s

; FIXME: x32 doesn't know how to select this.  This isn't a regression, it never
; worked.
; RUNX: llc -mtriple=x86_64-pc-linux-gnux32 < %s | FileCheck -check-prefix=X32ABI %s

; This used to crash due to topological sorting issues in selection DAG.
define void @foo(i32* sret %agg.result, i32, i32, i32, i32, i32, void (i32)* %pred) {
entry:
  call void %pred(i32 undef)
  ret void

; CHECK-LABEL: foo:
; CHECK: callq
; CHECK: movq {{.*}}, %rax
; CHECK: ret
}