- Dec 26, 2012
-
-
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
-
-
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
-
Nadav Rotem authored
Some x86 instructions can load/store one of the operands to memory. On SSE, this memory needs to be aligned. When these instructions are encoded in VEX (on AVX) there is no such requirement. This changes the folding tables and removes the alignment restrictions from VEX-encoded instructions. llvm-svn: 171024
-
- Dec 23, 2012
-
-
Nadav Rotem authored
llvm-svn: 170997
-
Nadav Rotem authored
llvm-svn: 170996
-
Nadav Rotem authored
them more expensive. llvm-svn: 170995
-
- Dec 22, 2012
-
-
Benjamin Kramer authored
pmuludq is slow, but it turns out that all the unpacking and packing of the scalarized mul is even slower. 10% speedup on loop-vectorized paq8p. llvm-svn: 170985
-
Benjamin Kramer authored
Also loosen the SSSE3 dependency a bit, expanded pshufb + psra is still better than scalarized loads. Fixes PR14590. llvm-svn: 170984
-
Nadav Rotem authored
The only way to read the eflags is using push and pop. If we don't adjust the stack then we run over the first frame index. This is not something that we want to do, so we have to make sure that our machine function does not copy the flags. If it does then we have to emit the prolog that adjusts the stack. rdar://12896831 llvm-svn: 170961
-
- Dec 21, 2012
-
-
Benjamin Kramer authored
Part of PR14667. llvm-svn: 170908
-
Benjamin Kramer authored
This is very mechanical, no functionality change. Preparation for PR14667. llvm-svn: 170898
-
Nadav Rotem authored
llvm-svn: 170842
-
Nadav Rotem authored
llvm-svn: 170830
-
- Dec 20, 2012
-
-
Jakob Stoklund Olesen authored
This function is often used to decorate dangling instructions, so a context reference is required to allocate memory for the operands. Also add a corresponding MachineInstrBuilder method. llvm-svn: 170797
-
Roman Divacky authored
its only user, is gone. llvm-svn: 170699
-
Richard Smith authored
llvm-svn: 170654
-
Jim Grosbach authored
MC disassembler clients (LLDB) are interested in querying if an instruction may affect control flow other than by virtue of being an explicit branch instruction. For example, instructions which write directly to the PC on some architectures. llvm-svn: 170610
-
- Dec 19, 2012
-
-
Jakob Stoklund Olesen authored
Use the version that also takes an MF reference instead. It would technically be possible to extract an MF reference from the MI as MI->getParent()->getParent(), but that would not work for MIs that are not inserted into any basic block. Given the reasonably small number of places this constructor was used at all, I preferred the compile time check to a run time assertion. llvm-svn: 170588
-
Roman Divacky authored
llvm-svn: 170578
-
Paul Redmond authored
When the least bit of C is greater than V, (x&C) must be greater than V if it is not zero, so the comparison can be simplified. Although this was suggested in Target/X86/README.txt, it benefits any architecture with a directly testable form of AND. Patch by Kevin Schoedel llvm-svn: 170576
-
Patrik Hagglund authored
MVTs, instead of EVTs. llvm-svn: 170537
-