| ; RUN: llc < %s -mtriple=i686-- | FileCheck %s | |
| define void @ccosl({ x86_fp80, x86_fp80 }* noalias sret %agg.result, { x86_fp80, x86_fp80 } %z) nounwind { | |
| entry: | |
| %z8 = extractvalue { x86_fp80, x86_fp80 } %z, 0 | |
| %z9 = extractvalue { x86_fp80, x86_fp80 } %z, 1 | |
| %0 = fsub x86_fp80 0xK80000000000000000000, %z9 | |
| %insert = insertvalue { x86_fp80, x86_fp80 } undef, x86_fp80 %0, 0 | |
| %insert7 = insertvalue { x86_fp80, x86_fp80 } %insert, x86_fp80 %z8, 1 | |
| call void @ccoshl({ x86_fp80, x86_fp80 }* noalias sret %agg.result, { x86_fp80, x86_fp80 } %insert7) nounwind | |
| ret void | |
| } | |
| ; CHECK-LABEL: ccosl: | |
| ; CHECK: movl {{[0-9]+}}(%esp), %[[sret_reg:[^ ]+]] | |
| ; CHECK: movl %[[sret_reg]], (%esp) | |
| ; CHECK: calll {{.*ccoshl.*}} | |
| ; CHECK: movl %[[sret_reg]], %eax | |
| ; CHECK: retl | |
| declare void @ccoshl({ x86_fp80, x86_fp80 }* noalias sret, { x86_fp80, x86_fp80 }) nounwind |