Graham Sellers
84cbc95b54
[AMDGPU] Split 64-Bit XNOR to 64-Bit NOT/XOR
...
The identity ~(x ^ y) == (~x ^ y) == (x ^ ~y) allows XNOR (XOR/NOT) to turn into NOT/XOR. Handling this case with its own split means we can make the NOT remain in the scalar unit. Previously, we split 64-bit XNOR into two 32-bit XNOR, then lowered. Now, we get three instructions (s_not, v_xor, v_xor) rather than four in the case where either of the sources is a scalar 64-bit.
Add test cases to xnor.ll to attempt XNOR Vx, Sy and XNOR Sx, Vy. Also adding test that uses the opposite identity such that (~x ^ y) on the scalar unit (or vector for gfx906) can generate XNOR. This already worked, but I didn't see a test for it.
Differential: https://reviews.llvm.org/D55071
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@348075 91177308-0d34-0410-b5e6-96231b3b80d8
2018-12-01 12:27:53 +00:00
..
2018-11-30 14:21:56 +00:00
2018-06-28 23:47:12 +00:00
2018-09-12 18:50:47 +00:00
2018-11-05 22:44:19 +00:00
2018-05-01 15:54:18 +00:00
2018-11-30 22:55:38 +00:00
2018-11-30 14:21:56 +00:00
2018-11-30 14:21:56 +00:00
2018-11-07 20:26:42 +00:00
2018-11-07 20:26:42 +00:00
2018-08-31 05:49:54 +00:00
2018-08-31 05:49:54 +00:00
2018-08-31 05:49:54 +00:00
2018-06-21 18:36:04 +00:00
2018-07-11 20:59:01 +00:00
2018-11-19 15:44:20 +00:00
2018-08-31 05:49:54 +00:00
2018-11-05 12:04:48 +00:00
2018-08-01 19:57:34 +00:00
2018-08-31 05:49:54 +00:00
2018-08-31 05:49:54 +00:00
2018-10-08 10:32:33 +00:00
2018-08-01 15:04:36 +00:00
2018-10-26 13:18:36 +00:00
2017-03-10 19:39:07 +00:00
2018-05-01 15:54:18 +00:00
2018-07-27 06:04:40 +00:00
2018-10-08 17:49:29 +00:00
2018-09-10 02:23:30 +00:00
2018-08-31 05:49:54 +00:00
2018-11-07 14:35:36 +00:00
2018-07-11 20:59:01 +00:00
2018-07-11 20:59:01 +00:00
2018-10-31 13:26:48 +00:00
2018-11-29 16:05:38 +00:00
2018-10-11 23:36:46 +00:00
2018-10-11 23:36:46 +00:00
2018-06-23 03:05:39 +00:00
2018-06-23 03:05:39 +00:00
2018-06-28 23:47:12 +00:00
2018-10-17 15:37:48 +00:00
2018-11-10 20:05:31 +00:00
2018-10-22 16:27:27 +00:00
2018-10-05 04:34:09 +00:00
2018-07-11 20:59:01 +00:00
2018-08-31 05:49:54 +00:00
2018-09-29 02:17:12 +00:00
2018-06-20 19:45:40 +00:00
2018-07-11 20:59:01 +00:00
2018-10-08 10:32:33 +00:00
2018-05-18 21:35:00 +00:00
2018-07-11 20:59:01 +00:00
2018-07-20 09:05:08 +00:00
2018-07-20 09:05:08 +00:00
2018-05-01 15:54:18 +00:00
2018-05-01 15:54:18 +00:00
2018-11-09 17:58:59 +00:00
2017-07-06 20:57:05 +00:00
2018-08-29 07:46:09 +00:00
2018-06-13 17:31:51 +00:00
2018-08-31 05:49:54 +00:00
2018-05-25 17:46:24 +00:00
2018-11-08 00:16:23 +00:00
2017-10-12 18:59:54 +00:00
2017-06-08 19:25:21 +00:00
2018-11-16 00:46:51 +00:00
2018-03-01 21:25:25 +00:00
2018-03-01 19:27:10 +00:00
2018-05-22 02:03:23 +00:00
2018-10-05 14:23:11 +00:00
2018-06-28 23:47:12 +00:00
2018-05-14 12:53:11 +00:00
2018-06-21 13:37:45 +00:00
2018-11-29 20:14:17 +00:00
2018-11-29 20:14:17 +00:00
2018-11-30 14:21:56 +00:00
2018-08-31 05:49:54 +00:00
2017-11-01 19:12:38 +00:00
2018-05-01 15:54:18 +00:00
2018-08-31 05:49:54 +00:00
2018-08-31 05:49:54 +00:00
2018-08-30 14:21:36 +00:00
2018-05-01 15:54:18 +00:00
2018-06-28 23:47:12 +00:00
2018-05-01 16:10:38 +00:00
2018-11-07 21:21:32 +00:00
2017-12-07 10:40:31 +00:00
2018-11-30 14:21:56 +00:00
2018-10-17 15:37:48 +00:00
2018-07-11 20:59:01 +00:00
2018-11-16 01:13:34 +00:00
2018-11-30 14:21:56 +00:00
2018-09-10 10:14:48 +00:00
2018-07-11 20:59:01 +00:00
2018-09-19 00:23:35 +00:00
2018-09-27 02:13:45 +00:00
2017-11-20 14:35:53 +00:00
2018-09-19 00:23:35 +00:00
2018-10-24 08:14:07 +00:00
2018-07-11 20:59:01 +00:00
2018-07-11 20:59:01 +00:00
2018-07-11 20:59:01 +00:00
2018-07-11 20:59:01 +00:00
2017-01-28 18:13:08 +00:00
2018-11-29 20:14:17 +00:00
2018-07-20 09:05:08 +00:00
2018-07-11 20:59:01 +00:00
2018-05-24 20:02:01 +00:00
2018-06-28 23:47:12 +00:00
2018-07-11 20:59:01 +00:00
2018-05-01 15:54:18 +00:00
2018-11-09 17:58:59 +00:00
2018-06-28 23:47:12 +00:00
2017-06-06 11:49:48 +00:00
2017-08-01 19:54:18 +00:00
2018-07-11 20:59:01 +00:00
2018-11-09 17:58:59 +00:00
2018-08-20 19:23:45 +00:00
2018-08-31 05:49:54 +00:00
2018-10-30 10:32:11 +00:00
2018-08-01 18:36:07 +00:00
2016-07-22 17:01:25 +00:00
2016-07-22 17:01:25 +00:00
2018-11-01 19:54:45 +00:00
2018-05-01 15:54:18 +00:00
2018-05-13 10:04:48 +00:00
2018-06-28 23:47:12 +00:00
2018-06-28 23:47:12 +00:00
2018-06-28 23:47:12 +00:00
2018-06-28 23:47:12 +00:00
2018-07-11 20:59:01 +00:00
2018-06-28 23:47:12 +00:00
2016-06-10 02:18:02 +00:00
2018-07-11 20:59:01 +00:00
2018-10-31 13:26:48 +00:00
2018-07-11 20:59:01 +00:00
2018-06-21 13:36:01 +00:00
2018-10-31 13:27:08 +00:00
2018-11-30 18:29:17 +00:00
2018-07-11 20:59:01 +00:00
2018-08-02 23:31:32 +00:00
2018-09-27 18:55:20 +00:00
2018-09-27 02:13:45 +00:00
2018-10-04 21:02:16 +00:00
2018-07-11 20:59:01 +00:00
2018-11-16 05:03:02 +00:00
2018-11-29 11:06:26 +00:00
2018-07-11 20:59:01 +00:00
2018-12-01 12:27:53 +00:00
2018-12-01 12:27:53 +00:00
2018-11-30 14:21:56 +00:00
2018-11-19 19:58:13 +00:00
2017-04-04 16:34:39 +00:00
2018-11-30 22:55:38 +00:00
2018-11-30 22:55:38 +00:00
2018-09-25 23:33:18 +00:00
2018-10-31 13:26:48 +00:00
2018-10-31 13:27:08 +00:00
2018-10-31 18:54:06 +00:00
2018-06-21 18:36:04 +00:00
2018-11-28 12:00:20 +00:00
2018-05-01 15:54:18 +00:00
2018-09-12 18:50:47 +00:00
2018-07-11 20:59:01 +00:00
2018-08-28 18:55:55 +00:00
2018-07-11 20:59:01 +00:00
2018-07-10 17:31:32 +00:00
2018-11-26 17:02:01 +00:00
2018-07-11 20:59:01 +00:00
2018-06-15 15:15:46 +00:00
2018-04-05 13:11:36 +00:00
2018-10-29 17:53:23 +00:00
2018-07-11 20:59:01 +00:00
2018-10-06 03:32:43 +00:00
2018-11-29 16:05:38 +00:00
2016-09-23 09:08:07 +00:00
2016-11-10 16:02:37 +00:00
2018-11-30 14:21:56 +00:00
2018-11-30 14:21:56 +00:00
2018-11-19 21:10:16 +00:00
2018-11-01 22:48:19 +00:00
2018-08-15 21:25:20 +00:00
2018-11-30 14:21:56 +00:00