1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test
Chandler Carruth e6fc612338 [x86] Rewrite the byte shift detection to not use boolean variables to
track state.

I didn't like this in the code review because the pattern tends to be
error prone, but I didn't see a clear way to rewrite it. Turns out that
there were bugs here, I found them when fuzz testing our shuffle
lowering for correctness on x86.

The core of the problem is that we need to consistently test all our
preconditions for the same directionality of shift and the same input
vector. Instead, formulate this as two predicates (one doesn't depend on
the input in any way), pass things like the directionality and input
vector as inputs, and loop over the alternatives.

This fixes a pattern of very rare miscompiles coming out of this code.
Turned up roughly 4 out of every 1 million v8 shuffles in my fuzz
testing. The new code is over half a million test runs with no failures
yet. I've also fuzzed every other function in the lowering code with
over 3.5 million test cases and not discovered any other miscompiles.

llvm-svn: 229642
2015-02-18 07:13:48 +00:00
..
Analysis [LoopAccesses] Add -analyze support 2015-02-18 03:44:30 +00:00
Assembler ConstantFold: Properly fold GEP indices wider than i64 2015-02-16 19:10:02 +00:00
Bindings
Bitcode [Bitcode reader] Fix a few assertions when reading invalid files 2015-02-16 00:03:11 +00:00
BugPoint
CodeGen [x86] Rewrite the byte shift detection to not use boolean variables to 2015-02-18 07:13:48 +00:00
DebugInfo
ExecutionEngine
Feature
FileCheck
Instrumentation
Integer
JitListener
Linker
LTO
MC Add testcases I missed in r229541. 2015-02-17 20:50:39 +00:00
Object [Object] Support reading 64-bit MIPS ELF archives 2015-02-17 18:54:22 +00:00
Other
SymbolRewriter
TableGen
tools Add code to llvm-objdump so the -section option with -macho will dump literal pointer sections 2015-02-17 21:35:48 +00:00
Transforms [LoopAccesses] Modify test to also check symbolic strides with memchecks 2015-02-18 03:43:32 +00:00
Unit
Verifier AsmParser: Reject alloca with function type 2015-02-16 08:38:03 +00:00
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh