From 888b18156656072faa8ef151a234aed383f9d410 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sun, 2 Apr 2017 16:20:34 +0000 Subject: [PATCH] [X86][MMX] Simplify tablegen patterns by always combining MOVDQ2Q from v2i64 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@299336 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86ISelLowering.cpp | 3 ++- test/CodeGen/X86/mmx-cvt.ll | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 7eecd2410fe..567eae52236 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -28965,7 +28965,8 @@ static SDValue combineBitcast(SDNode *N, SelectionDAG &DAG, isNullConstant(N0.getOperand(1))) { SDValue N00 = N0->getOperand(0); if (N00.getValueType().is128BitVector()) - return DAG.getNode(X86ISD::MOVDQ2Q, SDLoc(N00), VT, N00); + return DAG.getNode(X86ISD::MOVDQ2Q, SDLoc(N00), VT, + DAG.getBitcast(MVT::v2i64, N00)); } // Convert a bitcasted integer logic operation that has one bitcasted diff --git a/test/CodeGen/X86/mmx-cvt.ll b/test/CodeGen/X86/mmx-cvt.ll index 83cab9610bb..80876a87de7 100644 --- a/test/CodeGen/X86/mmx-cvt.ll +++ b/test/CodeGen/X86/mmx-cvt.ll @@ -195,8 +195,7 @@ define void @fptosi_v4f32_v4i32(<4 x float>, <1 x i64>*) nounwind { ; X86-NEXT: andl $-8, %esp ; X86-NEXT: subl $8, %esp ; X86-NEXT: movl 8(%ebp), %eax -; X86-NEXT: cvttps2dq %xmm0, %xmm0 -; X86-NEXT: movdq2q %xmm0, %mm0 +; X86-NEXT: cvttps2pi %xmm0, %mm0 ; X86-NEXT: paddd %mm0, %mm0 ; X86-NEXT: movq %mm0, (%esp) ; X86-NEXT: movl (%esp), %ecx @@ -209,8 +208,7 @@ define void @fptosi_v4f32_v4i32(<4 x float>, <1 x i64>*) nounwind { ; ; X64-LABEL: fptosi_v4f32_v4i32: ; X64: # BB#0: -; X64-NEXT: cvttps2dq %xmm0, %xmm0 -; X64-NEXT: movdq2q %xmm0, %mm0 +; X64-NEXT: cvttps2pi %xmm0, %mm0 ; X64-NEXT: paddd %mm0, %mm0 ; X64-NEXT: movq %mm0, (%rdi) ; X64-NEXT: retq -- 2.11.0