| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 117510
|
| |
|
|
|
|
| |
this one.
llvm-svn: 108530
|
| |
|
|
| |
llvm-svn: 108436
|
| |
|
|
|
|
|
|
| |
the corresponding or-icmp-and pattern. This has the added benefit of doing
the matching earlier, and thus being less susceptible to being confused by
earlier transforms.
llvm-svn: 108429
|
| |
|
|
|
|
| |
This now passes LIT, nighty test, and llvm-gcc bootstrap on my machine.
llvm-svn: 108422
|
| |
|
|
| |
llvm-svn: 108389
|
| |
|
|
|
|
| |
value into a single larger comparison.
llvm-svn: 108378
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(X >s -1) ? C1 : C2 and (X <s 0) ? C2 : C1
into ((X >>s 31) & (C2 - C1)) + C1, avoiding the conditional.
This optimization could be extended to take non-const C1 and C2 but we better
stay conservative to avoid code size bloat for now.
for
int sel(int n) {
return n >= 0 ? 60 : 100;
}
we now generate
sarl $31, %edi
andl $40, %edi
leal 60(%rdi), %eax
instead of
testl %edi, %edi
movl $60, %ecx
movl $100, %eax
cmovnsl %ecx, %eax
llvm-svn: 107866
|
| |
|
|
|
|
| |
inst simplify. No functionality change.
llvm-svn: 101873
|
| |
|
|
|
|
|
|
| |
handle NaN properly.
Do (X une Y) ? X : Y -> X if one of X and Y is not zero.
llvm-svn: 96955
|
| |
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
| |
|
|
|
|
|
|
| |
"sext cond" instead of a select. This simplifies some instcombine
code, matches the policy for zext (cond ? 1 : 0 -> zext), and allows
us to generate better code for a testcase on ppc.
llvm-svn: 94339
|
| |
|
|
| |
llvm-svn: 92760
|
| |
|
|
| |
llvm-svn: 92688
|
|
|
llvm-svn: 92687
|