Manman Ren
9236362a64
X86: optimize generated code for integer ABS
...
This patch will generate the following for integer ABS:
movl %edi, %eax
negl %eax
cmovll %edi, %eax
INSTEAD OF
movl %edi, %ecx
sarl $31, %ecx
leal (%rdi,%rcx), %eax
xorl %ecx, %eax
There exists a target-independent DAG combine for integer ABS, which converts
integer ABS to sar+add+xor. For X86, we match this pattern back to neg+cmov.
This is implemented in PerformXorCombine.
rdar://10695237
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158175 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-07 22:39:10 +00:00
..
2012-05-01 22:50:45 +00:00
2012-06-04 11:27:21 +00:00
2012-04-27 07:11:58 +00:00
2012-04-16 13:49:17 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-04-16 13:49:17 +00:00
2012-02-10 04:10:36 +00:00
2012-01-31 02:09:07 +00:00
2012-02-01 23:20:51 +00:00
2012-04-27 07:11:58 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-04-16 13:49:17 +00:00
2012-04-17 13:55:23 +00:00
2012-04-21 20:08:32 +00:00
2012-05-22 15:25:31 +00:00
2012-01-25 22:24:19 +00:00
2012-04-17 06:20:42 +00:00
2012-06-04 11:27:21 +00:00
2012-06-04 11:27:21 +00:00
2012-06-04 11:27:21 +00:00
2012-04-07 21:19:08 +00:00
2012-02-03 13:18:25 +00:00
2012-04-27 07:11:58 +00:00
2012-02-13 12:42:26 +00:00
2012-02-14 13:06:32 +00:00
2012-04-25 21:22:33 +00:00
2012-02-24 13:29:50 +00:00
2012-03-01 00:41:17 +00:00
2012-03-15 08:49:06 +00:00
2012-03-20 08:56:43 +00:00
2012-03-27 01:50:58 +00:00
2012-04-09 23:58:59 +00:00
2012-05-07 18:47:44 +00:00
2012-05-18 01:33:51 +00:00
2012-05-19 20:30:08 +00:00
2012-05-19 23:34:59 +00:00
2012-02-01 23:20:51 +00:00
2012-05-17 23:44:19 +00:00
2012-06-06 17:37:40 +00:00
2012-06-06 17:37:40 +00:00
2012-05-17 23:44:19 +00:00
2012-02-09 05:12:58 +00:00
2012-04-23 21:39:35 +00:00
2012-04-25 21:04:54 +00:00
2012-04-22 13:22:48 +00:00
2012-04-15 22:43:31 +00:00
2012-01-20 05:53:00 +00:00
2012-05-03 07:12:59 +00:00
2012-05-19 19:57:37 +00:00
2012-04-15 11:18:59 +00:00
2012-06-04 11:27:21 +00:00
2012-01-26 08:51:39 +00:00
2012-01-27 02:31:29 +00:00
2012-05-31 04:37:40 +00:00
2012-06-04 11:27:21 +00:00
2012-02-02 09:10:43 +00:00
2012-05-21 06:40:16 +00:00
2012-02-07 06:28:42 +00:00
2012-02-02 19:00:49 +00:00
2012-05-10 12:39:13 +00:00
2012-03-20 21:43:40 +00:00
2012-03-20 17:20:46 +00:00
2012-04-06 07:45:23 +00:00
2012-02-02 19:00:49 +00:00
2012-02-01 10:46:14 +00:00
2012-02-12 15:05:31 +00:00
2012-06-04 11:27:21 +00:00
2012-05-25 15:40:54 +00:00
2012-06-04 11:27:21 +00:00
2012-04-16 13:49:17 +00:00
2012-04-16 22:20:48 +00:00
2012-04-23 21:39:35 +00:00
2012-04-27 07:11:58 +00:00
2012-02-01 23:20:51 +00:00
2012-04-16 13:49:17 +00:00
2012-05-06 14:25:16 +00:00
2012-05-06 14:25:16 +00:00
2012-05-18 00:07:14 +00:00
2012-05-22 14:52:12 +00:00
2012-05-23 20:21:06 +00:00
2012-01-27 23:33:07 +00:00
2012-05-22 15:25:31 +00:00
2012-04-16 16:38:48 +00:00
2012-05-17 23:44:19 +00:00
2012-02-01 23:20:51 +00:00
2012-06-06 17:37:40 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-02-10 04:10:36 +00:00
2012-04-30 16:57:15 +00:00
2012-05-20 06:38:37 +00:00
2012-04-10 20:35:27 +00:00
2012-02-22 19:06:13 +00:00
2012-02-22 19:06:13 +00:00
2012-06-03 18:58:46 +00:00
2012-06-03 07:26:46 +00:00
2012-02-01 23:20:51 +00:00
2012-01-30 23:47:44 +00:00
2012-04-27 12:07:43 +00:00
2012-04-27 12:07:43 +00:00
2012-05-24 22:08:29 +00:00
2012-04-27 07:11:58 +00:00
2012-06-07 22:39:10 +00:00
2012-04-27 07:11:58 +00:00
2012-02-01 23:20:51 +00:00
2012-02-10 04:10:36 +00:00
2012-05-30 21:46:58 +00:00
2012-06-07 00:42:47 +00:00
2012-03-19 14:10:12 +00:00
2012-04-16 13:49:17 +00:00
2012-03-25 09:02:19 +00:00
2012-05-14 21:10:25 +00:00
2012-03-01 17:41:19 +00:00
2012-04-16 13:49:17 +00:00
2012-04-05 20:30:20 +00:00
2012-04-27 07:11:58 +00:00
2012-03-21 22:31:31 +00:00
2012-04-16 13:49:17 +00:00
2012-02-01 23:20:51 +00:00
2012-06-04 11:27:21 +00:00
2012-02-05 02:37:36 +00:00
2012-03-29 21:11:47 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 22:33:25 +00:00
2012-01-31 02:09:07 +00:00
2012-02-22 23:49:50 +00:00
2012-02-15 23:43:37 +00:00
2012-05-22 15:25:31 +00:00
2012-02-23 10:36:04 +00:00
2012-06-04 11:27:21 +00:00
2012-02-01 23:20:51 +00:00
2012-05-30 18:08:02 +00:00
2012-02-01 23:20:51 +00:00
2012-02-17 16:05:50 +00:00
2012-05-17 23:44:19 +00:00
2012-02-01 23:20:51 +00:00
2012-05-17 23:44:19 +00:00
2012-04-16 13:49:17 +00:00
2012-04-16 13:49:17 +00:00
2012-04-09 16:06:03 +00:00
2012-05-20 18:36:15 +00:00
2012-06-04 11:27:21 +00:00
2012-05-16 01:54:27 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-03-21 22:31:31 +00:00
2012-05-19 20:54:07 +00:00
2012-02-01 23:20:51 +00:00
2012-05-07 18:06:23 +00:00
2012-04-20 23:36:09 +00:00
2012-05-20 06:38:32 +00:00
2012-02-05 11:19:39 +00:00
2012-03-02 02:50:46 +00:00
2012-04-16 13:49:17 +00:00
2012-04-27 07:11:58 +00:00
2012-04-16 13:49:17 +00:00
2012-04-27 07:11:58 +00:00
2012-05-18 06:42:06 +00:00
2012-05-29 19:05:25 +00:00
2012-06-04 11:27:21 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-06-04 11:27:21 +00:00
2012-02-01 23:20:51 +00:00
2012-04-02 22:30:39 +00:00
2012-03-01 19:57:20 +00:00
2012-04-16 13:49:17 +00:00
2012-04-16 13:49:17 +00:00
2012-05-26 20:01:32 +00:00
2012-04-07 21:19:08 +00:00
2012-04-16 13:49:17 +00:00
2012-06-01 18:19:46 +00:00
2012-06-01 05:00:54 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-04-19 20:54:44 +00:00
2012-02-22 03:04:40 +00:00
2012-06-01 16:27:21 +00:00
2012-06-07 18:39:19 +00:00
2012-05-11 10:19:54 +00:00
2012-04-09 02:13:06 +00:00
2012-05-14 18:58:10 +00:00
2012-06-04 11:27:21 +00:00
2012-04-27 07:11:58 +00:00
2012-02-01 23:20:51 +00:00
2012-04-16 13:49:17 +00:00
2012-05-22 15:25:31 +00:00
2012-04-07 01:33:14 +00:00
2012-03-30 00:26:54 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-04-23 21:53:37 +00:00
2012-04-07 21:19:08 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-15 19:36:44 +00:00
2012-04-27 07:11:58 +00:00
2012-05-18 06:42:06 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-02-13 04:33:33 +00:00
2012-02-28 11:54:05 +00:00
2012-02-01 23:20:51 +00:00
2012-02-01 23:20:51 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-04-27 07:11:58 +00:00
2012-02-01 23:20:51 +00:00
2012-04-07 21:19:08 +00:00
2012-05-17 23:44:19 +00:00
2012-02-01 23:20:51 +00:00
2012-02-25 03:37:25 +00:00
2012-04-27 07:11:58 +00:00
2012-02-05 00:55:56 +00:00
2012-04-16 13:49:17 +00:00
2012-02-01 23:20:51 +00:00
2012-03-21 22:31:31 +00:00