diff options
Diffstat (limited to 'test/CodeGen/X86/complex-fca.ll')
-rw-r--r-- | test/CodeGen/X86/complex-fca.ll | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/test/CodeGen/X86/complex-fca.ll b/test/CodeGen/X86/complex-fca.ll index 8ad38a4ee5c..78b27b7dc3f 100644 --- a/test/CodeGen/X86/complex-fca.ll +++ b/test/CodeGen/X86/complex-fca.ll @@ -1,17 +1,21 @@ -; RUN: llc < %s -march=x86 | grep mov | count 2 - -; Skip this on Windows as there is no ccosl and sret behaves differently. -; XFAIL: pc-win32 +; RUN: llc < %s -march=x86 | 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 + %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 |