llvm/test
Sanjay Patel 5c2d0848ab [x86] remove duplicate movq instruction defs (PR25554)
We had duplicated definitions for the same hardware '[v]movq' instructions. For example with SSE:

  def MOVZQI2PQIrr : RS2I<0x6E, MRMSrcReg, (outs VR128:$dst), (ins GR64:$src),
                     "mov{d|q}\t{$src, $dst|$dst, $src}", // X86-64 only
                     [(set VR128:$dst, (v2i64 (X86vzmovl (v2i64 (scalar_to_vector GR64:$src)))))],
                     IIC_SSE_MOVDQ>;

  def MOV64toPQIrr : RS2I<0x6E, MRMSrcReg, (outs VR128:$dst), (ins GR64:$src),
                     "mov{d|q}\t{$src, $dst|$dst, $src}",
                     [(set VR128:$dst, (v2i64 (scalar_to_vector GR64:$src)))],
                     IIC_SSE_MOVDQ>, Sched<[WriteMove]>;

As shown in the test case and PR25554:
https://llvm.org/bugs/show_bug.cgi?id=25554

This causes us to miss reusing an operand because later passes don't know these 'movq' are the same instruction.
This patch deletes one pair of these defs.
Sadly, this won't fix the original test case in the bug report. Something else is still broken.

Differential Revision: http://reviews.llvm.org/D14941



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253988 91177308-0d34-0410-b5e6-96231b3b80d8
2015-11-24 15:44:35 +00:00
..
Analysis Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
Assembler [IR] Add support for empty tokens 2015-11-11 21:57:16 +00:00
Bindings Disable Go bindings test with MSan, it has tons of linker errors 2015-11-19 00:05:20 +00:00
Bitcode Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
BugPoint [bugpoint] Add a named metadata (+their operands) reducer 2015-11-06 00:12:50 +00:00
CodeGen [x86] remove duplicate movq instruction defs (PR25554) 2015-11-24 15:44:35 +00:00
DebugInfo Removing specific target from the generic test 2015-11-19 12:24:47 +00:00
Examples
ExecutionEngine [RuntimeDyld] Don't allocate unnecessary stub buffer space 2015-11-23 21:47:51 +00:00
Feature [FunctionAttrs] Add handling for operand bundles 2015-11-07 01:56:00 +00:00
FileCheck
Instrumentation Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
Integer
JitListener DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LibDriver
Linker Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
LTO [LTO] Add options to llvm-lto to select output format and dump merged module 2015-11-20 00:13:05 +00:00
MC [mips] .ent and .end should also set the type and size of the symbol respectively. 2015-11-23 16:08:03 +00:00
Object Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
Other Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
SymbolRewriter
TableGen Add new vector types for 512-, 1024- and 2048-bit vectors 2015-11-24 13:07:35 +00:00
tools Add an already passing test. 2015-11-24 14:15:50 +00:00
Transforms Add a FunctionImporter helper to perform summary-based cross-module function importing 2015-11-24 06:07:49 +00:00
Unit
Verifier Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
YAMLParser
.clang-format
CMakeLists.txt sancov test suite 2015-11-12 19:34:21 +00:00
lit.cfg Disable Go bindings test with MSan, it has tons of linker errors 2015-11-19 00:05:20 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh