From f61c631b25c211d5fa487d2e964f7df94a70e61f Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Fri, 6 Jul 2018 18:47:57 +0000 Subject: [PATCH] [X86] Remove patterns for MOVLPD/MOVLPS nodes with integer types. Lowering shouldn't generate these. If we need to use them for integer types, it should use a bitcast. llvm-svn: 336458 --- llvm/lib/Target/X86/X86InstrSSE.td | 8 -------- 1 file changed, 8 deletions(-) diff --git a/llvm/lib/Target/X86/X86InstrSSE.td b/llvm/lib/Target/X86/X86InstrSSE.td index 75c7e32..fe7c6e9 100644 --- a/llvm/lib/Target/X86/X86InstrSSE.td +++ b/llvm/lib/Target/X86/X86InstrSSE.td @@ -314,12 +314,8 @@ let Predicates = [UseAVX] in { // fold opportunity reappears. def : Pat<(v2f64 (X86Movlpd VR128:$src1, VR128:$src2)), (VMOVSDrr VR128:$src1, VR128:$src2)>; - def : Pat<(v2i64 (X86Movlpd VR128:$src1, VR128:$src2)), - (VMOVSDrr VR128:$src1, VR128:$src2)>; def : Pat<(v4f32 (X86Movlps VR128:$src1, VR128:$src2)), (VMOVSDrr VR128:$src1, VR128:$src2)>; - def : Pat<(v4i32 (X86Movlps VR128:$src1, VR128:$src2)), - (VMOVSDrr VR128:$src1, VR128:$src2)>; } let Predicates = [UseSSE1] in { @@ -392,12 +388,8 @@ let Predicates = [UseSSE2] in { // fold opportunity reappears. def : Pat<(v2f64 (X86Movlpd VR128:$src1, VR128:$src2)), (MOVSDrr VR128:$src1, VR128:$src2)>; - def : Pat<(v2i64 (X86Movlpd VR128:$src1, VR128:$src2)), - (MOVSDrr VR128:$src1, VR128:$src2)>; def : Pat<(v4f32 (X86Movlps VR128:$src1, VR128:$src2)), (MOVSDrr VR128:$src1, VR128:$src2)>; - def : Pat<(v4i32 (X86Movlps VR128:$src1, VR128:$src2)), - (MOVSDrr VR128:$src1, VR128:$src2)>; } // Aliases to help the assembler pick two byte VEX encodings by swapping the -- 2.7.4