llvm-6502/test
Kai Nacke a5950e0149 PR16726: extend rol/ror matching
C-like languages promote types like unsigned short to unsigned int before
performing an arithmetic operation. Currently the rotate matcher in the
DAGCombiner does not consider this situation.

This commit extends the DAGCombiner in the way that the pattern

(or (shl ([az]ext x), (*ext y)), (srl ([az]ext x), (*ext (sub 32, y))))

is folded into

([az]ext (rotl x, y))

The matching is restricted to aext and zext because in this cases the upper
bits are either undefined or known. Test case is included.

This fixes PR16726.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191045 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-19 22:36:39 +00:00
..
Analysis X86 horizontal vector reduction cost model 2013-09-19 17:48:48 +00:00
Assembler Remove verifier check that attribute 'builtin' is only applied to calls to 2013-09-07 00:25:48 +00:00
Bindings/Ocaml [PR11606] ocaml bindings tests produce binaries in source dir 2013-08-23 00:55:32 +00:00
Bitcode Patch provide by Tom Roeder! 2013-09-12 22:02:31 +00:00
BugPoint [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
CodeGen PR16726: extend rol/ror matching 2013-09-19 22:36:39 +00:00
DebugInfo DebugInfo: Improve IR annotation comments for GNU pubthings. 2013-09-19 22:19:37 +00:00
ExecutionEngine Add "native" to config.available_features, to make it easier to disable non-x-compile-safe tests 2013-09-13 10:59:01 +00:00
Feature Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
FileCheck [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
Instrumentation [msan] Wrap indirect functions. 2013-09-19 15:22:35 +00:00
Integer [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
JitListener Debug Info Testing: updated to use NULL instead of "i32 0" in a few fields. 2013-09-06 21:03:58 +00:00
Linker Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
MC [ARMv8] Add support for the v8 cryptography extensions. 2013-09-19 11:59:01 +00:00
Object Add a minimal implementation of ranlib. 2013-08-28 16:22:16 +00:00
Other Update to remove the no-frame-pointer-elim-non-leaf flag if it was set to 'false'. 2013-08-22 21:28:54 +00:00
TableGen FileCheckize some tests. 2013-08-22 20:46:05 +00:00
tools Fix LTO handling of module-level assembly (PR14152). 2013-09-19 22:15:52 +00:00
Transforms [Fast-math] Disable "(C1/X)*C2 => (C1*C2)/X" if C1/X has multiple uses. 2013-09-19 21:13:46 +00:00
Unit [tests] Update to use lit_config and lit package, as appropriate. 2013-08-09 16:22:05 +00:00
Verifier [tests] Cleanup initialization of test suffixes. 2013-08-16 00:37:11 +00:00
YAMLParser
CMakeLists.txt Fix LTO handling of module-level assembly (PR14152). 2013-09-19 22:15:52 +00:00
lit.cfg Fix LTO handling of module-level assembly (PR14152). 2013-09-19 22:15:52 +00:00
lit.site.cfg.in Fix LTO handling of module-level assembly (PR14152). 2013-09-19 22:15:52 +00:00
Makefile Fix LTO handling of module-level assembly (PR14152). 2013-09-19 22:15:52 +00:00
Makefile.tests Remove dead code from the makefile build system. 2013-07-25 20:25:31 +00:00
TestRunner.sh