Ramkumar Ramachandra
98c90a13c6
ISel: introduce vector ISD::LRINT, ISD::LLRINT; custom RISCV lowering ( #66924 )
...
The issue #55208 noticed that std::rint is vectorized by the
SLPVectorizer, but a very similar function, std::lrint, is not.
std::lrint corresponds to ISD::LRINT in the SelectionDAG, and
std::llrint is a familiar cousin corresponding to ISD::LLRINT. Now,
neither ISD::LRINT nor ISD::LLRINT have a corresponding vector variant,
and the LangRef makes this clear in the documentation of llvm.lrint.*
and llvm.llrint.*.
This patch extends the LangRef to include vector variants of
llvm.lrint.* and llvm.llrint.*, and lays the necessary ground-work of
scalarizing it for all targets. However, this patch would be devoid of
motivation unless we show the utility of these new vector variants.
Hence, the RISCV target has been chosen to implement a custom lowering
to the vfcvt.x.f.v instruction. The patch also includes a CostModel for
RISCV, and a trivial follow-up can potentially enable the SLPVectorizer
to vectorize std::lrint and std::llrint, fixing #55208 .
The patch includes tests, obviously for the RISCV target, but also for
the X86, AArch64, and PowerPC targets to justify the addition of the
vector variants to the LangRef.
2023-10-19 13:05:04 +01:00
..
2023-03-27 08:23:05 -05:00
2023-09-08 15:43:21 +08:00
2023-08-29 21:42:22 -04:00
2023-06-13 09:14:37 +00:00
2023-09-08 15:43:21 +08:00
2023-03-31 10:09:48 -04:00
2023-09-08 15:43:21 +08:00
2023-07-15 16:13:48 -04:00
2023-07-15 16:13:48 -04:00
2023-07-15 16:13:48 -04:00
2023-07-25 22:47:11 -04:00
2023-02-20 22:25:49 -05:00
2023-03-12 21:59:18 -04:00
2023-07-20 09:45:37 -04:00
2023-08-31 11:43:47 -04:00
2023-09-08 15:43:21 +08:00
2023-07-15 16:13:48 -04:00
2023-07-15 16:13:48 -04:00
2023-03-16 15:26:12 -04:00
2023-03-16 15:26:12 -04:00
2023-03-16 15:26:12 -04:00
2023-03-16 15:26:12 -04:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-07-15 16:13:48 -04:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-09-13 14:55:07 +08:00
2023-09-01 02:07:48 -04:00
2023-07-15 16:13:48 -04:00
2023-08-28 00:21:09 -04:00
2023-07-29 03:24:21 +00:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-07 17:46:41 +00:00
2023-07-15 16:13:48 -04:00
2023-07-15 16:13:48 -04:00
2023-09-26 05:13:26 +00:00
2023-08-30 16:22:16 +08:00
2023-08-30 16:22:16 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-07 20:05:29 -05:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-07-24 00:35:24 -04:00
2023-02-20 22:25:49 -05:00
2023-06-27 11:33:38 -05:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-07-05 01:58:18 -04:00
2023-07-24 00:35:24 -04:00
2023-07-15 16:13:48 -04:00
2023-07-29 03:24:21 +00:00
2023-07-24 00:35:24 -04:00
2023-06-05 02:50:47 -04:00
2023-07-15 16:13:48 -04:00
2023-09-07 11:14:56 -04:00
2023-07-15 16:13:48 -04:00
2023-07-24 00:35:24 -04:00
2023-09-07 11:14:56 -04:00
2023-03-31 10:09:48 -04:00
2023-07-15 16:13:48 -04:00
2023-10-09 12:31:32 +01:00
2023-10-12 09:32:17 +02:00
2023-04-27 14:41:10 +01:00
2023-09-08 15:43:21 +08:00
2023-04-14 17:36:30 +08:00
2023-04-28 14:31:23 +02:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-10-13 10:59:27 +08:00
2023-09-08 15:43:21 +08:00
2023-09-19 11:18:12 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-25 10:41:04 -07:00
2023-05-03 09:28:07 +01:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 15:00:49 -05:00
2023-09-13 14:55:07 +08:00
2023-07-07 22:46:22 +08:00
2023-09-13 14:55:07 +08:00
2023-03-12 21:59:18 -04:00
2023-02-16 20:28:18 -08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-07-12 14:35:55 +02:00
2023-09-08 15:43:21 +08:00
2023-09-07 20:05:29 -05:00
2023-09-07 20:05:29 -05:00
2023-04-24 10:02:06 -07:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-22 15:26:39 -04:00
2023-05-25 13:56:29 +05:30
2023-05-25 13:56:29 +05:30
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-07 13:03:17 -04:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2023-10-18 02:21:22 +00:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-01 19:45:03 -04:00
2023-06-21 10:30:43 -04:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-03-16 10:32:08 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-02-14 10:25:24 -04:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-06-21 10:24:40 +00:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-22 15:26:39 -04:00
2023-09-26 06:24:47 -04:00
2023-09-13 14:55:07 +08:00
2023-09-28 15:51:14 +08:00
2023-09-08 15:43:21 +08:00
2023-06-21 10:24:40 +00:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-05-24 11:14:26 -05:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-08-14 09:04:27 +02:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-03-01 15:33:45 +01:00
2023-09-13 14:55:07 +08:00
2023-10-09 12:31:32 +01:00
2023-06-21 10:24:40 +00:00
2023-09-08 15:43:21 +08:00
2023-07-26 09:12:29 -04:00
2023-07-12 14:35:55 +02:00
2023-08-29 21:42:22 -04:00
2023-08-29 21:42:22 -04:00
2023-10-06 10:24:54 -04:00
2023-06-06 17:07:18 -04:00
2023-06-21 14:27:39 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-05-17 17:03:15 +02:00
2023-06-28 14:50:16 -04:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-02-16 16:15:32 -05:00
2023-05-12 20:20:13 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-06-21 10:30:43 -04:00
2023-06-21 10:30:43 -04:00
2023-03-17 14:27:03 +01:00
2023-05-25 13:56:29 +05:30
2023-09-13 14:55:07 +08:00
2023-08-29 21:42:22 -04:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-07 11:14:56 -04:00
2023-09-08 15:43:21 +08:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-07-14 13:38:40 -05:00
2023-10-09 12:31:32 +01:00
2023-02-16 19:21:35 -05:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-07-26 09:12:29 -04:00
2023-04-03 19:52:39 -04:00
2023-09-08 15:43:21 +08:00
2023-02-16 17:58:34 -08:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2023-07-13 15:21:49 -04:00
2023-09-08 15:43:21 +08:00
2023-09-26 06:24:47 -04:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-09-13 12:33:39 +01:00
2023-09-08 15:43:21 +08:00
2023-08-29 21:42:22 -04:00
2023-09-13 14:55:07 +08:00
2023-09-22 15:26:39 -04:00
2023-09-22 15:26:39 -04:00
2023-09-28 01:33:41 -04:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-02-20 18:11:24 -05:00
2023-09-18 08:58:50 -07:00
2023-09-07 20:05:29 -05:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-15 19:52:50 +00:00
2023-09-15 19:52:50 +00:00
2023-05-03 09:28:07 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-08-29 21:42:22 -04:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 16:33:45 +08:00
2023-09-28 14:06:54 +05:30
2023-08-29 21:42:22 -04:00
2023-03-16 10:32:08 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-06-25 21:05:06 +00:00
2023-04-18 13:00:27 -04:00
2023-09-08 15:43:21 +08:00
2023-09-13 12:33:39 +01:00
2023-09-08 15:43:21 +08:00
2023-02-20 18:11:24 -05:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-06-21 10:24:40 +00:00
2023-04-05 21:24:59 -05:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-04-05 20:13:40 -05:00
2023-09-05 11:22:09 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-07-23 13:24:35 +05:30
2023-06-21 10:30:43 -04:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-09-28 15:51:14 +08:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 16:33:45 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-28 15:51:14 +08:00
2023-09-08 15:43:21 +08:00
2023-09-22 15:26:39 -04:00
2023-09-08 15:43:21 +08:00
2023-05-25 13:56:29 +05:30
2023-05-25 13:56:29 +05:30
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-08-29 04:35:06 +00:00
2023-09-13 14:55:07 +08:00
2023-06-26 13:50:36 -07:00
2023-08-29 04:35:06 +00:00
2023-10-09 12:31:32 +01:00
2023-09-13 14:55:07 +08:00
2023-06-21 10:24:40 +00:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-05-23 09:49:57 -07:00
2023-09-08 15:43:21 +08:00
2023-06-05 13:53:08 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-15 19:52:50 +00:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-15 19:52:50 +00:00
2023-07-15 16:13:48 -04:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-15 19:52:50 +00:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-08-15 10:40:35 -04:00
2023-08-15 10:40:35 -04:00
2023-09-08 15:43:21 +08:00
2023-09-07 16:49:31 -04:00
2023-09-19 11:18:12 +01:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-08-29 21:42:22 -04:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 15:00:49 -05:00
2023-09-13 15:00:49 -05:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-06-20 15:31:22 +01:00
2023-09-08 15:43:21 +08:00
2023-02-16 19:21:35 -05:00
2023-09-08 15:43:21 +08:00
2023-10-19 13:05:04 +01:00
2023-10-19 13:05:04 +01:00
2023-09-13 14:55:07 +08:00
2023-07-07 22:46:22 +08:00
2023-03-13 21:37:56 -04:00
2023-09-13 15:00:49 -05:00
2023-09-08 15:43:21 +08:00
2023-06-05 13:53:08 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-09-08 15:43:21 +08:00
2023-09-08 15:43:21 +08:00
2023-09-13 14:55:07 +08:00
2023-06-20 22:40:56 -07:00
2023-06-18 13:32:40 -07:00
2023-06-18 13:32:40 -07:00
2023-04-05 20:13:40 -05:00