llvm-6502/test
Filipe Cabecinhas c5f611404c Convert some X86 blendv* intrinsics into IR.
Summary:
Implemented an InstCombine transformation that takes a blendv* intrinsic
call and translates it into an IR select, if the mask is constant.

This will eventually get lowered into blends with immediates if possible,
or pblendvb (with an option to further optimize if we can transform the
pblendvb into a blend+immediate instruction, depending on the selector).
It will also enable optimizations by the IR passes, which give up on
sight of the intrinsic.

Both the transformation and the lowering of its result to asm got shiny
new tests.

The transformation is a bit convoluted because of blendvp[sd]'s
definition:

Its mask is a floating point value! This forces us to convert it and get
the highest bit. I suppose this happened because the mask has type
__m128 in Intel's intrinsic and v4sf (for blendps) in gcc's builtin.

I will send an email to llvm-dev to discuss if we want to change this or
not.

Reviewers: grosbach, delena, nadav

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209643 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-27 03:42:20 +00:00
..
Analysis AArch64/ARM64: move ARM64 into AArch64's place 2014-05-24 12:50:23 +00:00
Assembler
Bindings
Bitcode Add 'nonnull', a new parameter and return attribute which indicates that the pointer is not null. Instcombine will elide comparisons between these and null. Patch by Luqman Aden! 2014-05-20 01:23:40 +00:00
BugPoint
CodeGen Convert some X86 blendv* intrinsics into IR. 2014-05-27 03:42:20 +00:00
DebugInfo DebugInfo: Test linkonce-odr functions under LTO. 2014-05-26 06:44:52 +00:00
ExecutionEngine Fix testers by removing dubious testcase for r209154. 2014-05-19 19:38:48 +00:00
Feature
FileCheck
Instrumentation [asan] properly instrument memory accesses that have small alignment (smaller than min(8,size)) by making two checks instead of one. This may slowdown some cases, e.g. long long on 32-bit or wide loads produced after loop unrolling. The benefit is higher sencitivity. 2014-05-23 11:52:07 +00:00
Integer
JitListener
Linker DebugInfo: Generalize some tests to handle variations in attribute ordering. 2014-05-23 21:11:46 +00:00
LTO
MC AArch64/ARM64: move ARM64 into AArch64's place 2014-05-24 12:50:23 +00:00
Object llvm/test/Object/ar-error.test: Don't check the message "No such file or directory". 2014-05-24 08:47:11 +00:00
Other
TableGen
tools
Transforms Convert some X86 blendv* intrinsics into IR. 2014-05-27 03:42:20 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt OK, NAKAMURA Takumi beat me to this change. So backing out my addition of 2014-05-19 23:26:51 +00:00
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh