- Feb 07, 2011
-
-
Jason W Kim authored
llvm-svn: 125025
-
-
Bob Wilson authored
The vld1-lane, vld1-dup and vst1-lane instructions do not yet support using post-increment versions, but all the rest of the NEON load/store instructions should be handled now. llvm-svn: 125014
-
Bob Wilson authored
These operations are expanded to pairs of loads or stores, and the first one uses the address register update to produce the address for the second one. So far, the second load/store has also updated the address register, just for convenience, since that output has never been used. In anticipation of actually supporting post-increment updates for these operations, this changes the non-updating operations to use a non-updating load/store for the second instruction. llvm-svn: 125013
-
Bob Wilson authored
llvm-svn: 125012
-
Bob Wilson authored
llvm-svn: 125011
-
Bob Wilson authored
until the instructions are emitted or printed. llvm-svn: 125010
-
Bob Wilson authored
llvm-svn: 125009
-
Jason W Kim authored
Unified EmitTextAttribute for both Asm and Obj emission (.cpu only) Added necessary cortex-A8 related attrs for codegen compat tests. llvm-svn: 124995
-
- Feb 06, 2011
-
-
Anders Carlsson authored
llvm-svn: 124989
-
- Feb 05, 2011
-
-
NAKAMURA Takumi authored
Target/X86: Tweak allocating shadow area (aka home) on Win64. It must be enough for caller to allocate one. llvm-svn: 124949
-
NAKAMURA Takumi authored
llvm-svn: 124948
-
NAKAMURA Takumi authored
llvm-svn: 124947
-
NAKAMURA Takumi authored
llvm-svn: 124946
-
David Greene authored
[AVX] Revert 124910 until clients are ready. llvm-svn: 124912
-
David Greene authored
[AVX] Add some utilities to insert and extract 128-bit subvectors. This allows us to easily support 256-bit operations that don't have native 256-bit support. This applies to integer operations, certain types of shuffles and various othher things. llvm-svn: 124910
-
- Feb 04, 2011
-
-
Jason W Kim authored
Teach ARM/MC/ELF to handle R_ARM_JUMP24 relocation type for conditional jumps. (yes, this is different from R_ARM_CALL) - Adds a new method getARMBranchTargetOpValue() which handles the necessary distinction between the conditional and unconditional br/bl needed for ARM/ELF At least for ARM mode, the needed fixup for conditional versus unconditional br/bl is identical, but the ARM docs and existing ARM tools expect this reloc type... Added a few FIXME's for future naming fixups in ARMInstrInfo.td llvm-svn: 124895
-
Daniel Dunbar authored
custom conversion functions). llvm-svn: 124872
-
David Greene authored
[AVX] Support VSINSERTF128 with more patterns and appropriate infrastructure. This makes lowering 256-bit vectors to 128-bit vectors simple when 256-bit vector support is not available. llvm-svn: 124868
-
- Feb 03, 2011
-
-
Bob Wilson authored
llvm-svn: 124819
-
David Greene authored
[AVX] VEXTRACTF128 support. This commit includes patterns for matching EXTRACT_SUBVECTOR to VEXTRACTF128 along with support routines to examine and translate index values. VINSERTF128 comes next. With these two in place we can begin supporting more AVX operations as INSERT/EXTRACT can be used as a fallback when 256-bit support is not available. llvm-svn: 124797
-
Richard Osborne authored
llvm-svn: 124794
-
Rafael Espindola authored
Reversing the operands allows us to fold, but doesn't force us to. Also, at this point the DAG is still being optimized, so the check for hasOneUse is not very precise. llvm-svn: 124773
-
- Feb 02, 2011
-
-
Bob Wilson authored
llvm-svn: 124725
-
Benjamin Kramer authored
This makes the job of the later optzn passes easier, allowing the vast amount of icmp transforms to chew on it. We transform 840 switches in gcc.c, leading to a 16k byte shrink of the resulting binary on i386-linux. The testcase from README.txt now compiles into decl %edi cmpl $3, %edi sbbl %eax, %eax andl $1, %eax ret llvm-svn: 124724
-
Richard Osborne authored
llvm-svn: 124722
-
Sean Callanan authored
prefix would be misinterpreted in some cases on 32-bit x86 platforms. Thanks to Olivier Meurant for identifying the bug. llvm-svn: 124709
-
Evan Cheng authored
the load, then it may be legal to transform the load and store to integer load and store of the same width. This is done if the target specified the transformation as profitable. e.g. On arm, this can transform: vldr.32 s0, [] vstr.32 s0, [] to ldr r12, [] str r12, [] rdar://8944252 llvm-svn: 124708
-
- Feb 01, 2011
-
-
Bob Wilson authored
This is completely untested but pretty straightforward, so hopefully I got it right. llvm-svn: 124694
-
Anton Korobeynikov authored
Patch by Brian G. Lucas! llvm-svn: 124679
-
Carl Norum authored
llvm-svn: 124652
-
Evan Cheng authored
llvm-svn: 124639
-
- Jan 31, 2011
-
-
Devang Patel authored
llvm-svn: 124611
-
David Greene authored
Fix vector sign extend to put the source and destination types in the correct places. llvm-svn: 124601
-
Chris Lattner authored
llvm-svn: 124599
-
- Jan 30, 2011
-
-
Anton Korobeynikov authored
llvm-svn: 124570
-
Benjamin Kramer authored
Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2) when c1 equals the amount of bits that are truncated off. This happens all the time when a smul is promoted to a larger type. On x86-64 we now compile "int test(int x) { return x/10; }" into movslq %edi, %rax imulq $1717986919, %rax, %rax movq %rax, %rcx shrq $63, %rcx sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax" addl %ecx, %eax This fires 96 times in gcc.c on x86-64. llvm-svn: 124559
-
- Jan 28, 2011
-
-
Bob Wilson authored
Patch by Jyun-Yan You. llvm-svn: 124492
-
Evan Cheng authored
llvm-svn: 124458
-
Kevin Enderby authored
only .syntax unified is supported. llvm-svn: 124454
-