- Sep 03, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 113008
-
Bruno Cardoso Lopes authored
functional changes llvm-svn: 113007
-
Bruno Cardoso Lopes authored
llvm-svn: 113006
-
Daniel Dunbar authored
some infinite loop and select failures. - Apologies for eager reverting, but its branch day. llvm-svn: 113000
-
Daniel Dunbar authored
infinite loop and select failures. llvm-svn: 112999
-
Daniel Dunbar authored
mask pattern fragment", which depends on r112934, which introduced some infinite loop and select failures. llvm-svn: 112998
-
Bruno Cardoso Lopes authored
llvm-svn: 112942
-
Bruno Cardoso Lopes authored
llvm-svn: 112938
-
Bruno Cardoso Lopes authored
- Teach getShuffleScalarElt how to handle more target specific nodes, so the DAGCombine can make use of it. - Add another hack to avoid the node update problem during legalization. More description on the comments llvm-svn: 112934
-
Anton Korobeynikov authored
llvm-svn: 112885
-
Anton Korobeynikov authored
Patch by Jan Sjodin! llvm-svn: 112875
-
- Sep 02, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 112806
-
Bruno Cardoso Lopes authored
llvm-svn: 112805
-
Bruno Cardoso Lopes authored
llvm-svn: 112804
-
Bruno Cardoso Lopes authored
llvm-svn: 112799
-
Bruno Cardoso Lopes authored
llvm-svn: 112760
-
- Sep 01, 2010
-
-
Bruno Cardoso Lopes authored
Use movlps, movlpd, movss and movsd specific nodes instead of pattern matching with movlp pattern fragment llvm-svn: 112694
-
Bruno Cardoso Lopes authored
llvm-svn: 112689
-
Bruno Cardoso Lopes authored
llvm-svn: 112687
-
Bruno Cardoso Lopes authored
llvm-svn: 112661
-
Bruno Cardoso Lopes authored
llvm-svn: 112657
-
- Aug 31, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 112644
-
Bruno Cardoso Lopes authored
llvm-svn: 112642
-
Bruno Cardoso Lopes authored
Use X86ISD::MOVSS and MOVSD to represent the movl mask pattern, also fix the handling of those nodes when seeking for scalars inside vector shuffles llvm-svn: 112570
-
- Aug 28, 2010
-
-
Chris Lattner authored
insertp[sd] $0, which is a noop. Before: _f32: ## @f32 pshufd $1, %xmm1, %xmm2 pshufd $1, %xmm0, %xmm3 addss %xmm2, %xmm3 addss %xmm1, %xmm0 ## kill: XMM0<def> XMM0<kill> XMM0<def> insertps $0, %xmm0, %xmm0 insertps $16, %xmm3, %xmm0 ret after: _f32: ## @f32 movdqa %xmm0, %xmm2 addss %xmm1, %xmm2 pshufd $1, %xmm1, %xmm1 pshufd $1, %xmm0, %xmm3 addss %xmm1, %xmm3 movdqa %xmm2, %xmm0 insertps $16, %xmm3, %xmm0 ret The extra movs are due to a random (poor) scheduling decision. llvm-svn: 112379
-
Chris Lattner authored
when the top elements of a vector are undefined. This happens all the time for X86-64 ABI stuff because only the low 2 elements of a 4 element vector are defined. For example, on: _Complex float f32(_Complex float A, _Complex float B) { return A+B; } We used to produce (with SSE2, SSE4.1+ uses insertps): _f32: ## @f32 movdqa %xmm0, %xmm2 addss %xmm1, %xmm2 pshufd $16, %xmm2, %xmm2 pshufd $1, %xmm1, %xmm1 pshufd $1, %xmm0, %xmm0 addss %xmm1, %xmm0 pshufd $16, %xmm0, %xmm1 movdqa %xmm2, %xmm0 unpcklps %xmm1, %xmm0 ret We now produce: _f32: ## @f32 movdqa %xmm0, %xmm2 addss %xmm1, %xmm2 pshufd $1, %xmm1, %xmm1 pshufd $1, %xmm0, %xmm3 addss %xmm1, %xmm3 movaps %xmm2, %xmm0 unpcklps %xmm3, %xmm0 ret This implements rdar://8368414 llvm-svn: 112378
-
Chris Lattner authored
a new EltStride variable instead of reusing NumElems variable for a non-obvious purpose. No functionality change. llvm-svn: 112377
-
Bruno Cardoso Lopes authored
Also teach this logic how to handle target specific shuffles if needed, this is necessary while searching recursively for zeroed scalar elements in vector shuffle operands. llvm-svn: 112348
-
- Aug 27, 2010
-
-
Anton Korobeynikov authored
value should be copied to the corresponding shadow reg as well. Patch by Cameron Esfahani! llvm-svn: 112262
-
- Aug 26, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 112218
-
Chris Lattner authored
llvm-svn: 112171
-
Chris Lattner authored
apparently try to support. llvm-svn: 112168
-
- Aug 25, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 112090
-
Anton Korobeynikov authored
Mark _alloca call as clobberring EFLAGS, otherwise some DCE might remove other flags-clobberring stuff (e.g. cmp instructions) occuring after _alloca call. llvm-svn: 112034
-
Bruno Cardoso Lopes authored
llvm-svn: 112020
-
Bruno Cardoso Lopes authored
teach lowering to get target specific nodes for pshufd, emulating the same isel behavior for now, so we can pass all vector shuffle tests llvm-svn: 112017
-
- Aug 24, 2010
-
-
Dan Gohman authored
need not be RIP-relative in small mode. llvm-svn: 111917
-
Bruno Cardoso Lopes authored
llvm-svn: 111890
-
- Aug 23, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 111837
-
Anton Korobeynikov authored
it's COFF emitter which does not support differences of two symbols (and needs to be fixed). GAS is pretty fine with code produced. llvm-svn: 111801
-