- Apr 12, 2007
-
-
Reid Spencer authored
the size of the value, not just zext. Also, give better names to two BBs. llvm-svn: 35945
-
Chris Lattner authored
class supports. In the case of vectors, this means we often get the wrong type (e.g. we get v4f32 instead of v8i16). Make sure to convert the vector result to the right type. This fixes CodeGen/X86/2007-04-11-InlineAsmVectorResult.ll llvm-svn: 35944
-
Chris Lattner authored
llvm-svn: 35943
-
Chris Lattner authored
llvm-svn: 35941
-
Chris Lattner authored
llvm-svn: 35940
-
Reid Spencer authored
Implement the "part_set" intrinsic. llvm-svn: 35938
-
Chris Lattner authored
handlers (like the pass list). My previous fix only supported *new* command line options, not additions to old ones. This fixes test/Feature/load_module.ll llvm-svn: 35935
-
Chris Lattner authored
llvm-svn: 35926
-
- Apr 11, 2007
-
-
Reid Spencer authored
llvm-svn: 35922
-
Chris Lattner authored
llvm-svn: 35910
-
Chris Lattner authored
llvm-svn: 35909
-
Chris Lattner authored
llvm-svn: 35906
-
Chris Lattner authored
llvm-svn: 35905
-
Reid Spencer authored
not retain that name. Not noticed because AsmParser always sets name after construction. However, llvm2cpp noticed. llvm-svn: 35903
-
Reid Spencer authored
llvm-svn: 35901
-
Chris Lattner authored
icmp slt i32 %X, 0 ; <i1>:0 [#uses=1] sext i1 %0 to i32 ; <i32>:1 [#uses=1] into: %X.lobit = ashr i32 %X, 31 ; <i32> [#uses=1] This implements InstCombine/icmp.ll:test[34] llvm-svn: 35891
-
Chris Lattner authored
Transforms/InstCombine/icmp.ll llvm-svn: 35890
-
Chris Lattner authored
llvm-svn: 35888
-
Chris Lattner authored
llvm-svn: 35887
-
Chris Lattner authored
llvm-svn: 35886
-
Chris Lattner authored
define i32 @test(i32 %X) { entry: %Y = and i32 %X, 4 ; <i32> [#uses=1] icmp eq i32 %Y, 0 ; <i1>:0 [#uses=1] sext i1 %0 to i32 ; <i32>:1 [#uses=1] ret i32 %1 } by moving code out of commonIntCastTransforms into visitZExt. Simplify the APInt gymnastics in it etc. llvm-svn: 35885
-
Chris Lattner authored
llvm-svn: 35884
-
Chris Lattner authored
allows other simplifications. For example, this compiles: int isnegative(unsigned int X) { return !(X < 2147483648U); } Into this code: x86: movl 4(%esp), %eax shrl $31, %eax ret arm: mov r0, r0, lsr #31 bx lr thumb: lsr r0, r0, #31 bx lr instead of: x86: cmpl $0, 4(%esp) sets %al movzbl %al, %eax ret arm: mov r3, #0 cmp r0, #0 movlt r3, #1 mov r0, r3 bx lr thumb: mov r2, #1 mov r1, #0 cmp r0, #0 blt LBB1_2 @entry LBB1_1: @entry cpy r2, r1 LBB1_2: @entry cpy r0, r2 bx lr Testcase here: test/CodeGen/Generic/ispositive.ll llvm-svn: 35883
-
Chris Lattner authored
improves codegen on many architectures. Tests committed as CodeGen/*/iabs.ll X86 Old: X86 New: _test: _test: movl 4(%esp), %ecx movl 4(%esp), %eax movl %ecx, %eax movl %eax, %ecx negl %eax sarl $31, %ecx testl %ecx, %ecx addl %ecx, %eax cmovns %ecx, %eax xorl %ecx, %eax ret ret PPC Old: PPC New: _test: _test: cmpwi cr0, r3, -1 srawi r2, r3, 31 neg r2, r3 add r3, r3, r2 bgt cr0, LBB1_2 ; xor r3, r3, r2 LBB1_1: ; blr mr r3, r2 LBB1_2: ; blr ARM Old: ARM New: _test: _test: rsb r3, r0, #0 add r3, r0, r0, asr #31 cmp r0, #0 eor r0, r3, r0, asr #31 movge r3, r0 bx lr mov r0, r3 bx lr Thumb Old: Thumb New: _test: _test: neg r2, r0 asr r2, r0, #31 cmp r0, #0 add r0, r0, r2 bge LBB1_2 eor r0, r2 LBB1_1: @ bx lr cpy r0, r2 LBB1_2: @ bx lr Sparc Old: Sparc New: test: test: save -96, %o6, %o6 save -96, %o6, %o6 sethi 0, %l0 sra %i0, 31, %l0 sub %l0, %i0, %l0 add %i0, %l0, %l1 subcc %i0, -1, %l1 xor %l1, %l0, %i0 bg .BB1_2 restore %g0, %g0, %g0 nop retl .BB1_1: nop or %g0, %l0, %i0 .BB1_2: restore %g0, %g0, %g0 retl nop It also helps alpha/ia64 :) llvm-svn: 35881
-
Chris Lattner authored
llvm-svn: 35879
-
Chris Lattner authored
llvm-svn: 35878
-
Reid Spencer authored
Put the parameter attributes in their own ParamAttr name space. Adjust the rest of llvm as a result. llvm-svn: 35877
-
Reid Spencer authored
and Mach-O systems. Additionally, correct the Mach-O logic code to look at byte 12 not byte 15. Hopefully this fixes the llvm-ld warning on Darwin. llvm-svn: 35876
-
Chris Lattner authored
We now tolerate small amounts of undefined behavior, better emulating what would happen if the transaction actually occurred in memory. This fixes SingleSource/UnitTests/2007-04-10-BitfieldTest.c on PPC, at least until Devang gets a chance to fix the CFE from doing undefined things with bitfields :) llvm-svn: 35875
-
Reid Spencer authored
llvm-svn: 35874
-
Bill Wendling authored
llvm-svn: 35869
-
- Apr 10, 2007
-
-
Chris Lattner authored
llvm-svn: 35867
-
Chris Lattner authored
llvm-svn: 35859
-
Chris Lattner authored
commit a LOT of files. llvm-svn: 35858
-
Chris Lattner authored
llvm-svn: 35857
-
Jeff Cohen authored
llvm-svn: 35856
-
Chris Lattner authored
InstCombine/set.ll:test25 llvm-svn: 35852
-
Jeff Cohen authored
llvm-svn: 35850
-
Owen Anderson authored
series, I promise. llvm-svn: 35848
-
Chris Lattner authored
llvm-svn: 35847
-