Stephen Chou
ec61311e77
[LLVM][TableGen] Support type casts of nodes with multiple results ( #109728 )
...
Currently, type casts can only be used to pattern match for intrinsics
with a single overloaded return value. For instance:
```
def int_foo : Intrinsic<[llvm_anyint_ty], []>;
def : Pat<(i32 (int_foo)), ...>;
```
This patch extends type casts to support matching intrinsics with
multiple overloaded return values. As an example, the following defines
a pattern that matches only if the overloaded intrinsic call returns an
`i16` for the first result and an `i32` for the second result:
```
def int_bar : Intrinsic<[llvm_anyint_ty, llvm_anyint_ty], []>;
def : Pat<([i16, i32] (int_bar)), ...>;
```
2024-10-01 11:17:00 +04:00
..
2024-09-05 13:25:06 -04:00
2023-05-17 10:48:52 +02:00
2024-07-17 19:20:08 +08:00
2024-06-29 18:50:52 -04:00
2024-06-05 11:43:32 +02:00
2024-06-19 05:50:08 +00:00
2024-09-16 13:37:49 -07:00
2024-10-01 01:25:20 +00:00
2023-10-19 09:31:59 +02:00
2024-04-12 14:33:35 -07:00
2024-09-11 16:39:28 -07:00
2023-08-01 11:00:27 -07:00
2024-08-04 10:54:18 -07:00
2024-05-25 13:28:30 +02:00
2024-09-09 11:34:53 -07:00
2024-03-04 10:45:22 -08:00
2023-05-17 10:48:52 +02:00
2024-09-29 12:21:08 -07:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2024-09-04 11:24:52 +02:00
2024-09-25 10:49:45 -04:00
2024-10-01 11:17:00 +04:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2024-01-17 22:55:58 +01:00
2024-09-23 15:27:41 -04:00
2024-07-17 10:12:46 +01:00
2024-05-30 12:17:37 +01:00
2024-09-18 08:54:11 -07:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2024-03-25 14:09:25 -07:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2024-08-05 09:59:36 +02:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2024-02-19 17:00:21 -08:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2024-08-06 11:07:45 +08:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2024-09-19 14:38:15 +02:00
2024-02-21 11:53:01 -08:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2023-08-24 20:26:12 +08:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2024-05-20 10:35:08 -06:00
2023-05-17 10:48:52 +02:00
2024-08-28 12:19:58 +01:00
2023-05-17 10:48:52 +02:00
2024-08-28 12:19:58 +01:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00
2024-07-03 10:50:52 +01:00
2024-04-18 19:04:05 +02:00
2024-05-19 01:39:47 +02:00
2024-05-27 19:17:04 +02:00
2024-09-23 15:27:41 -04:00
2023-09-26 19:23:41 -04:00
2023-09-18 12:14:46 +01:00
2024-05-08 23:58:55 -07:00
2024-09-23 12:44:42 +01:00
2023-05-17 10:48:52 +02:00
2023-05-17 10:48:52 +02:00