- Jun 03, 2012
-
-
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
-
- May 29, 2012
-
-
Benjamin Kramer authored
Add intrinsics, code gen, assembler and disassembler support for the SSE4a extrq and insertq instructions. This required light surgery on the assembler and disassembler because the instructions use an uncommon encoding. They are the only two instructions in x86 that use register operands and two immediates. llvm-svn: 157634
-
- May 25, 2012
-
-
Justin Holewinski authored
to pass around a struct instead of a large set of individual values. This cleans up the interface and allows more information to be added to the struct for future targets without requiring changes to each and every target. NV_CONTRIB llvm-svn: 157479
-
Eli Friedman authored
llvm-svn: 157446
-
- May 24, 2012
-
-
Craig Topper authored
llvm-svn: 157374
-
Chad Rosier authored
llvm-svn: 157358
-
- May 23, 2012
-
-
Craig Topper authored
llvm-svn: 157313
-
Craig Topper authored
llvm-svn: 157309
-
- May 22, 2012
-
-
Craig Topper authored
Fix constant used for pshufb mask when lowering v16i8 shuffles. Bug introduced in r157043. Fixes PR12908. llvm-svn: 157236
-
- May 21, 2012
-
-
Craig Topper authored
Allow 256-bit shuffles to still be split even if only half of the shuffle comes from two 128-bit pieces. llvm-svn: 157175
-
- May 20, 2012
-
-
Jakob Stoklund Olesen authored
It can sometimes be used in addressing modes that don't support %ESP. llvm-svn: 157165
-
- May 19, 2012
-
-
Nadav Rotem authored
llvm-svn: 157129
-
Nadav Rotem authored
llvm-svn: 157127
-
Craig Topper authored
llvm-svn: 157122
-
Craig Topper authored
llvm-svn: 157109
-
- May 18, 2012
-
-
Jim Grosbach authored
Use a dedicated MachO load command to annotate data-in-code regions. This is the same format the linker produces for final executable images, allowing consistency of representation and use of introspection tools for both object and executable files. Data-in-code regions are annotated via ".data_region"/".end_data_region" directive pairs, with an optional region type. data_region_directive := ".data_region" { region_type } region_type := "jt8" | "jt16" | "jt32" | "jta32" end_data_region_directive := ".end_data_region" The previous handling of ARM-style "$d.*" labels was broken and has been removed. Specifically, it didn't handle ARM vs. Thumb mode when marking the end of the section. rdar://11459456 llvm-svn: 157062
-
Craig Topper authored
llvm-svn: 157044
-
Craig Topper authored
llvm-svn: 157043
-
- May 16, 2012
-
-