Sander de Smalen
eaee477eda
[LV] Use VScaleForTuning to allow wider epilogue VFs.
...
When the main loop is e.g. VF=vscale x 1 and the epilogue VF cannot
be any smaller, the vectorizer should try to estimate how many lanes are
executed at runtime and allow a suitable fixed-width VF to be chosen. It
can use VScaleForTuning to figure out what a suitable fixed-width VF could
be. For the case where the main loop VF is VF=vscale x 1, and VScaleForTuning=8,
it could still choose an epilogue VF upto VF=4.
This was a bit tricky to test, so this patch also introduces a wrapper
function to get 'VScaleForTuning' by also considering vscale_range.
If min and max are equal, then that will be the vscale we compile for.
It makes little sense to tune for a different width if the code
will not be portable for other widths.
Reviewed By: david-arm
Differential Revision: https://reviews.llvm.org/D118709
2022-02-03 15:40:17 +00:00
..
2021-09-29 21:51:08 +02:00
2021-09-29 21:51:08 +02:00
2021-09-29 21:51:08 +02:00
2021-09-29 21:51:08 +02:00
2022-02-02 14:46:27 +01:00
2022-02-01 01:40:45 -06:00
2021-09-29 21:51:08 +02:00
2021-09-29 21:51:08 +02:00
2022-01-11 11:31:08 -08:00
2021-10-09 15:58:31 +01:00
2022-01-19 10:57:57 -08:00
2022-01-22 12:39:22 +00:00
2022-01-19 11:32:10 +01:00
2021-11-27 09:52:55 +01:00
2022-02-03 11:09:14 +00:00
2022-01-25 23:13:46 +01:00
2022-01-18 11:24:11 +01:00
2021-09-29 21:51:08 +02:00
2022-01-17 18:14:36 +01:00
2022-01-26 14:25:31 +01:00
2021-12-24 10:27:03 -05:00
2022-01-20 14:49:26 +01:00
2021-10-20 17:06:47 +02:00
2022-01-18 12:08:14 -08:00
2022-01-06 14:23:51 +01:00
2022-02-02 16:32:10 +00:00
2021-11-27 09:52:55 +01:00
2022-02-01 10:41:16 -08:00
2022-02-02 09:23:09 +00:00
2021-11-16 22:48:45 +00:00
2022-01-25 13:25:19 +07:00
2021-11-08 16:51:57 -05:00
2022-01-19 12:55:09 +01:00
2022-01-31 09:31:34 +01:00
2022-02-01 11:05:34 -08:00
2021-12-02 03:53:50 -08:00
2022-02-03 16:45:56 +07:00
2021-11-08 22:29:08 +08:00
2021-11-29 15:23:34 -08:00
2022-01-28 13:52:21 -06:00
2022-01-26 13:42:21 +07:00
2022-01-26 11:15:03 +01:00
2022-01-26 11:38:41 +01:00
2021-10-08 09:13:41 +01:00
2022-01-17 11:44:03 -08:00
2022-01-11 17:30:48 +00:00
2021-09-29 19:53:34 +01:00
2022-01-31 16:28:13 -05:00
2022-01-24 21:26:38 +00:00
2022-01-04 15:20:35 +00:00
2021-11-29 15:23:34 -08:00
2022-01-11 11:31:08 -08:00
2022-01-14 18:53:18 -08:00
2022-01-11 11:31:08 -08:00
2021-12-15 15:58:05 +00:00
2022-01-11 11:31:08 -08:00
2022-02-03 15:40:17 +00:00
2022-01-20 10:22:21 +00:00
2021-10-18 16:48:10 -07:00
2022-01-28 10:47:52 +00:00
2021-12-20 12:55:32 -08:00
2021-11-25 07:21:42 -05:00
2022-01-26 12:43:31 +01:00
2021-10-18 16:48:10 -07:00
2021-12-09 18:45:06 +07:00
2021-10-20 14:23:03 +07:00
2022-01-30 10:46:54 +00:00
2022-01-28 12:41:45 -08:00
2022-02-01 01:40:44 -06:00
2022-01-05 12:16:26 +01:00
2022-02-03 12:32:50 +03:00
2022-02-03 12:32:50 +03:00
2021-11-08 21:19:07 -08:00
2022-01-18 16:00:47 +03:00
2021-09-29 21:51:08 +02:00
2021-12-12 04:40:17 +00:00
2022-02-03 12:29:44 +01:00
2022-01-18 14:34:40 -06:00
2021-11-02 09:53:59 -04:00
2022-01-04 15:23:09 +01:00
2022-01-11 11:31:08 -08:00
2022-02-03 12:32:50 +03:00
2022-02-03 06:50:06 -08:00
2021-10-20 15:16:17 +02:00
2022-01-27 19:23:56 +01:00
2021-10-20 17:06:47 +02:00
2021-10-20 17:06:47 +02:00
2022-02-01 09:35:37 +00:00
2021-11-27 09:52:55 +01:00
2021-12-10 12:21:37 -08:00
2022-02-03 13:49:30 +00:00
2021-12-09 07:55:02 +00:00
2021-10-21 12:37:54 -04:00
2021-12-21 18:13:03 +00:00