Craig Topper
12d51f95fe
[RISCV] Implement lround*/llround*/lrint*/llrint* with fcvt instruction with -fno-math-errno
...
These are fp->int conversions using either RMM or dynamic rounding modes.
The lround and lrint opcodes have a return type of either i32 or
i64 depending on sizeof(long) in the frontend which should follow
xlen. llround/llrint should always return i64 so we'll need a libcall
for those on rv32.
The frontend will only emit the intrinsics if -fno-math-errno is in
effect otherwise a libcall will be emitted which will not use
these ISD opcodes.
gcc also does this optimization.
Reviewed By: arcbbb
Differential Revision: https://reviews.llvm.org/D105206
2021-07-06 11:43:22 -07:00
..
2021-07-06 10:24:31 -07:00
2021-04-26 13:26:17 +08:00
2020-12-18 21:03:37 +00:00
2021-06-29 09:45:13 -07:00
2020-12-09 19:42:49 +00:00
2021-06-27 10:33:43 -07:00
2021-04-11 13:59:51 -07:00
2021-03-25 09:03:25 -07:00
2020-11-25 21:57:48 -08:00
2020-12-09 19:42:49 +00:00
2021-06-03 11:34:35 -07:00
2020-12-09 19:42:49 +00:00
2021-01-27 20:46:10 -08:00
2021-05-20 20:34:23 +01:00
2021-01-30 07:20:05 +08:00
2020-08-21 11:38:42 +01:00
2021-03-15 11:32:43 -07:00
2021-06-27 12:37:29 -07:00
2020-12-09 19:42:49 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-04-02 10:18:08 -07:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-14 22:35:17 +00:00
2021-01-05 10:41:08 -08:00
2020-12-09 19:42:49 +00:00
2020-08-21 11:38:42 +01:00
2020-12-04 10:34:12 -08:00
2021-06-30 16:54:13 -04:00
2021-06-27 10:33:43 -07:00
2021-06-30 16:54:13 -04:00
2021-06-27 10:33:43 -07:00
2020-11-25 15:07:34 -08:00
2021-04-01 09:12:52 -07:00
2021-01-19 11:21:48 -08:00
2020-12-09 19:42:49 +00:00
2021-06-10 19:06:45 -07:00
2021-01-12 10:45:03 -08:00
2020-12-09 19:42:49 +00:00
2021-07-06 11:43:22 -07:00
2020-12-10 09:15:52 -08:00
2020-12-30 15:28:11 -08:00
2020-12-09 19:42:49 +00:00
2021-01-14 13:41:40 -08:00
2021-01-25 16:37:21 -08:00
2021-05-11 11:29:45 -07:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2021-06-17 09:51:09 -07:00
2021-06-17 09:51:09 -07:00
2020-11-25 15:07:34 -08:00
2021-04-01 09:12:52 -07:00
2021-01-19 11:21:48 -08:00
2021-06-10 19:06:45 -07:00
2021-01-12 10:45:03 -08:00
2020-12-09 19:42:49 +00:00
2021-07-06 11:43:22 -07:00
2020-12-10 09:15:52 -08:00
2020-12-30 15:28:11 -08:00
2021-01-14 13:41:40 -08:00
2020-12-30 15:28:11 -08:00
2021-04-01 12:41:57 -07:00
2020-12-09 19:42:49 +00:00
2021-04-22 15:04:55 +07:00
2021-01-15 11:14:14 -08:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-02 21:13:42 -08:00
2021-04-01 12:41:57 -07:00
2021-01-19 11:21:48 -08:00
2021-06-10 19:06:45 -07:00
2021-01-12 10:45:03 -08:00
2020-12-03 09:16:33 +08:00
2021-07-06 11:43:22 -07:00
2020-12-10 09:15:52 -08:00
2020-12-30 15:28:11 -08:00
2021-01-14 13:41:40 -08:00
2021-03-15 11:32:43 -07:00
2021-04-02 10:18:08 -07:00
2020-08-21 11:38:42 +01:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2021-06-23 15:38:11 -07:00
2021-03-21 18:54:00 +08:00
2020-12-30 15:28:11 -08:00
2020-12-30 15:28:11 -08:00
2020-12-05 14:54:37 -08:00
2021-04-01 10:15:55 -07:00
2020-11-20 17:58:26 -05:00
2021-01-18 17:30:35 +00:00
2021-01-23 09:10:03 +00:00
2021-05-29 15:11:37 +01:00
2021-06-10 19:06:45 -07:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2021-04-01 12:41:57 -07:00
2021-06-19 14:33:27 +08:00
2021-04-02 11:50:19 -07:00
[RISCV] Teach DAG combine to fold (and (select_cc lhs, rhs, cc, -1, c), x) -> (select_cc lhs, rhs, cc, x, (and, x, c))
2021-04-29 09:43:51 -07:00
2021-03-22 19:17:04 -07:00
2021-04-02 12:09:13 -07:00
2021-04-25 19:14:34 -07:00
2021-04-25 21:54:06 -07:00
2021-06-07 10:31:51 -07:00
2021-04-02 10:58:45 -07:00
2021-06-08 07:26:00 +08:00
[RISCV] Teach DAG combine to fold (and (select_cc lhs, rhs, cc, -1, c), x) -> (select_cc lhs, rhs, cc, x, (and, x, c))
2021-04-29 09:43:51 -07:00
2020-12-09 19:42:49 +00:00
2020-12-04 18:40:02 -08:00
2020-12-04 18:40:02 -08:00
2020-12-04 18:40:02 -08:00
2020-12-09 19:42:49 +00:00
2020-10-29 14:52:53 -07:00
2020-12-09 19:42:49 +00:00
2021-06-27 10:33:43 -07:00
2021-06-17 09:38:28 +02:00
2021-03-20 14:55:46 -07:00
2021-02-22 14:56:22 -08:00
2021-06-19 12:10:42 -07:00
2021-04-04 17:14:28 -07:00
2021-06-27 10:33:43 -07:00
2021-06-27 10:33:43 -07:00
2021-04-02 12:09:13 -07:00
2021-04-25 21:54:06 -07:00
2021-04-25 21:54:06 -07:00
2021-06-27 10:33:43 -07:00
2021-04-02 10:58:45 -07:00
2021-06-08 07:26:00 +08:00
2021-03-22 19:17:04 -07:00
2021-04-07 13:47:17 -07:00
2021-04-07 13:47:17 -07:00
2021-04-16 12:54:47 +08:00
2021-02-09 15:52:04 +08:00
2021-01-21 12:07:44 -08:00
2021-01-21 12:07:44 -08:00
[RISCV] Teach DAG combine to fold (and (select_cc lhs, rhs, cc, -1, c), x) -> (select_cc lhs, rhs, cc, x, (and, x, c))
2021-04-29 09:43:51 -07:00
2021-03-12 11:50:10 -08:00
2021-01-21 12:07:44 -08:00
2021-01-22 14:51:22 -08:00
2021-01-18 17:30:35 +00:00
2021-01-21 12:07:44 -08:00
2021-01-25 16:37:21 -08:00
2021-01-25 16:37:21 -08:00
2020-12-09 19:42:49 +00:00
2021-01-27 20:46:10 -08:00
2020-12-09 19:42:49 +00:00
2020-12-09 19:42:49 +00:00
2021-06-09 11:18:22 +08:00
2020-12-09 19:42:49 +00:00
2021-02-11 09:43:13 -08:00
2021-06-09 11:18:22 +08:00
2021-04-01 09:12:52 -07:00
2021-04-07 13:47:17 -07:00
2021-04-07 13:47:17 -07:00
2021-01-15 11:14:14 -08:00
2021-03-21 18:54:00 +08:00
2021-04-29 09:10:48 +01:00
2020-12-09 19:42:49 +00:00
2020-11-20 17:58:26 -05:00
2020-12-09 19:42:49 +00:00
2021-03-16 07:44:06 -07:00
2021-03-16 07:44:06 -07:00
2020-12-09 19:42:49 +00:00
2021-06-27 10:33:43 -07:00
2021-06-27 10:33:43 -07:00
2021-06-27 10:33:43 -07:00
2021-03-16 07:44:06 -07:00
2021-03-16 07:44:06 -07:00
2021-03-21 18:54:00 +08:00
2021-06-27 10:33:43 -07:00
2021-06-30 16:54:13 -04:00
2021-03-27 15:37:18 -07:00
2020-12-30 15:28:11 -08:00
2020-12-03 09:16:33 +08:00