- Aug 09, 2011
-
-
Bruno Cardoso Lopes authored
llvm-svn: 137090
-
- Aug 08, 2011
-
-
Bruno Cardoso Lopes authored
llvm-svn: 137067
-
- Aug 04, 2011
-
-
Evan Cheng authored
llvm-svn: 136899
-
Bill Wendling authored
Fixes PR10527. llvm-svn: 136853
-
- Aug 03, 2011
-
-
Benjamin Kramer authored
llvm-svn: 136803
-
- Aug 02, 2011
-
-
Eli Friedman authored
The testcase looks extremely fragile, so I'm adding an assertion which should catch any cases like this. llvm-svn: 136711
-
Bruno Cardoso Lopes authored
shuffle (scalar_to_vector (load (ptr + 4))), undef, <0, 0, 0, 0> To: shuffle (vload ptr)), undef, <1, 1, 1, 1> Fix PR10494 llvm-svn: 136691
-
- Aug 01, 2011
-
-
Bruno Cardoso Lopes authored
the legalizer. This commit together with the two previous ones fixes PR10495. llvm-svn: 136654
-
Bruno Cardoso Lopes authored
llvm-svn: 136653
-
Bruno Cardoso Lopes authored
using a stack store. llvm-svn: 136652
-
Bruno Cardoso Lopes authored
avoid returning early for v8i32 types, which would only be valid for vector with all zeros. Also split the handling of zeros and ones into separate checking logic since they are handled differently. This fixes PR10547 llvm-svn: 136642
-
- Jul 29, 2011
-
-
Eli Friedman authored
working on x86 (at least for trivial testcases); other architectures will need more work so that they actually emit the appropriate instructions for orderings stricter than 'monotonic'. (As far as I can tell, the ARM, PPC, Mips, and Alpha backends need such changes.) llvm-svn: 136457
-
Bruno Cardoso Lopes authored
on the second half must be reindexed. llvm-svn: 136454
-
Bruno Cardoso Lopes authored
generation to always catch the weird cases. llvm-svn: 136453
-
Bruno Cardoso Lopes authored
llvm-svn: 136452
-
Bruno Cardoso Lopes authored
undef mask elements. This fixes PR10529. llvm-svn: 136450
-
Bruno Cardoso Lopes authored
Also tidy up code a bit. llvm-svn: 136449
-
Bruno Cardoso Lopes authored
Also make PALIGNR masks to don't match 256-bits, which isn't supported It's also a step to solve PR10489 llvm-svn: 136448
-
- Jul 28, 2011
-
-
Bruno Cardoso Lopes authored
llvm-svn: 136324
-
Bruno Cardoso Lopes authored
a convert pattern close to the instruction definition. llvm-svn: 136320
-
Eli Friedman authored
llvm-svn: 136283
-
- Jul 27, 2011
-
-
Jeffrey Yasskin authored
C++0x. llvm-svn: 136211
-
Bruno Cardoso Lopes authored
llvm-svn: 136201
-
Bruno Cardoso Lopes authored
usage of the shuffle bitmask. Both work in 128-bit lanes without crossing, but in the former the mask of the high part is the same used by the low part while in the later both lanes have independent masks. Handle this properly and and add support for vpermilpd. llvm-svn: 136200
-
Benjamin Kramer authored
On x86 we can't encode an immediate LHS of a sub directly. If the RHS comes from a XOR with a constant we can fold the negation into the xor and add one to the immediate of the sub. Then we can turn the sub into an add, which can be commuted and encoded efficiently. This code is generated for __builtin_clz and friends. llvm-svn: 136167
-
Bruno Cardoso Lopes authored
different from the previous 128-bit because they work in lanes. Update a few comments and add testcases llvm-svn: 136157
-
- Jul 26, 2011
-
-
Eli Friedman authored
Prevent x86-specific DAGCombine from creating nodes with illegal type (which could not be selected). Fixes a minor isel issue that was breaking the testcase from r136130. llvm-svn: 136148
-
Bruno Cardoso Lopes authored
support for 256-bit versions (but no instruction selection yet, coming next). llvm-svn: 136050
-
Bruno Cardoso Lopes authored
llvm-svn: 136049
-
Bruno Cardoso Lopes authored
This also fixes PR10452 llvm-svn: 136004
-
Bruno Cardoso Lopes authored
shuffle before inserting on a 256-bit vector. - Add AVX versions of movd/movq instructions - Introduce a few COPY patterns to match insert_subvector instructions. This turns a trivial insert_subvector instruction into a register copy, coalescing the xmm into a ymm and avoid emiting on more instruction. llvm-svn: 136002
-
Bruno Cardoso Lopes authored
native 256-bit vector instruction to do scalar_to_vector. llvm-svn: 136001
-
- Jul 25, 2011
-
-
Eli Friedman authored
Addresses PR10466, although the crash from that PR only triggers in cases where DAGCombine misses optimizing a shuffle. llvm-svn: 135980
-
- Jul 22, 2011
-
-
Rafael Espindola authored
too. Patch by Jeff Muizelaar. llvm-svn: 135789
-
Dan Gohman authored
of doing the RAUW calls for the overflow value itself. This makes it more consistent with how the rest of LegalizeDAG works. llvm-svn: 135788
-
Benjamin Kramer authored
Remove the escaped newline. llvm-svn: 135739
-
Bruno Cardoso Lopes authored
the way to go. Doing this here will prevent several node matches later, and would have to force looking all the way through several VINSERTF128/VEXTRACTF128 chains to optimize simple things. llvm-svn: 135730
-
Bruno Cardoso Lopes authored
and was actually very wrong, fix it and make it simpler. Also remove the ConcatVectors function, which is unused now. - Fix a introduction of useless nodes in r126664 and r126264. The VUNPCKL* should never be introduced cause we don't want duplicate nodes for 128 AVX and non-AVX modes, the actual instruction difference only exists during isel, but not for target specific DAG nodes. We only introduce V* target nodes when there is no 128-bit version already there. - Fix a fragile test and make it more useful. llvm-svn: 135729
-
Bruno Cardoso Lopes authored
vxorps + vinsertf128 pair of instructions llvm-svn: 135727
-
Bruno Cardoso Lopes authored
direclty supported and should be promoted and handled by smaller shuffles llvm-svn: 135726
-