| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
with other code related to shuffles and easier to implement in compiled code.
llvm-svn: 172788
|
|
|
|
| |
llvm-svn: 172784
|
|
|
|
|
|
| |
with a constant zero.
llvm-svn: 172576
|
|
|
|
|
|
|
|
|
|
|
|
| |
An obfuscated splat is where the frontend poorly generates code for a splat
using several different shuffles to create the splat, i.e.,
%A = load <4 x float>* %in_ptr, align 16
%B = shufflevector <4 x float> %A, <4 x float> undef, <4 x i32> <i32 0, i32 0, i32 undef, i32 undef>
%C = shufflevector <4 x float> %B, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 4, i32 undef>
%D = shufflevector <4 x float> %C, <4 x float> %A, <4 x i32> <i32 0, i32 1, i32 2, i32 4>
llvm-svn: 166061
|
|
|
|
|
|
|
| |
we should (theoretically optimize and codegen ConstantDataVector as well
as ConstantVector.
llvm-svn: 149116
|
|
|
|
| |
llvm-svn: 149006
|
|
|
|
| |
llvm-svn: 148806
|
|
|
|
|
|
| |
expensive helper.
llvm-svn: 142672
|
|
|
|
|
|
| |
the input and output vectors have different sizes. Patch by Xiaoyi Guo.
llvm-svn: 142671
|
|
|
|
| |
llvm-svn: 135375
|
|
|
|
| |
llvm-svn: 128683
|
|
|
|
|
|
|
| |
the instruction passed in. Make sure to account for this correctly, instead
of looping infinitely.
llvm-svn: 126058
|
|
|
|
|
|
| |
setAllBits(), setBit(unsigned), etc.
llvm-svn: 120564
|
|
|
|
| |
llvm-svn: 117728
|
|
|
|
| |
llvm-svn: 117727
|
|
|
|
| |
llvm-svn: 117722
|
|
|
|
|
|
|
|
| |
This code had previously used 2*N, where N is the mask length, to represent
undef. That is not safe because the shufflevector operands may have more
than N elements -- they don't have to match the result type.
llvm-svn: 117721
|
|
|
|
|
|
|
|
| |
Allow splats even if they don't match either of the original shuffles,
possibly due to undef entries in the shuffles masks. Radar 8597790.
Also fix some 80-column violations.
llvm-svn: 117719
|
|
|
|
|
|
| |
vector heavy code. I'll re-enable when we've tracked down the problem.
llvm-svn: 111318
|
|
|
|
|
|
| |
it previously failed.
llvm-svn: 110987
|
|
|
|
|
|
| |
in an external testsuite.
llvm-svn: 110905
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to recognize
patterns generated by clang for transpose of a matrix in generic vectors. This is made
of two parts:
1) Propagating vector extracts of hi/lo half into their users
2) Recognizing an insertion of even elements followed by the odd elements as an unpack.
Testcase to come, but this shrinks the # of shuffle instructions generated on x86 from ~40 to the minimal 8.
llvm-svn: 110734
|
|
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
|
|
|
| |
llvm-svn: 95616
|
|
|
|
| |
llvm-svn: 92684
|
|
llvm-svn: 92683
|