From 71f1c643201bf48a6fe5593abd110652ce0acde8 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Tue, 27 Sep 2016 06:44:30 +0000 Subject: [PATCH] [X86] Add test case for PR30511 and r282341. llvm-svn: 282473 --- llvm/test/CodeGen/X86/pr30511.ll | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 llvm/test/CodeGen/X86/pr30511.ll diff --git a/llvm/test/CodeGen/X86/pr30511.ll b/llvm/test/CodeGen/X86/pr30511.ll new file mode 100644 index 000000000000..1999ca2dd50e --- /dev/null +++ b/llvm/test/CodeGen/X86/pr30511.ll @@ -0,0 +1,23 @@ +; RUN: llc < %s -mtriple=x86_64-pc-linux-gnu | FileCheck %s + +target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-pc-linux-gnu" + +define i64 @PR30511(<2 x double> %a) { +; CHECK: # BB#0: +; CHECK-NEXT: addpd {{.*}}(%rip), %xmm0 +; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3] +; CHECK-NEXT: cvtdq2pd %xmm0, %xmm0 +; CHECK-NEXT: mulpd {{.*}}(%rip), %xmm0 +; CHECK-NEXT: movd %xmm0, %rax +; CHECK-NEXT: retq + %1 = fadd <2 x double> %a, + %2 = bitcast <2 x double> %1 to <2 x i64> + %3 = trunc <2 x i64> %2 to <2 x i32> + %4 = sitofp <2 x i32> %3 to <2 x double> + %5 = fmul <2 x double> %4, + %6 = extractelement <2 x double> %5, i32 0 + %7 = bitcast double %6 to i64 + ret i64 %7 +} +