- Sep 14, 2007
-
-
Evan Cheng authored
llvm-svn: 41962
-
- Sep 11, 2007
-
-
Evan Cheng authored
llvm-svn: 41863
-
- Sep 07, 2007
-
-
Dan Gohman authored
by flagging the associated instructions as being trivially rematerializable. llvm-svn: 41775
-
- Aug 30, 2007
-
-
Evan Cheng authored
llvm-svn: 41595
-
- Aug 11, 2007
-
-
Bill Wendling authored
Make a 'memop' pattern just for them. llvm-svn: 41017
-
- Aug 10, 2007
-
-
Bill Wendling authored
llvm-svn: 40985
-
Bill Wendling authored
llvm-svn: 40982
-
- Aug 02, 2007
-
-
Dan Gohman authored
Generalize isPSHUFDMask and add a unary SHUFPD pattern so that SHUFPD's memory operand alignment can be tested as well, with a fix to avoid breaking MMX's use of isPSHUFDMask. llvm-svn: 40756
-
Dan Gohman authored
llvm-svn: 40754
-
Dan Gohman authored
X86InstrInfo::isReallyTriviallyReMaterializable knows how to handle with the isReMaterializable flag so that it is given a chance to handle them. Without hoisting constant-pool loads from loops this isn't very visible, though it does keep CodeGen/X86/constant-pool-remat-0.ll from making a copy of the constant pool on the stack. llvm-svn: 40736
-
- Aug 01, 2007
-
-
Evan Cheng authored
llvm-svn: 40691
-
- Jul 31, 2007
-
-
Dan Gohman authored
mnemonics from their operands instead of single spaces. This makes the assembly output a little more consistent with various other compilers (f.e. GCC), and slightly easier to read. Also, update the regression tests accordingly. llvm-svn: 40648
-
Evan Cheng authored
Redo and generalize previously removed opt for pinsrw: (vextract (v4i32 bc (v4f32 s2v (f32 load ))), 0) -> (i32 load ) llvm-svn: 40628
-
- Jul 27, 2007
-
-
Dan Gohman authored
Make the alignedload and alignedstore patterns always require 16-byte alignment. This way when they are used in the "Fs" instructions, in which a vector instruction is used for a scalar purpose, they can still require the full vector alignment. And add a regression test for this. llvm-svn: 40555
-
Evan Cheng authored
llvm-svn: 40547
-
- Jul 26, 2007
-
-
Dan Gohman authored
llvm-svn: 40528
-
Dan Gohman authored
x86 target, replacing them with the new alignment attributes on memory references. llvm-svn: 40504
-
- Jul 20, 2007
-
-
Evan Cheng authored
code that cross integer / floating point domains (e.g. generate pxor / pand for logical ops on floating point value, movdqa to load / store floating point SSE values). Given that, it's better to use movaps instead of movdqa and movups instead of movdqu. They have the same latency but the "aps" variants are one byte shorter. If the domain crossing problem is a real performance issue, then we will have to fix it with dynamic programming based isel. llvm-svn: 40076
-
Evan Cheng authored
Fix patterns so we isel the xorps, etc. for floating pt logical SSE ops. DAG combiner may fold away the (bit_convert (load)). llvm-svn: 40070
-
- Jul 19, 2007
-
-
Evan Cheng authored
InOperandList. This gives one piece of important information: # of results produced by an instruction. An example of the change: def ADD32rr : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2), "add{l} {$src2, $dst|$dst, $src2}", [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>; => def ADD32rr : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2), "add{l} {$src2, $dst|$dst, $src2}", [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>; llvm-svn: 40033
-
- Jul 18, 2007
-
-
Dan Gohman authored
and stores that have a specified alignment of less than 16 bytes now use instructions that support misaligned memory references. llvm-svn: 40015
-
- Jul 10, 2007
-
-
Dan Gohman authored
in addition to the intrinsic forms. Add spill-folding entries for these new instructions, and for the scalar min and max instrinsic instructions which were missing. And add some preliminary ISelLowering code for using the new non-intrinsic vector sqrt instruction, and fneg and fabs. llvm-svn: 38478
-
- Jul 03, 2007
-
-
Dale Johannesen authored
model to include f32 variants. Some factoring improvments forthcoming. llvm-svn: 37847
-
- Jun 26, 2007
-
-
Dan Gohman authored
instruction flag, and use the flag along with a virtual member function hook for targets to override if there are instructions that are only trivially rematerializable with specific operands (i.e. constant pool loads). llvm-svn: 37728
-
- Jun 25, 2007
-
-
Dan Gohman authored
between SSE1 instructions and their respective SSE2 analogues. llvm-svn: 37718
-
Dan Gohman authored
llvm-svn: 37717
-
- Jun 19, 2007
-
-
Dan Gohman authored
with a general target hook to identify rematerializable instructions. Some instructions are only rematerializable with specific operands, such as loads from constant pools, while others are always rematerializable. This hook allows both to be identified as being rematerializable with the same mechanism. llvm-svn: 37644
-
- May 17, 2007
-
-
Evan Cheng authored
llvm-svn: 37172
-
- May 03, 2007
-
-
Bill Wendling authored
for SSE1, SSE2, SSE3, and SSSE3. llvm-svn: 36656
-
- Apr 18, 2007
-
-
Dan Gohman authored
llvm-svn: 36256
-
- Apr 11, 2007
-
-
Bill Wendling authored
llvm-svn: 35869
-
- Mar 21, 2007
-
-
Evan Cheng authored
llvm-svn: 35230
-
- Mar 04, 2007
-
-
Chris Lattner authored
llvm-svn: 34905
-
- Feb 20, 2007
-
-
Evan Cheng authored
llvm-svn: 34434
-
- Jan 05, 2007
-
-
Evan Cheng authored
or'ing in the sign bit of operand 1. - Tweaking: rather than left shift the sign bit, fp_extend operand 1 first before taking its sign bit if its type is smaller than that of operand 0. llvm-svn: 32932
-
Evan Cheng authored
llvm-svn: 32900
-
- Dec 14, 2006
-
-
Evan Cheng authored
- Add MOVDI2SSrm and MOVSS2DImr to fold load / store for i32 <-> f32 bit_convert patterns. llvm-svn: 32582
-
- Dec 05, 2006
-
-
Chris Lattner authored
This compiles bitcast.ll:test3/test4 into: _test3: movd %xmm0, %eax ret _test4: movd %edi, %xmm0 ret llvm-svn: 32230
-
- Nov 17, 2006
-
-
Evan Cheng authored
Correct instructions for moving data between GR64 and SSE registers; also correct load i64 / store i64 from v2i64. llvm-svn: 31795
-
- Nov 10, 2006
-
-
Evan Cheng authored
take v4f32 / v2f64 operands and may end up causing larger spills / restores. Added X86 specific nodes X86ISD::FMAX, X86ISD::FMIN instead. This fixes PR996. llvm-svn: 31645
-