David Sherwood
2e080eb00a
[SVE] Add support for scalable vectorization of loops with selects and cmps
...
I have removed an unnecessary assert in LoopVectorizationCostModel::getInstructionCost
that prevented a cost being calculated for select instructions when using
scalable vectors. In addition, I have changed AArch64TTIImpl::getCmpSelInstrCost
to only do special cost calculations for fixed width vectors and fall
back to the base version for scalable vectors.
I have added a simple cost model test for cmps and selects:
test/Analysis/CostModel/sve-cmpsel.ll
and some simple tests that show we vectorize loops with cmp and select:
test/Transforms/LoopVectorize/AArch64/sve-basic-vec.ll
Differential Revision: https://reviews.llvm.org/D95039
2021-01-22 09:48:13 +00:00
..
2021-01-22 09:48:13 +00:00
2020-12-30 22:36:08 +09:00
2021-01-21 21:03:41 +00:00
2020-08-26 16:55:25 +01:00
2021-01-21 21:08:54 -08:00
2021-01-06 11:22:50 +09:00
2020-11-06 11:12:10 +01:00
2021-01-18 11:18:28 +00:00
2020-06-14 20:55:59 +01:00
2020-06-26 20:41:37 -07:00
2020-10-31 00:25:32 -07:00
2021-01-06 11:22:50 +09:00
2020-12-28 10:13:28 -08:00
2020-11-24 15:12:54 +02:00
2020-12-30 04:21:04 +09:00
2021-01-07 09:04:07 +02:00
2020-04-20 11:55:49 -07:00
2020-04-20 11:55:49 -07:00
2020-05-13 13:50:09 +01:00
2021-01-12 12:34:52 -08:00
2021-01-08 09:50:10 +00:00
2020-12-30 04:21:04 +09:00
2020-12-30 22:36:08 +09:00
2020-11-23 20:00:58 -05:00
2020-10-08 08:28:58 +01:00
2020-06-26 20:41:37 -07:00
2020-12-17 01:03:49 +03:00
2020-12-07 21:48:21 -08:00
2020-11-16 14:48:09 -05:00
2021-01-06 11:22:50 +09:00
2020-12-17 01:03:49 +03:00
2020-12-30 00:48:11 +03:00
2020-05-13 13:50:09 +01:00
2020-12-30 04:21:04 +09:00
2021-01-06 11:22:50 +09:00
2020-12-30 04:21:04 +09:00
2020-12-30 04:21:04 +09:00
2021-01-17 20:03:22 -08:00
2020-07-29 10:23:07 -07:00
2020-12-30 22:36:08 +09:00
2021-01-17 20:29:13 -08:00
2020-12-28 10:13:28 -08:00
2020-12-07 21:48:21 -08:00
2020-08-26 16:55:25 +01:00
2021-01-08 10:49:44 +00:00
2020-12-30 04:21:04 +09:00
2020-06-26 20:41:37 -07:00
2021-01-20 11:48:48 +00:00
2020-12-30 04:21:04 +09:00
2020-12-02 13:23:43 +00:00
2020-07-24 12:14:27 -07:00
2020-07-24 12:14:27 -07:00
2021-01-19 20:09:42 +01:00
2020-07-30 19:40:29 -07:00
2021-01-08 10:49:44 +00:00
2020-12-02 10:09:56 -05:00
2021-01-08 10:49:44 +00:00
2021-01-21 21:08:54 -08:00
2020-12-30 04:21:04 +09:00
2020-12-30 04:21:04 +09:00
2020-12-30 04:21:04 +09:00
2020-12-07 21:48:21 -08:00
2020-12-30 04:21:04 +09:00
2020-05-13 13:50:09 +01:00
2021-01-06 11:22:50 +09:00
2021-01-06 11:22:50 +09:00
2020-04-15 10:39:07 +03:00
2020-06-09 18:30:56 +00:00
2020-12-30 04:21:04 +09:00
2020-08-30 18:21:44 +01:00
2020-06-26 20:41:37 -07:00
2021-01-06 11:22:50 +09:00
2021-01-06 11:22:50 +09:00
2020-12-28 08:58:15 +09:00
2020-10-11 16:58:34 +01:00
2020-10-29 21:45:13 +01:00
2020-12-30 22:36:08 +09:00
2021-01-01 13:54:41 +00:00
2020-06-26 20:41:37 -07:00
2020-05-13 13:50:09 +01:00
2020-10-07 18:57:07 +01:00
2020-11-16 14:48:09 -05:00
2021-01-08 10:49:44 +00:00
2021-01-08 10:49:44 +00:00
2020-12-30 22:36:08 +09:00
2020-12-27 18:21:12 +00:00
2020-06-26 20:41:37 -07:00
2020-08-26 16:55:25 +01:00
2020-07-30 14:28:08 +01:00
2020-12-17 01:03:49 +03:00
2020-10-31 00:25:32 -07:00
2020-12-01 11:30:34 +00:00
2020-08-26 16:55:25 +01:00
2020-12-30 04:21:04 +09:00
2020-05-13 13:50:09 +01:00
2020-12-17 01:03:49 +03:00
2020-04-30 15:47:21 -04:00
2020-06-26 20:41:37 -07:00
2020-06-12 10:31:18 +01:00
2021-01-11 14:42:46 +00:00
2020-10-06 10:11:58 +01:00