Benjamin Kramer
0baa94a13b
InstCombine: Turn icmp + sext into bitwise/integer ops when the input has only one unknown bit.
int test1(unsigned x) { return (x&8) ? 0 : -1; }
int test3(unsigned x) { return (x&8) ? -1 : 0; }
before (x86_64):
_test1:
andl $8, %edi
cmpl $1, %edi
sbbl %eax, %eax
ret
_test3:
andl $8, %edi
cmpl $1, %edi
sbbl %eax, %eax
notl %eax
ret
after:
_test1:
shrl $3, %edi
andl $1, %edi
leal -1(%rdi), %eax
ret
_test3:
shll $28, %edi
movl %edi, %eax
sarl $31, %eax
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128732 91177308-0d34-0410-b5e6-96231b3b80d8
2011-04-01 20:09:10 +00:00
..
2011-01-16 08:09:24 +00:00
2011-03-11 21:52:04 +00:00
2011-01-16 17:05:09 +00:00
2011-03-27 14:26:13 +00:00
2011-01-16 21:57:20 +00:00
2011-03-01 00:33:47 +00:00
2011-03-30 21:37:19 +00:00
2011-01-03 23:38:13 +00:00
2011-03-20 17:59:11 +00:00
2010-12-21 23:54:34 +00:00
2011-03-18 16:50:32 +00:00
2011-01-14 07:46:33 +00:00
2011-04-01 20:09:10 +00:00
2011-03-12 17:18:11 +00:00
2011-03-07 21:28:14 +00:00
2011-03-08 12:39:03 +00:00
2011-03-15 07:41:25 +00:00
2011-03-08 03:06:19 +00:00
2011-02-22 22:25:39 +00:00
2011-03-07 22:43:45 +00:00
2011-02-14 23:03:23 +00:00
2011-03-18 16:50:32 +00:00
2011-03-18 16:50:32 +00:00
2011-02-18 05:05:01 +00:00
2011-01-21 22:07:57 +00:00
2011-02-09 06:32:02 +00:00
2011-03-10 19:51:54 +00:00
2011-03-29 05:19:52 +00:00
2011-03-15 02:23:35 +00:00
2011-03-09 21:27:52 +00:00
2011-01-29 04:53:35 +00:00