llvm-6502/test
Benjamin Kramer 66821d9020 InstCombine: Turn (zext A) == (B & (1<<X)-1) into A == (trunc B), narrowing the compare.
This saves a cast, and zext is more expensive on platforms with subreg support
than trunc is. This occurs in the BSD implementation of memchr(3), see PR12750.
On the synthetic benchmark from that bug stupid_memchr and bsd_memchr have the
same performance now when not inlining either function.

stupid_memchr: 323.0us
bsd_memchr: 321.0us
memchr: 479.0us

where memchr is the llvm-gcc compiled bsd_memchr from osx lion's libc. When
inlining is enabled bsd_memchr still regresses down to llvm-gcc memchr time,
I haven't fully understood the issue yet, something is grossly mangling the
loop after inlining.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158297 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-10 20:35:00 +00:00
..
Analysis SCEV: Handle a corner case reducing AddRecExpr * AddRecExpr 2012-05-30 03:35:20 +00:00
Archive
Assembler Add half support to LLVM (for OpenCL) 2012-05-24 15:59:06 +00:00
Bindings/Ocaml
Bitcode Add AutoUpgrade support for the SSE4 ptest intrinsics. 2012-06-10 18:42:51 +00:00
BugPoint
CodeGen Enable ILP scheduling for all nodes by default on PPC. 2012-06-10 19:32:29 +00:00
DebugInfo Add support for enum forward declarations. 2012-06-01 00:22:32 +00:00
ExecutionEngine Temporarily disabled the MCJIT tests for Darwin, because the RuntimeDyldMachO has a problems with relocations for 32bit x86. 2012-05-18 00:30:58 +00:00
Feature rdar://11542750 - llvm.trap should be marked no return. 2012-05-27 23:20:41 +00:00
Instrumentation [asan] instrument cmpxchg and atomicrmw 2012-05-30 09:04:06 +00:00
Integer remove two (useless) tests that use incorrect intrinsic prototypes, detected by the new intrinsic verifier. 2012-05-27 19:31:00 +00:00
Linker
MC Correct decoder for T1 conditional B encoding 2012-06-06 09:12:53 +00:00
Object
Other Teach the 'opt' tool about '-Os' and '-Oz', corresponding to the Clang 2012-05-16 08:32:49 +00:00
Scripts
TableGen Add support for range expressions in TableGen foreach loops. 2012-05-24 22:17:39 +00:00
Transforms InstCombine: Turn (zext A) == (B & (1<<X)-1) into A == (trunc B), narrowing the compare. 2012-06-10 20:35:00 +00:00
Unit
Verifier Use dominates(Instruction, Use) in the verifier. 2012-06-01 21:56:26 +00:00
YAMLParser
CMakeLists.txt - Added ExecutionEngine/MCJIT tests 2012-05-17 21:07:47 +00:00
lit.cfg
lit.site.cfg.in - Added ExecutionEngine/MCJIT tests 2012-05-17 21:07:47 +00:00
Makefile - Added ExecutionEngine/MCJIT tests 2012-05-17 21:07:47 +00:00
Makefile.tests
site.exp.in
TestRunner.sh