llvm-6502/test
Hal Finkel ae4f3f6820 Fix register subclass handling in PPCInstrInfo::insertSelect
PPCInstrInfo::insertSelect and PPCInstrInfo::canInsertSelect were computing the
common subclass of the true and false inputs, and then selecting either the
32-bit or the 64-bit isel variant based on the result of calling
PPC::GPRCRegClass.hasSubClassEq(RC) and PPC::G8RCRegClass.hasSubClassEq(RC)
(where RC is the common subclass). Unfortunately, this is not quite right: if
we have something like this:

  %vreg8<def> = SELECT_CC_I8 %vreg4<kill>, %vreg7<kill>, %vreg6<kill>, 76;
    G8RC_and_G8RC_NOX0:%vreg8 CRRC:%vreg4 G8RC_NOX0:%vreg7,%vreg6

then the common subclass of G8RC_and_G8RC_NOX0 and G8RC_NOX0 is G8RC_NOX0, and
G8RC_NOX0 is not a subclass of G8RC (because it also contains the ZERO8
pseudo-register). As a result, we also need to check the common subclass
against GPRC_NOR0 and G8RC_NOX0 explicitly.

This had not been a problem for clients of insertSelect that called
canInsertSelect first (because it had a compensating mistake), but insertSelect
is also used by the PPC pseudo-instruction expander, and this error was causing
a problem in that context.

This problem was found by csmith.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186343 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-15 20:22:58 +00:00
..
Analysis Add newlines at end of test files, no functionality change 2013-07-13 22:00:58 +00:00
Assembler
Bindings/Ocaml Fix %t typo in Ocaml bindings test. 2013-07-10 18:55:06 +00:00
Bitcode
BugPoint
CodeGen Fix register subclass handling in PPCInstrInfo::insertSelect 2013-07-15 20:22:58 +00:00
DebugInfo In response to dblaikie's comment on r186035, replacing the 2013-07-11 21:16:14 +00:00
ExecutionEngine Add newlines at end of test files, no functionality change 2013-07-13 22:00:58 +00:00
Feature
FileCheck Add new directive called CHECK-LABEL to FileCheck. 2013-07-12 14:51:05 +00:00
Instrumentation
Integer
JitListener
Linker
MC [mc-coff] Resolve aliases when emitting COFF relocations 2013-07-15 19:41:21 +00:00
Object XFAIL this on freebsd to bring the bot back. 2013-07-15 12:18:30 +00:00
Other Move r186044 tests into CodeGen/X86 2013-07-11 01:55:55 +00:00
TableGen
tools
Transforms Revert r186316 while I track down an ASan failure and an assert from 2013-07-15 17:36:21 +00:00
Unit
Verifier
YAMLParser
CMakeLists.txt
lit.cfg Add the ability to use guarded malloc when running llvm lit tests. 2013-07-11 23:36:57 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh