- Sep 26, 2011
-
-
Craig Topper authored
llvm-svn: 140515
-
- Sep 24, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 140441
-
- Sep 23, 2011
-
-
Duncan Sands authored
hadd/hsub intrinsics into the new fhadd/fhsub X86 node. llvm-svn: 140383
-
Eli Friedman authored
PR10991: make fast-isel correctly check whether accessing a global through an alias involves thread-local storage. (I'm not entirely sure how this is supposed to work, but this patch makes fast-isel consistent with the normal isel path.) llvm-svn: 140355
-
Jakob Stoklund Olesen authored
We already support GR64 <-> VR128 copies. All of these copies break partial register dependencies by zeroing the high part of the target register. llvm-svn: 140348
-
- Sep 22, 2011
-
-
Duncan Sands authored
floating point add/sub of appropriate shuffle vectors. Does not synthesize the 256 bit AVX versions because they work differently. llvm-svn: 140332
-
Craig Topper authored
Fix register printing in disassembling of push/pop of segment registers and in/out in Intel syntax mode. Fixes PR10960 llvm-svn: 140299
-
Benjamin Kramer authored
- x87: no min or max. - SSE1: min/max for single precision scalars and vectors. - SSE2: min/max for single and double precision scalars and vectors. - AVX: as SSE2, but also supports the wider ymm vectors. (this is covered by the isTypeLegal check) llvm-svn: 140296
-
Benjamin Kramer authored
llvm-svn: 140294
-
- Sep 21, 2011
-
-
Benjamin Kramer authored
Otherwise we'll spend a ridiculous amount of time pretty printing debug output and then discarding it. llvm-svn: 140276
-
Nadav Rotem authored
llvm-svn: 140258
-
Nadav Rotem authored
Insert a sanity check on the combining of x86 truncing-store nodes. This comes to replace the problematic check that was removed in r139995. llvm-svn: 140246
-
Richard Trieu authored
assert(!"error message"); To: assert(0 && "error message"); which is more consistant across the code base. llvm-svn: 140234
-
Owen Anderson authored
In the disassembler C API, be careful not to confuse the comment streamer that the disassembler outputs annotations on with the streamer that the InstPrinter will print them on. llvm-svn: 140217
-
Bruno Cardoso Lopes authored
llvm-svn: 140203
-
Bruno Cardoso Lopes authored
llvm-svn: 140199
-
- Sep 20, 2011
-
-
Bruno Cardoso Lopes authored
llvm-svn: 140186
-
Bruno Cardoso Lopes authored
This fixes PR10963. Thanks to Benjamin for finding the wrong tablegen declaration. llvm-svn: 140184
-
Bruno Cardoso Lopes authored
llvm-svn: 140183
-
Craig Topper authored
llvm-svn: 140140
-
Bruno Cardoso Lopes authored
llvm-svn: 140098
-
Bruno Cardoso Lopes authored
128-bit undef subvector insertion into a 256-bit vector llvm-svn: 140097
-
- Sep 19, 2011
-
-
Bruno Cardoso Lopes authored
PR10955 and PR10948. llvm-svn: 140069
-
- Sep 18, 2011
-
-
Nadav Rotem authored
llvm-svn: 140003
-
Nadav Rotem authored
llvm-svn: 140001
-
Nadav Rotem authored
dag-combine optimization to implement the ext-load efficiently (using shuffles). For example the type <4 x i8> is stored in memory as i32, but it needs to find its way into a <4 x i32> register. Previously we scalarized the memory access, now we use shuffles. llvm-svn: 139995
-
Craig Topper authored
llvm-svn: 139993
-
- Sep 17, 2011
-
-
Duncan Sands authored
maxps and maxpd). This broke the sse41-blend.ll testcase by causing maxpd to be produced rather than a cmp+blend pair, which is the reason I tweaked it. Gives a small speedup on doduc with dragonegg when the GCC vectorizer is used. llvm-svn: 139986
-
Bruno Cardoso Lopes authored
mayLoad = 1 llvm-svn: 139973
-
Bruno Cardoso Lopes authored
are declared with load patterns. This fix the crash in PR10941. No testcases, since a fold is triggered and then converted back to the register form afterwards. llvm-svn: 139953
-
- Sep 16, 2011
-
-
Bruno Cardoso Lopes authored
This PR basically reports a problem where a crash in generated code happened due to %rbp being clobbered: pushq %rbp movq %rsp, %rbp .... vmovmskps %ymm12, %ebp .... movq %rbp, %rsp popq %rbp ret Since Eric's r123367 commit, the default stack alignment for x86 32-bit has changed to be 16-bytes. Since then, the MaxStackAlignmentHeuristicPass hasn't been really used, but with AVX it becomes useful again, since per ABI compliance we don't always align the stack to 256-bit, but only when there are 256-bit incoming arguments. ReserveFP was only used by this pass, but there's no RA target hook that uses getReserveFP() to check for the presence of FP (since nothing was triggering the pass to run, the uses of getReserveFP() were removed through time without being noticed). Change this pass to use setForceFramePointer, which is properly called by MachineFunction hasFP method. The testcase is very big and dependent on RA, not sure if it's worth adding to test/CodeGen/X86. llvm-svn: 139939
-
Owen Anderson authored
Don't attach annotations to MCInst's. Instead, have the disassembler return, and the printer accept, an annotation string which can be passed through if the client cares about annotations. llvm-svn: 139876
-
Bruno Cardoso Lopes authored
llvm-svn: 139872
-
Bruno Cardoso Lopes authored
time for describing high latency ones and for recognizting loads from the same base pointer llvm-svn: 139864
-
- Sep 15, 2011
-
-
Bruno Cardoso Lopes authored
Also add the AVX versions and add comments! llvm-svn: 139854
-
Owen Anderson authored
Add support for stored annotations to MCInst, and provide facilities for MC-based InstPrinters to print them out. Enhance the ARM and X86 InstPrinter's to do so in verbose mode. llvm-svn: 139820
-
Bruno Cardoso Lopes authored
take into consideration the presence of AVX. This change, together with the SSEDomainFix enabled for AVX, makes AVX codegen to always (hopefully) emit the same code as SSE for 128-bit vector ops. I don't have a testcase for this, but AVX now beats SSE in performance for 128-bit ops in the majority of programas in the llvm testsuite llvm-svn: 139817
-
Bruno Cardoso Lopes authored
llvm-svn: 139816
-
Eli Friedman authored
Fix the code creating VZEXT_LOAD so that it creates the right memoperand. Issue spotted in -debug output. I can't think of any practical effects at the moment, but it might matter if we start doing more aggressive alias analysis in CodeGen. llvm-svn: 139758
-
- Sep 14, 2011
-
-
Craig Topper authored
Fix mem type for VEX.128 form of VROUNDP*. Remove filter preventing VROUND from being recognized by disassembler. llvm-svn: 139691
-