1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/lib
Sanjay Patel 4d045a2e91 [x86, InstCombine] transform x86 AVX masked loads to LLVM intrinsics
The intended effect of this patch in conjunction with:
http://reviews.llvm.org/rL259392
http://reviews.llvm.org/rL260145

is that customers using the AVX intrinsics in C will benefit from combines when
the load mask is constant:

__m128 mload_zeros(float *f) {
  return _mm_maskload_ps(f, _mm_set1_epi32(0));
}

__m128 mload_fakeones(float *f) {
  return _mm_maskload_ps(f, _mm_set1_epi32(1));
}

__m128 mload_ones(float *f) {
  return _mm_maskload_ps(f, _mm_set1_epi32(0x80000000));
}

__m128 mload_oneset(float *f) {
  return _mm_maskload_ps(f, _mm_set_epi32(0x80000000, 0, 0, 0));
}

...so none of the above will actually generate a masked load for optimized code.

This is the masked load counterpart to:
http://reviews.llvm.org/rL262064

llvm-svn: 262269
2016-02-29 23:16:48 +00:00
..
Analysis [InstSimplify] Restore fsub 0.0, (fsub 0.0, X) ==> X optzn 2016-02-29 12:18:25 +00:00
AsmParser [IR] Extend cmpxchg to allow pointer type operands 2016-02-19 00:06:41 +00:00
Bitcode [ThinLTO] Add missing breaks when parsing summaries (NFC) 2016-02-24 17:57:28 +00:00
CodeGen Improve the debug output of DwarfDebug::buildLocationList(). 2016-02-29 22:28:22 +00:00
DebugInfo [DebugInfoPDB] Add source / line number accessors for PDB. 2016-02-18 18:47:29 +00:00
ExecutionEngine [Orc] Add stack-realignment code to the i386 resolver function. 2016-02-21 22:50:26 +00:00
Fuzzer [libFuzzer] fixing the bot 2016-02-27 03:14:23 +00:00
IR [Verifier] Handle more funclet edge cases 2016-02-29 22:56:36 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LibDriver Remove autoconf support 2016-01-26 21:29:08 +00:00
LineEditor Remove autoconf support 2016-01-26 21:29:08 +00:00
Linker Pass a std::unique_ptr to IRMover::move. 2016-02-16 18:50:12 +00:00
LTO [PM] Port the PostOrderFunctionAttrs pass to the new pass manager and 2016-02-18 11:03:11 +00:00
MC Add capability to push/pop DFI in MCStreamer. NFC 2016-02-24 22:25:18 +00:00
Object Rename embedded bitcode section in MachO 2016-02-29 19:40:10 +00:00
Option Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
Passes [PM] Wire up optimization levels and default pipeline construction APIs 2016-02-28 22:16:03 +00:00
ProfileData Add prefix based function layout when profile is available. 2016-02-23 03:39:24 +00:00
Support [CMAKE] Update build on recent Haiku 2016-02-26 17:01:45 +00:00
TableGen [TableGen] Fix typos in comments. NFC 2016-02-26 06:50:27 +00:00
Target Simplify some boolean conditional return statements in AArch64. 2016-02-29 22:50:49 +00:00
Transforms [x86, InstCombine] transform x86 AVX masked loads to LLVM intrinsics 2016-02-29 23:16:48 +00:00
CMakeLists.txt
LLVMBuild.txt