- Dec 28, 2012
-
-
Nadav Rotem authored
AVX: Move the ZEXT/ANYEXT DAGCo optimizations to the lowering of these optimizations. The old test cases still cover all of these lowering/optimizations. The single change that we have is that now anyext does not need to zero a register, because it does not use the exact code path as the zero_extend. llvm-svn: 171178
-
Nadav Rotem authored
llvm-svn: 171172
-
- Dec 27, 2012
-
-
Craig Topper authored
llvm-svn: 171171
-
Nadav Rotem authored
llvm-svn: 171170
-
Craig Topper authored
llvm-svn: 171166
-
Nadav Rotem authored
register. In most cases we actually compare or select YMM-sized registers and mixing the two types creates horrible code. This commit optimizes some of the transition sequences. PR14657. llvm-svn: 171148
-
Nadav Rotem authored
The vector truncs were scalarized during LegalizeVectorOps, later vectorized again by some DAGCombine optimization and finally, lowered by a dagcombing optimization. Now, they are properly lowered during LegalizeVectorOps. No new testcase because the original testcases still work. llvm-svn: 171146
-
Craig Topper authored
llvm-svn: 171143
-
Craig Topper authored
Move single letter 'P' prefix out of multiclass now that tablegen allows defm to start with #NAME. This makes instruction names more searchable again. llvm-svn: 171141
-
Craig Topper authored
Add hasSideEffects=0 to some shift and rotate instructions. None of which are currently used by code generation. llvm-svn: 171137
-
Craig Topper authored
llvm-svn: 171136
-
Craig Topper authored
llvm-svn: 171130
-
Craig Topper authored
Add mayLoad, mayStore, and hasSideEffects tags to BT/BTS/BTR/BTC instructions. Shouldn't change any functionality since they don't have patterns to select them. llvm-svn: 171128
-
Craig Topper authored
Fix operands and encoding form for ARPL instruction. Register form had and reversed. Memory form writes memory, but was marked as MRMSrcMem. llvm-svn: 171123
-
Craig Topper authored
llvm-svn: 171122
-
- Dec 26, 2012
-
-
Craig Topper authored
llvm-svn: 171121
-
Craig Topper authored
Mark all the _REV instructions as not having side effects. They aren't really emitted by the backend, but it reduces the number of instructions in the output files with unmodelled side effects to make auditing easier. llvm-svn: 171118
-
Craig Topper authored
Remove a special conditional setting of neverHasSideEffects if the instruction didn't have a pattern. This was leftover from when tablegen used to complain if things were already inferred from patterns. llvm-svn: 171117
-
Craig Topper authored
llvm-svn: 171103
-
Craig Topper authored
llvm-svn: 171102
-
Craig Topper authored
llvm-svn: 171097
-
Craig Topper authored
llvm-svn: 171096
-
Craig Topper authored
llvm-svn: 171095
-
Craig Topper authored
llvm-svn: 171093
-
Craig Topper authored
Use an additional multiclass to merge the 128/256-bit SSE/AVX instruction definitions for a bunch of SSE2 integer arithmetic instructions. llvm-svn: 171092
-
Nadav Rotem authored
llvm-svn: 171091
-
Craig Topper authored
Use an additional multiclass to merge the 128/256-bit SSE/AVX instruction definitions for PAND/POR/PXOR/PANDN llvm-svn: 171087
-
Craig Topper authored
llvm-svn: 171086
-
Craig Topper authored
llvm-svn: 171085
-
Craig Topper authored
llvm-svn: 171082
-
Craig Topper authored
Remove alignment from folding table for VMOVUPD as an unaligned instruction it shouldn't require alignment... llvm-svn: 171081
-
Craig Topper authored
Remove alignment requirements from (V)EXTRACTPS. This instruction does 32-bit stores which aren't required to be aligned on SSE or AVX. llvm-svn: 171080
-
Craig Topper authored
Remove alignment requirement from VCVTSS2SD in folding tables. Reverting r171049. This instruction doesn't require alignment. llvm-svn: 171078
-
- Dec 25, 2012
-
-
Hal Finkel authored
Use of store or load with the atomic specifier on 64-bit types would cause instruction-selection failures. As with the 32-bit case, these can use the default expansion in terms of cmp-and-swap. llvm-svn: 171072
-
Benjamin Kramer authored
llvm-svn: 171064
-
Benjamin Kramer authored
pcmpeqd, pshufd, pshufd, pand is cheaper than unpack + cmpq, sbbq, cmpq, sbbq + pack. Small speedup on loop-vectorized viterbi (-march=core2). llvm-svn: 171063
-
Nadav Rotem authored
llvm-svn: 171049
-
- Dec 24, 2012
-
-
Nick Lewycky authored
llvm-svn: 171044
-
Benjamin Kramer authored
This affords us to use std::string's allocation routines and use the destructor for the memory management. Switching to that also means that we can use operator==(const std::string&, const char *) to perform the string comparison rather than resorting to libc functionality (i.e. strcmp). Patch by Saleem Abdulrasool! Differential Revision: http://llvm-reviews.chandlerc.com/D230 llvm-svn: 171042
-
Nadav Rotem authored
support for the insert-subvector and extract-subvector kinds. llvm-svn: 171027
-