- Feb 05, 2011
-
-
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
-
- Jan 27, 2011
-
-
David Greene authored
[AVX] Clean up the code to configure target lowering for AVX. Specify how to lower more/new operations. This is a prerequisite for adding additional AVX lowering. llvm-svn: 124447
-
Roman Divacky authored
Create override of this method in X86/ARM/MBlaze. llvm-svn: 124378
-
Eric Christopher authored
if we can store a value. Also, the exclusion is or, not and. Fixes rdar://8920247. llvm-svn: 124357
-
NAKAMURA Takumi authored
CALL64 marks %xmm* as dead. llvm-svn: 124354
-
- Jan 26, 2011
-
-
Bill Wendling authored
parser. The parser will always give us a binary representation of the floating point number. llvm-svn: 124318
-
David Greene authored
[AVX] Add INSERT_SUBVECTOR and support it on x86. This provides a default implementation for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VINSERTF128 if AVX is available. llvm-svn: 124307
-
David Greene authored
[AVX] Support EXTRACT_SUBVECTOR on x86. This provides a default implementation of EXTRACT_SUBVECTOR for x86, going through the stack in a similr fashion to how the codegen implements BUILD_VECTOR. Eventually this will get matched to VEXTRACTF128 if AVX is available. llvm-svn: 124292
-
Bruno Cardoso Lopes authored
llvm-svn: 124288
-
Bill Wendling authored
llvm-svn: 124273
-
NAKAMURA Takumi authored
llvm-svn: 124272
-
NAKAMURA Takumi authored
llvm-svn: 124270
-
NAKAMURA Takumi authored
llvm-svn: 124268
-
NAKAMURA Takumi authored
llvm-svn: 124267
-
- Jan 25, 2011
-
-
Bill Wendling authored
llvm-svn: 124233
-