From 941593b0ca91a3e4d85b3134ae7228c6cb45e25b 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282473 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGen/X86/pr30511.ll | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 test/CodeGen/X86/pr30511.ll diff --git a/test/CodeGen/X86/pr30511.ll b/test/CodeGen/X86/pr30511.ll new file mode 100644 index 00000000000..1999ca2dd50 --- /dev/null +++ b/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 +} + -- 2.50.1