Nikolai Bozhenov
3a4f22c55f
[X86] Replace AND+IMM64 with SRL/SHL
...
Emit SHRQ/SHLQ instead of ANDQ with a 64 bit constant mask if the result
is unused and the mask has only higher/lower bits set. For example, with
this patch LLVM emits
shrq $41, %rdi
je
instead of
movabsq $0xFFFFFE0000000000, %rcx
testq %rcx, %rdi
je
This reduces number of instructions, code size and register pressure.
The transformation is applied only for cases where the mask cannot be
encoded as an immediate value within TESTQ instruction.
Differential Revision: https://reviews.llvm.org/D28198
llvm-svn: 291806
2017-01-12 19:54:27 +00:00
..
2017-01-05 13:27:52 +00:00
2016-10-05 17:22:11 +00:00
2016-12-15 16:05:29 +00:00
2016-10-11 13:36:07 +00:00
2017-01-11 19:55:19 +00:00
2016-11-15 13:29:23 +00:00
2016-12-22 00:45:21 +00:00
2016-10-05 22:15:37 +00:00
2016-12-14 16:43:44 +00:00
2016-11-24 21:48:50 +00:00
2016-11-28 17:58:19 +00:00
2016-12-07 13:05:04 +00:00
2016-12-15 16:05:29 +00:00
2016-12-14 16:43:44 +00:00
2016-12-08 19:01:00 +00:00
2016-12-08 19:01:00 +00:00
2016-12-08 19:01:00 +00:00
2016-12-08 19:01:00 +00:00
2016-10-31 23:28:45 +00:00
2017-01-11 19:55:19 +00:00
2016-10-12 23:58:45 +00:00
2016-09-27 06:44:27 +00:00
2016-12-13 01:38:41 +00:00
2017-01-11 01:36:57 +00:00
2016-12-06 12:24:14 +00:00
2017-01-07 20:38:36 +00:00
2016-10-08 18:36:57 +00:00
2016-10-08 18:36:57 +00:00
2016-10-08 18:36:57 +00:00
2016-10-08 18:36:57 +00:00
2016-09-29 05:54:28 +00:00
2016-12-28 10:12:48 +00:00
2016-10-08 18:36:57 +00:00
2016-10-08 18:36:57 +00:00
2016-10-10 06:25:42 +00:00
2016-10-08 18:36:57 +00:00
2017-01-03 05:46:18 +00:00
2016-10-08 18:36:57 +00:00
2016-10-08 18:36:57 +00:00
2017-01-04 08:05:42 +00:00
2016-12-28 10:12:48 +00:00
2017-01-07 22:20:34 +00:00
2016-09-29 05:54:39 +00:00
2016-10-16 04:54:31 +00:00
2017-01-09 02:44:34 +00:00
2017-01-11 19:55:19 +00:00
2017-01-12 06:49:12 +00:00
2017-01-09 04:19:34 +00:00
2017-01-03 05:46:18 +00:00
2016-11-30 23:48:26 +00:00
2016-12-28 10:12:48 +00:00
2016-09-13 07:57:00 +00:00
2017-01-09 02:44:34 +00:00
2016-09-26 06:42:07 +00:00
2016-09-29 05:54:39 +00:00
2017-01-05 01:34:55 +00:00
2017-01-03 05:45:57 +00:00
2016-11-13 14:29:32 +00:00
2016-09-02 05:29:09 +00:00
2017-01-09 02:44:34 +00:00
2016-11-30 23:48:26 +00:00
2016-09-05 08:26:51 +00:00
2016-12-28 10:12:48 +00:00
2016-09-19 08:58:43 +00:00
2017-01-07 22:20:34 +00:00
2016-10-25 04:00:29 +00:00
2016-12-11 14:10:52 +00:00
2017-01-07 22:20:34 +00:00
2016-12-28 10:12:48 +00:00
2017-01-12 06:49:03 +00:00
2017-01-03 07:00:40 +00:00
2017-01-11 12:59:32 +00:00
2017-01-09 02:44:34 +00:00
2017-01-03 05:46:18 +00:00
2016-12-28 10:12:48 +00:00
2017-01-09 04:19:34 +00:00
2016-11-22 04:57:34 +00:00
2016-09-22 03:00:50 +00:00
2016-12-10 23:09:43 +00:00
2016-12-21 10:43:36 +00:00
2017-01-07 22:20:34 +00:00
2017-01-07 22:20:34 +00:00
2016-12-28 10:12:48 +00:00
2017-01-03 05:46:18 +00:00
2017-01-07 22:20:34 +00:00
2017-01-07 22:20:34 +00:00
2017-01-04 07:32:03 +00:00
2017-01-03 05:45:57 +00:00
2017-01-03 05:46:18 +00:00
2017-01-03 05:45:57 +00:00
2016-12-28 10:12:48 +00:00
2016-11-22 04:57:34 +00:00
2016-12-28 10:12:48 +00:00
2016-11-30 23:48:26 +00:00
2017-01-03 05:46:18 +00:00
2017-01-03 05:45:57 +00:00
2016-12-28 10:12:48 +00:00
2017-01-07 22:20:34 +00:00
2016-12-28 10:12:48 +00:00
2016-12-28 10:12:48 +00:00
2017-01-07 22:20:34 +00:00
2016-12-21 20:00:10 +00:00
2017-01-11 09:11:48 +00:00
2016-11-14 01:53:29 +00:00
2016-09-26 06:42:07 +00:00
2016-11-14 01:53:29 +00:00
2016-12-15 16:05:29 +00:00
2016-12-28 10:12:48 +00:00
2016-12-15 16:05:29 +00:00
2017-01-11 19:55:19 +00:00
2017-01-11 12:59:32 +00:00
2016-10-02 15:59:15 +00:00
2016-10-29 11:29:39 +00:00
2016-12-05 18:04:47 +00:00
2016-10-24 18:57:55 +00:00
2016-10-20 18:06:52 +00:00
2016-12-15 07:13:50 +00:00
2016-12-12 23:05:38 +00:00
2016-09-20 01:14:42 +00:00
2016-12-06 12:24:14 +00:00
2016-12-12 13:33:58 +00:00
2017-01-11 19:55:19 +00:00
2017-01-12 19:48:01 +00:00
2017-01-12 19:54:27 +00:00
2017-01-12 19:54:27 +00:00
2016-10-19 17:08:23 +00:00
2016-12-14 16:43:44 +00:00
2017-01-10 23:43:04 +00:00
2016-12-14 16:43:44 +00:00
2016-10-20 18:06:52 +00:00
2016-10-11 20:36:43 +00:00
2017-01-08 15:53:40 +00:00
2017-01-12 19:54:27 +00:00
2016-11-24 13:23:35 +00:00
2016-10-07 11:18:38 +00:00
2016-09-22 19:50:05 +00:00
2016-10-24 18:57:55 +00:00
2016-11-15 18:44:53 +00:00
2016-10-12 13:48:10 +00:00
2016-10-30 18:13:30 +00:00
2016-11-14 01:53:29 +00:00
2016-12-21 20:00:10 +00:00
2016-09-20 14:42:45 +00:00
2016-12-15 18:03:38 +00:00
2016-12-14 15:08:13 +00:00
2016-12-06 19:09:37 +00:00
2016-12-15 18:03:38 +00:00
2016-12-15 18:03:38 +00:00
2016-12-14 15:08:13 +00:00
2016-12-15 18:03:38 +00:00
2016-10-13 12:49:31 +00:00
2016-12-14 15:08:13 +00:00
2016-12-14 15:08:13 +00:00
2016-12-14 16:43:44 +00:00
2016-12-14 16:43:44 +00:00
2016-11-09 23:53:43 +00:00
2016-12-28 10:12:48 +00:00
2016-10-15 18:56:38 +00:00
2016-10-05 15:39:27 +00:00
2016-09-26 22:53:15 +00:00
2016-12-14 16:43:44 +00:00
2016-09-27 22:28:13 +00:00
2017-01-10 06:01:16 +00:00
2017-01-11 19:55:19 +00:00
2016-12-14 16:43:44 +00:00
2016-10-24 18:57:55 +00:00
2016-09-26 06:42:07 +00:00
2016-11-30 23:48:26 +00:00
2016-11-30 23:48:26 +00:00
2016-11-16 14:54:34 +00:00
2016-10-13 23:00:11 +00:00
2016-11-16 14:12:11 +00:00
2016-11-16 14:12:11 +00:00
2016-12-14 16:43:44 +00:00
2016-09-26 06:42:07 +00:00
2017-01-02 18:05:27 +00:00
2016-12-29 14:31:07 +00:00
2016-12-28 10:12:48 +00:00
2016-12-07 12:10:49 +00:00
2017-01-10 22:02:30 +00:00
2017-01-10 22:02:30 +00:00
2016-12-18 14:26:02 +00:00
2016-10-01 14:26:11 +00:00
2016-12-05 05:50:51 +00:00
2016-09-28 11:22:17 +00:00
2016-09-28 11:22:17 +00:00
2016-12-05 04:51:31 +00:00
2016-12-28 10:12:48 +00:00
2016-09-05 23:58:40 +00:00
2016-09-26 06:42:07 +00:00
2016-09-26 06:42:07 +00:00
2016-10-13 00:55:24 +00:00
2016-12-08 14:08:08 +00:00
2016-12-08 14:08:08 +00:00
2017-01-07 22:20:34 +00:00
2016-10-11 20:36:43 +00:00
2016-11-27 21:37:00 +00:00
2017-01-09 20:26:17 +00:00
2016-10-25 14:29:25 +00:00
2016-10-13 22:38:15 +00:00
2016-12-15 16:05:29 +00:00
2016-12-22 00:45:21 +00:00
2016-12-28 10:12:48 +00:00
2016-12-15 16:05:29 +00:00
2016-11-16 17:42:40 +00:00
2016-11-14 01:53:29 +00:00
2017-01-11 19:55:19 +00:00
2016-12-22 00:45:21 +00:00
2017-01-04 12:08:35 +00:00
2017-01-04 12:08:35 +00:00
2016-09-26 06:42:07 +00:00
2016-10-13 20:54:39 +00:00
2016-11-30 23:48:26 +00:00
2016-11-30 11:30:33 +00:00
2017-01-10 22:02:30 +00:00
2017-01-04 08:05:42 +00:00
2016-12-14 16:43:44 +00:00
2016-12-14 16:43:44 +00:00
2017-01-10 22:10:22 +00:00
2016-12-08 00:06:51 +00:00
2016-09-26 22:38:17 +00:00
2016-10-10 05:48:56 +00:00
2016-10-10 11:11:27 +00:00
2016-10-10 05:48:56 +00:00
2016-10-10 11:11:27 +00:00
2016-10-10 05:48:56 +00:00
2016-11-30 13:21:12 +00:00
2016-10-12 13:44:24 +00:00
2016-09-19 16:49:45 +00:00
2017-01-11 19:55:19 +00:00
2016-12-10 17:00:00 +00:00
2016-12-01 15:41:40 +00:00
2016-09-26 06:42:07 +00:00
2016-11-30 23:48:26 +00:00
2016-11-15 19:42:05 +00:00
2016-12-14 16:43:44 +00:00
2016-09-26 06:42:07 +00:00
2016-12-15 16:05:29 +00:00
2016-10-20 18:06:52 +00:00
2016-11-10 22:37:13 +00:00
2016-12-18 14:26:02 +00:00
2017-01-05 15:11:43 +00:00
2016-09-14 14:08:18 +00:00
2017-01-10 06:01:16 +00:00
2017-01-11 19:55:19 +00:00
2016-10-20 18:06:52 +00:00
2016-10-11 17:05:52 +00:00
2016-12-28 10:12:48 +00:00
2017-01-03 05:46:18 +00:00
2016-11-30 23:48:26 +00:00
2016-12-18 14:26:02 +00:00
2016-12-15 16:05:29 +00:00
2016-12-15 16:05:29 +00:00
2016-12-14 16:43:44 +00:00
2017-01-04 21:43:39 +00:00
2016-12-22 00:45:21 +00:00
2016-12-15 16:05:29 +00:00
2016-10-22 07:15:00 +00:00
2016-11-30 23:48:26 +00:00
2016-11-29 00:29:27 +00:00
2016-11-15 18:29:24 +00:00
2016-11-16 01:07:12 +00:00
2016-11-16 01:07:12 +00:00
2016-10-19 16:58:59 +00:00
2016-10-14 14:26:47 +00:00
2016-10-21 20:16:27 +00:00
2016-10-21 14:36:58 +00:00
2016-12-28 10:12:48 +00:00
2016-12-05 15:58:21 +00:00
2016-09-20 20:21:13 +00:00
2016-12-22 00:45:21 +00:00
2016-12-18 14:26:02 +00:00
2016-11-21 14:36:19 +00:00
2016-12-15 18:03:38 +00:00
2016-11-23 18:33:49 +00:00
2016-11-23 18:33:49 +00:00
2016-09-14 20:22:03 +00:00
2016-11-30 23:48:26 +00:00
2017-01-09 21:38:17 +00:00
2016-12-16 20:38:39 +00:00
2016-10-20 18:06:52 +00:00
2016-10-21 15:51:24 +00:00
2016-12-21 20:00:10 +00:00
2016-12-13 17:22:39 +00:00
2016-12-15 16:05:29 +00:00
2016-10-20 18:06:52 +00:00
2016-10-11 20:36:43 +00:00
2016-12-15 16:05:29 +00:00
2016-12-18 07:54:23 +00:00
2016-10-10 22:04:12 +00:00
2016-10-10 22:01:42 +00:00
2016-12-14 16:43:44 +00:00
2016-12-10 17:00:00 +00:00
2016-09-09 21:36:17 +00:00
2016-09-22 19:50:05 +00:00
2016-11-30 23:48:26 +00:00
2016-09-19 02:53:43 +00:00
2016-09-13 07:57:00 +00:00
2016-09-26 06:42:07 +00:00
2016-11-30 23:48:26 +00:00
2016-11-30 23:48:26 +00:00
2016-12-18 14:26:02 +00:00
2016-11-04 15:15:19 +00:00
2016-10-31 11:40:14 +00:00
2016-12-05 20:57:37 +00:00
2016-12-07 19:31:08 +00:00
2016-12-07 19:29:18 +00:00
2016-12-09 17:53:11 +00:00
2016-10-20 17:56:36 +00:00
2016-09-12 20:23:28 +00:00
2016-12-07 12:10:49 +00:00
2016-11-22 11:29:19 +00:00
2016-11-30 23:48:26 +00:00
2016-10-11 20:36:43 +00:00
2016-12-16 20:38:39 +00:00
2016-12-16 09:56:02 +00:00
2016-11-21 15:28:21 +00:00
2016-12-15 18:03:38 +00:00
2016-09-04 18:14:45 +00:00
2016-10-10 14:43:55 +00:00
2016-09-30 05:35:42 +00:00
2016-10-17 21:08:39 +00:00
2016-12-15 16:05:29 +00:00
2016-12-08 20:38:46 +00:00
2016-09-30 22:10:12 +00:00
2016-10-24 19:13:29 +00:00
2016-09-03 21:26:36 +00:00
2016-11-15 07:55:22 +00:00
2016-11-30 23:48:26 +00:00
2016-09-14 20:21:28 +00:00
2016-09-14 19:42:03 +00:00
2016-09-13 14:41:39 +00:00
2017-01-11 19:55:19 +00:00
2016-09-14 14:29:16 +00:00
2016-11-23 16:05:51 +00:00
2016-09-07 20:54:33 +00:00
2016-09-07 18:46:15 +00:00
2016-12-21 20:00:10 +00:00
2016-09-09 22:37:27 +00:00
2017-01-05 16:48:28 +00:00
2017-01-05 16:48:28 +00:00
2017-01-05 16:48:28 +00:00
2017-01-11 19:55:19 +00:00
2016-12-06 19:35:20 +00:00
2017-01-10 06:01:16 +00:00
2016-10-01 07:11:24 +00:00
2016-12-22 19:44:45 +00:00
2016-12-06 04:58:39 +00:00
2016-11-21 15:28:21 +00:00
2016-10-11 20:36:43 +00:00
2016-12-15 16:05:29 +00:00
2017-01-11 09:11:48 +00:00
2016-12-15 16:05:29 +00:00
2016-12-28 10:12:48 +00:00
2016-12-15 16:05:29 +00:00
2016-11-06 02:03:58 +00:00
2016-12-28 10:12:48 +00:00
2016-10-10 06:25:42 +00:00
2016-10-01 15:33:01 +00:00
2016-12-28 10:12:48 +00:00
2016-12-12 05:07:17 +00:00
2016-12-15 16:05:29 +00:00
2017-01-09 02:44:34 +00:00
2016-09-26 06:42:07 +00:00
2016-09-26 06:42:07 +00:00
2016-11-16 05:24:10 +00:00
2016-12-28 10:12:48 +00:00
2016-12-15 16:05:29 +00:00
2016-10-19 11:16:58 +00:00
2017-01-11 19:55:19 +00:00
2016-12-28 10:12:48 +00:00
2016-12-07 15:06:14 +00:00
2016-12-09 05:20:11 +00:00
2017-01-03 05:46:18 +00:00
2016-12-07 15:06:14 +00:00
2016-12-07 15:10:05 +00:00
2016-12-27 06:51:09 +00:00
2017-01-03 05:46:18 +00:00
2016-12-07 15:06:14 +00:00
2016-12-12 20:49:11 +00:00
2016-09-14 20:22:03 +00:00
2016-09-14 20:22:03 +00:00
2016-09-14 20:22:03 +00:00
2016-12-13 01:38:41 +00:00
2016-11-30 23:48:26 +00:00
2016-11-30 23:48:26 +00:00
2016-11-30 23:48:26 +00:00
2016-12-13 01:38:41 +00:00
2016-12-13 01:21:15 +00:00
2016-11-30 23:48:26 +00:00
2016-11-30 23:48:26 +00:00
2016-12-14 16:43:44 +00:00
2017-01-03 05:46:18 +00:00
2016-10-28 17:21:05 +00:00
2016-10-28 17:21:05 +00:00
2016-12-15 18:03:38 +00:00
2017-01-05 20:01:19 +00:00
2016-09-08 23:35:10 +00:00
2016-10-12 20:39:33 +00:00
2016-10-11 20:36:43 +00:00
2016-09-08 00:48:37 +00:00
2017-01-11 19:55:19 +00:00
2016-11-30 23:48:26 +00:00
2016-11-30 23:48:26 +00:00
2016-09-04 17:50:03 +00:00
2016-12-15 16:05:29 +00:00
2016-12-15 16:05:29 +00:00
2016-09-18 12:45:23 +00:00
2016-12-14 00:27:35 +00:00
2016-10-11 20:36:43 +00:00
2016-12-14 15:08:13 +00:00
2016-11-08 15:07:01 +00:00
2016-11-08 14:10:28 +00:00
2016-12-15 16:05:29 +00:00
2016-12-18 14:26:02 +00:00
2016-12-28 10:12:48 +00:00
2017-01-03 05:46:18 +00:00
2016-12-28 10:12:48 +00:00
2016-09-04 13:30:46 +00:00
2016-12-15 16:05:29 +00:00
2017-01-10 22:02:30 +00:00
2016-12-15 16:05:29 +00:00
2016-12-15 16:05:29 +00:00
2017-01-10 22:02:30 +00:00
2017-01-10 22:02:30 +00:00
2016-12-15 16:05:29 +00:00
2017-01-11 09:11:48 +00:00
2016-11-13 20:04:52 +00:00
2017-01-11 04:59:25 +00:00
2017-01-11 04:59:25 +00:00
2016-12-15 16:05:29 +00:00
2016-12-15 16:05:29 +00:00
2016-12-15 16:05:29 +00:00
2016-12-15 16:05:29 +00:00
2016-12-06 12:24:14 +00:00
2016-12-12 07:57:24 +00:00
2016-12-02 13:16:08 +00:00
2016-12-28 10:12:48 +00:00
2016-10-03 16:38:27 +00:00
2016-10-11 13:55:49 +00:00
2016-10-24 21:47:19 +00:00
2017-01-09 02:44:34 +00:00
2017-01-03 05:46:18 +00:00
2016-10-25 14:29:25 +00:00
2016-10-25 14:29:25 +00:00
2016-10-25 14:29:25 +00:00
2016-12-12 13:33:58 +00:00
2016-10-25 14:29:25 +00:00
2016-10-25 14:29:25 +00:00
2016-12-12 13:33:58 +00:00
2017-01-03 05:46:18 +00:00
2016-11-29 14:18:51 +00:00
2016-11-29 14:18:51 +00:00
2017-01-05 15:11:43 +00:00
2017-01-09 02:44:34 +00:00
2017-01-09 22:13:51 +00:00
2017-01-09 22:13:51 +00:00
2017-01-11 10:36:51 +00:00
2017-01-09 22:13:51 +00:00
2017-01-09 22:13:51 +00:00
2017-01-11 10:36:51 +00:00
2017-01-09 22:13:51 +00:00
2017-01-09 22:13:51 +00:00
2017-01-11 10:36:51 +00:00
2016-12-28 10:12:48 +00:00
2017-01-06 15:56:52 +00:00
2017-01-06 15:56:52 +00:00
2017-01-06 15:56:52 +00:00
2017-01-03 05:46:18 +00:00
2017-01-03 05:46:18 +00:00
2017-01-03 05:46:18 +00:00
2017-01-03 05:46:18 +00:00
2017-01-04 07:32:03 +00:00
2017-01-04 07:32:03 +00:00
2016-10-13 05:29:41 +00:00
2017-01-07 15:37:50 +00:00
2017-01-10 18:57:17 +00:00
2016-12-01 15:41:40 +00:00
2016-12-11 21:26:25 +00:00
2016-12-28 10:12:48 +00:00
2016-12-28 10:12:48 +00:00
2016-11-30 16:33:46 +00:00
2016-12-01 15:41:40 +00:00
2017-01-11 18:48:00 +00:00
2016-12-16 11:48:51 +00:00
2017-01-07 22:20:34 +00:00
2016-12-18 14:26:02 +00:00
2017-01-09 02:44:34 +00:00
2017-01-10 22:02:30 +00:00
2017-01-10 22:02:30 +00:00
2016-12-16 09:56:02 +00:00
2017-01-04 08:05:42 +00:00
2017-01-03 05:46:18 +00:00
2017-01-06 15:54:23 +00:00
2016-12-28 10:12:48 +00:00
2016-10-08 18:51:55 +00:00
2016-12-01 13:47:02 +00:00
2016-12-15 16:05:29 +00:00
2016-12-21 09:18:37 +00:00
2016-12-28 10:12:48 +00:00
2016-10-01 13:10:14 +00:00
2016-11-30 16:33:46 +00:00
2017-01-11 04:59:25 +00:00
2016-10-01 13:10:14 +00:00
2017-01-05 15:11:43 +00:00
2016-12-15 18:03:38 +00:00
2016-10-08 19:54:28 +00:00
2016-10-08 19:54:28 +00:00
2016-10-08 19:54:28 +00:00
2016-10-08 19:54:28 +00:00
2016-10-08 19:54:28 +00:00
2016-12-15 16:05:29 +00:00
2016-11-30 16:33:46 +00:00
2016-10-08 19:54:28 +00:00
2016-09-26 06:42:07 +00:00
2016-12-14 16:43:44 +00:00
2016-11-30 23:48:26 +00:00
2016-09-22 19:50:05 +00:00
2016-09-22 19:50:05 +00:00
2016-10-12 22:13:19 +00:00
2016-09-08 23:35:10 +00:00
2016-12-29 17:07:10 +00:00
2016-09-30 00:17:49 +00:00
2016-10-13 15:48:48 +00:00
2016-11-30 23:48:26 +00:00
2016-10-24 18:57:55 +00:00
2017-01-10 06:01:16 +00:00
2016-10-03 20:11:24 +00:00
2016-10-14 18:20:41 +00:00
2016-09-04 17:16:01 +00:00
2016-09-20 11:02:26 +00:00
2016-10-24 18:57:55 +00:00
2016-11-23 02:07:04 +00:00
2016-12-19 09:20:38 +00:00
2016-12-19 09:20:38 +00:00
2016-11-23 02:07:04 +00:00