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 Fix test: It was missing run lines and llvm-dis has no -disable-verify option. 2013-07-03 16:27:55 +00:00
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 Add a new function attribute 'cold' to functions. 2013-05-24 12:26:52 +00:00
FileCheck Add new directive called CHECK-LABEL to FileCheck. 2013-07-12 14:51:05 +00:00
Instrumentation [msan] Unpoison stack allocations and undef values in blacklisted functions. 2013-07-03 14:39:14 +00:00
Integer
JitListener
Linker Extend RemapInstruction and friends to take an optional new parameter, a ValueMaterializer. 2013-05-28 15:17:05 +00:00
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 Revert: Fix wrong code offset for unwind code SET_FPREG. 2013-07-08 04:48:34 +00:00
Transforms Revert r186316 while I track down an ASan failure and an assert from 2013-07-15 17:36:21 +00:00
Unit
Verifier Also verify llvm.compiler_used. 2013-04-22 15:16:51 +00:00
YAMLParser
CMakeLists.txt llvm/test/CMakeLists.txt: Add llvm-cov in "check-clang". 2013-07-08 08:44:36 +00:00
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 Allow host triple to be correctly overridden in CMake builds 2013-05-04 07:36:23 +00:00
Makefile add polly to check-all 2013-05-20 18:49:15 +00:00
Makefile.tests
TestRunner.sh