brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 4937c5c Raw
47 lines · plain
1; RUN: llc < %s -mtriple=i686-pc-linux -mcpu=corei7 | FileCheck --check-prefix=DAG %s2; RUN: llc < %s -mtriple=i686-pc-linux -mcpu=corei7 -O0 | FileCheck --check-prefix=FAST %s3 4%struct.s1 = type { double, float }5 6define void @g1() nounwind {7entry:8  %tmp = alloca %struct.s1, align 49  call void @f(ptr inreg sret(%struct.s1) %tmp, i32 inreg 41, i32 inreg 42, i32 43)10  ret void11  ; DAG-LABEL: g1:12  ; DAG: subl $[[AMT:.*]], %esp13  ; DAG-NEXT: $43, (%esp)14  ; DAG-NEXT: leal    16(%esp), %eax15  ; DAG-NEXT: movl    $41, %edx16  ; DAG-NEXT: movl    $42, %ecx17  ; DAG-NEXT: calll   f18  ; DAG-NEXT: addl $[[AMT]], %esp19  ; DAG-NEXT: ret20 21  ; FAST-LABEL: g1:22  ; FAST: subl $[[AMT:.*]], %esp23  ; FAST-NEXT: leal    16(%esp), %eax24  ; FAST-NEXT: movl    $41, %edx25  ; FAST-NEXT: movl    $42, %ecx26  ; FAST: $43, (%esp)27  ; FAST: calll   f28  ; FAST-NEXT: addl $[[AMT]], %esp29  ; FAST: ret30}31 32declare void @f(ptr inreg sret(%struct.s1), i32 inreg, i32 inreg, i32)33 34%struct.s2 = type {}35 36define void @g2(ptr inreg sret(%struct.s2) %agg.result) nounwind {37entry:38  ret void39  ; DAG: g240  ; DAG-NOT: ret $441  ; DAG: .size g242 43  ; FAST: g244  ; FAST-NOT: ret $445  ; FAST: .size g246}47