1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 14:33:02 +02:00
llvm-mirror/lib/Transforms
Simon Pilgrim 95228d060e [InstCombine] Improve Vector Demanded Bits Through Bitcasts
Currently SimplifyDemandedVectorElts can only peek through bitcasts if the vectors have the same number of elements.

This patch fixes and enables some existing (disabled) code to support bitcasting to vectors with more/fewer elements. It currently only accepts cases when vectors alias cleanly (i.e. number of elements are an exact multiple of the other vector).

This was added to improve the demanded vector elements support for SSE vector shifts which require the __m128i (<2 x i64>) argument type to be bitcast to the vector type for the builtin shift. I've added extra tests for various additional bitcasts.

Differential Revision: http://reviews.llvm.org/D12935

llvm-svn: 248784
2015-09-29 08:19:11 +00:00
..
Hello Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
InstCombine [InstCombine] Improve Vector Demanded Bits Through Bitcasts 2015-09-29 08:19:11 +00:00
Instrumentation [safestack] Fix compiler crash in the presence of stack restores. 2015-09-24 01:23:51 +00:00
IPO Move dbg.declare intrinsics when merging and replacing allocas. 2015-09-29 00:30:19 +00:00
ObjCARC [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
Scalar [LoopUnswitch] Add block frequency analysis to recognize hot/cold regions 2015-09-29 05:03:32 +00:00
Utils Move dbg.declare intrinsics when merging and replacing allocas. 2015-09-29 00:30:19 +00:00
Vectorize [SCEV] Introduce ScalarEvolution::getOne and getZero. 2015-09-23 01:59:04 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile