- Jun 09, 2012
-
-
Craig Topper authored
Use XOP vpcom intrinsics in patterns instead of a target specific SDNode type. Remove the custom lowering code that selected the SDNode type. llvm-svn: 158279
-
Craig Topper authored
llvm-svn: 158278
-
- Jun 08, 2012
-
-
Manman Ren authored
llvm-svn: 158220
-
Manman Ren authored
This patch will generate the following for integer ABS: movl %edi, %eax negl %eax cmovll %edi, %eax INSTEAD OF movl %edi, %ecx sarl $31, %ecx leal (%rdi,%rcx), %eax xorl %ecx, %eax There exists a target-independent DAG combine for integer ABS, which converts integer ABS to sar+add+xor. For X86, we match this pattern back to neg+cmov. This is implemented in PerformXorCombine. rdar://10695237 llvm-svn: 158175
-
- Jun 07, 2012
-
-
Nadav Rotem authored
Do not optimize the used bits of the x86 vselect condition operand, when the condition operand is a vector of 1-bit predicates. This may happen on MIC devices. llvm-svn: 158168
-
Manman Ren authored
It will cause assertion failure later on. llvm-svn: 158160
-
Rafael Espindola authored
Fixes pr13048. llvm-svn: 158158
-
Manman Ren authored
This patch will optimize the following movq %rdi, %rax subq %rsi, %rax cmovsq %rsi, %rdi movq %rdi, %rax to cmpq %rsi, %rdi cmovsq %rsi, %rdi movq %rdi, %rax Perform this optimization if the actual result of SUB is not used. rdar: 11540023 llvm-svn: 158126
-
Manman Ren authored
The commit is intended to fix rdar://11540023. It is implemented as part of peephole optimization. We can actually implement this in the SelectionDAG lowering phase. llvm-svn: 158122
-
- Jun 06, 2012
-
-
Benjamin Kramer authored
There are some that I didn't remove this round because they looked like obvious stubs. There are dead variables in gtest too, they should be fixed upstream. llvm-svn: 158090
-
Chad Rosier authored
X86. rdar://11496434 llvm-svn: 158087
-
Craig Topper authored
llvm-svn: 158049
-
- Jun 05, 2012
-
-
Andrew Trick authored
llvm-svn: 157981
-
Andrew Trick authored
llvm-svn: 157976
-
- Jun 04, 2012
-
-
Hans Wennborg authored
llvm-svn: 157920
-
Craig Topper authored
llvm-svn: 157917
-
Craig Topper authored
Add VFMADDSUB and VFMSUBADD FMA instructions to folding tables. Also add 213 forms of scalar FMA instructions. llvm-svn: 157914
-
- Jun 03, 2012
-
-
Craig Topper authored
llvm-svn: 157903
-
Craig Topper authored
Rename fma4 intrinsics to just fma since they are now used for both FMA4 and FMA3. Autoupgrade support coming in a separate commit. llvm-svn: 157898
-
Manman Ren authored
llvm-svn: 157896
-
Craig Topper authored
Use sse_load_f32/64 for scalar FMA3 intrinsic patterns instead of 128-bit loads to match instruction behavior. llvm-svn: 157895
-
Craig Topper authored
llvm-svn: 157894
-
- Jun 02, 2012
-
-
-
Jakob Stoklund Olesen authored
No functional change intended. Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in the future. The TableGen-produced register lists are getting quite large, and it may be necessary to change the table representation. This makes it possible to do so without changing all clients (again). llvm-svn: 157854
-
- Jun 01, 2012
-
-
Manman Ren authored
This patch will optimize the following: sub r1, r3 cmp r3, r1 or cmp r1, r3 bge L1 TO sub r1, r3 bge L1 or ble L1 If the branch instruction can use flag from "sub", then we can eliminate the "cmp" instruction. llvm-svn: 157831
-
Hans Wennborg authored
This implements codegen support for accesses to thread-local variables using the local-dynamic model, and adds a clean-up pass so that the base address for the TLS block can be re-used between local-dynamic access on an execution path. llvm-svn: 157818
-
Craig Topper authored
llvm-svn: 157805
-
Craig Topper authored
Remove fadd(fmul) patterns for FMA3. This needs to be implemented by paying attention to FP_CONTRACT and matching @llvm.fma which is not available yet. This will allow us to enablle intrinsic use at least though. llvm-svn: 157804
-
Craig Topper authored
llvm-svn: 157802
-
Craig Topper authored
llvm-svn: 157801
-
Craig Topper authored
llvm-svn: 157799
-
Chad Rosier authored
llvm-svn: 157783
-
- May 31, 2012
-
-
Jakob Stoklund Olesen authored
Patch by Yiannis Tsiouris! llvm-svn: 157757
-
Manman Ren authored
This patch will optimize the following movq %rdi, %rax subq %rsi, %rax cmovsq %rsi, %rdi movq %rdi, %rax to cmpq %rsi, %rdi cmovsq %rsi, %rdi movq %rdi, %rax Perform this optimization if the actual result of SUB is not used. rdar: 11540023 llvm-svn: 157755
-
Benjamin Kramer authored
It was renamed in gcc/gas a while ago and causes all kinds of confusion because it was named differently in llvm and clang. llvm-svn: 157745
-
Elena Demikhovsky authored
I disabled FMA3 autodetection, since the result may differ from expected for some benchmarks. I added tests for GodeGen and intrinsics. I did not change llvm.fma.f32/64 - it may be done later. llvm-svn: 157737
-
Craig Topper authored
llvm-svn: 157731
-
- May 30, 2012
-
-
Chris Lattner authored
it's pointed out that R11 can be used for magic things, and doing things just for 64-bit registers is silly. Just optimize 3 more. llvm-svn: 157699
-
Chris Lattner authored
integer registers. This is already supported by the fastcc convention, but it doesn't hurt to support it in the standard conventions as well. In cases where we can cheat at the calling convention, this allows us to avoid returning things through memory in more cases. llvm-svn: 157698
-
Benjamin Kramer authored
llvm-svn: 157685
-