[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / X86 / complex-fca.ll
blobd1da121213d4943477da05a06f2eba36c741b97e
1 ; RUN: llc < %s -mtriple=i686-- | FileCheck %s
3 define void @ccosl({ x86_fp80, x86_fp80 }* noalias sret %agg.result, { x86_fp80, x86_fp80 } %z) nounwind {
4 entry:
5   %z8 = extractvalue { x86_fp80, x86_fp80 } %z, 0
6   %z9 = extractvalue { x86_fp80, x86_fp80 } %z, 1
7   %0 = fsub x86_fp80 0xK80000000000000000000, %z9
8   %insert = insertvalue { x86_fp80, x86_fp80 } undef, x86_fp80 %0, 0
9   %insert7 = insertvalue { x86_fp80, x86_fp80 } %insert, x86_fp80 %z8, 1
10   call void @ccoshl({ x86_fp80, x86_fp80 }* noalias sret %agg.result, { x86_fp80, x86_fp80 } %insert7) nounwind
11   ret void
14 ; CHECK-LABEL: ccosl:
15 ; CHECK:         movl    {{[0-9]+}}(%esp), %[[sret_reg:[^ ]+]]
16 ; CHECK:         movl    %[[sret_reg]], (%esp)
17 ; CHECK:         calll   {{.*ccoshl.*}}
18 ; CHECK:         movl    %[[sret_reg]], %eax
19 ; CHECK:         retl
21 declare void @ccoshl({ x86_fp80, x86_fp80 }* noalias sret, { x86_fp80, x86_fp80 }) nounwind