llvm-mirror/test
Chandler Carruth 9ef50ef1f7 Switch the lowering of CTLZ_ZERO_UNDEF from a .td pattern back to the
X86ISelLowering C++ code. Because this is lowered via an xor wrapped
around a bsr, we want the dagcombine which runs after isel lowering to
have a chance to clean things up. In particular, it is very common to
see code which looks like:

  (sizeof(x)*8 - 1) ^ __builtin_clz(x)

Which is trying to compute the most significant bit of 'x'. That's
actually the value computed directly by the 'bsr' instruction, but if we
match it too late, we'll get completely redundant xor instructions.

The more naive code for the above (subtracting rather than using an xor)
still isn't handled correctly due to the dagcombine getting confused.

Also, while here fix an issue spotted by inspection: we should have been
expanding the zero-undef variants to the normal variants when there is
an 'lzcnt' instruction. Do so, and test for this. We don't want to
generate unnecessary 'bsr' instructions.

These two changes fix some regressions in encoding and decoding
benchmarks. However, there is still a *lot* to be improve on in this
type of code.

llvm-svn: 147244
2011-12-24 10:55:54 +00:00
..
Analysis Make the unreachable probability much much heavier. The previous 2011-12-22 09:26:37 +00:00
Archive
Assembler Add an explicit test of the auto-upgrade functionality for the new 2011-12-12 11:23:11 +00:00
Bindings/Ocaml
Bitcode
BugPoint
CodeGen Switch the lowering of CTLZ_ZERO_UNDEF from a .td pattern back to the 2011-12-24 10:55:54 +00:00
DebugInfo When recursing for the original size of a type, stop if we are at a 2011-12-16 23:42:45 +00:00
ExecutionEngine
Feature The powers that be have decided that LLVM IR should now support 16-bit 2011-12-17 00:04:22 +00:00
Instrumentation/AddressSanitizer [asan] add a test for instrumenting globals 2011-12-16 01:28:19 +00:00
Integer
lib
Linker Now that PR11464 is fixed, reapply the patch to fix PR11464, 2011-12-20 00:12:26 +00:00
MC ARM VFP assembly parsing and encoding for VCVT(float <--> fixed point). 2011-12-22 22:19:05 +00:00
Object
Other Deleting the json-bench-test until I understand why it is flaky. 2011-12-17 06:29:32 +00:00
Scripts
TableGen
Transforms Move this test from date-name to feature-name, and port it to FileCheck. 2011-12-23 18:41:31 +00:00
Unit
Verifier Teach the verifier to reject all non-constant arguments to the second 2011-12-12 04:36:02 +00:00
CMakeLists.txt Adds a JSON parser and a benchmark (json-bench) to catch performance regressions. 2011-12-16 13:09:10 +00:00
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
site.exp.in
TestRunner.sh