Sam Parker
103119a435
[WebAssembly] Lower wide SIMD i8 muls (#130785)
Currently, 'wide' i32 simd multiplication, with extended i8 elements,
will perform the multiplication with i32 So, for IR like the following:
```
%wide.a = sext <8 x i8> %a to <8 x i32>
%wide.b = sext <8 x i8> %a to <8 x i32>
%mul = mul <8 x i32> %wide.a, %wide.b
ret <8 x i32> %mul
```
We would generate the following sequence:
```
i16x8.extend_low_i8x16_s $push6=, $1
local.tee $push5=, $3=, $pop6
i32x4.extmul_low_i16x8_s $push0=, $pop5, $3
v128.store 0($0), $pop0
i8x16.shuffle $push1=, $1, $1, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
i16x8.extend_low_i8x16_s $push4=, $pop1
local.tee $push3=, $1=, $pop4
i32x4.extmul_low_i16x8_s $push2=, $pop3, $1
v128.store 16($0), $pop2
return
```
But now we perform the multiplication with i16, resulting in:
```
i16x8.extmul_low_i8x16_s $push3=, $1, $1
local.tee $push2=, $1=, $pop3
i32x4.extend_high_i16x8_s $push0=, $pop2
v128.store 16($0), $pop0
i32x4.extend_low_i16x8_s $push1=, $1
v128.store 0($0), $pop1
return
```
2025-03-21 06:57:57 +00:00
..
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2024-09-06 16:19:20 +01:00
2024-10-24 14:13:58 -07:00
2024-10-24 14:13:58 -07:00
2022-12-19 13:07:59 +01:00
2024-12-02 17:08:07 -08:00
2022-12-19 13:07:59 +01:00
2023-04-05 01:42:36 -07:00
2024-01-13 14:55:54 -08:00
2019-03-29 19:36:51 +00:00
2025-01-09 22:36:10 -08:00
2025-01-09 22:36:10 -08:00
2025-01-22 22:39:43 -08:00
2024-02-05 14:07:09 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2021-07-14 11:17:08 -07:00
2021-07-14 11:17:08 -07:00
2022-11-02 12:51:28 -07:00
2021-07-14 11:17:08 -07:00
2021-07-14 11:17:08 -07:00
2020-06-15 08:31:56 -07:00
2021-07-14 11:17:08 -07:00
2024-12-10 09:21:58 -08:00
2022-12-19 13:07:59 +01:00
2021-07-14 11:17:08 -07:00
2024-12-02 17:08:07 -08:00
2021-07-14 11:17:08 -07:00
2022-12-19 13:07:59 +01:00
2025-01-09 22:36:10 -08:00
2025-03-10 20:56:38 -07:00
2025-01-22 22:39:43 -08:00
2025-03-10 20:56:38 -07:00
2024-08-09 13:25:04 +01:00
2019-10-09 21:42:08 +00:00
2021-07-14 11:17:08 -07:00
2025-02-17 09:04:29 +00:00
2024-10-22 13:48:00 -07:00
2022-06-20 10:57:41 +01:00
2022-06-20 10:57:41 +01:00
2022-06-20 10:57:41 +01:00
2022-09-27 09:16:30 +02:00
2022-09-27 09:16:30 +02:00
2022-06-20 10:57:41 +01:00
2022-06-20 10:57:41 +01:00
2021-07-14 11:17:08 -07:00
2023-06-23 14:07:11 -07:00
2023-06-23 14:07:11 -07:00
2021-07-14 11:17:08 -07:00
2021-07-14 11:17:08 -07:00
2024-10-09 14:31:16 -07:00
2024-06-04 08:31:03 +02:00
2024-10-09 14:31:16 -07:00
2022-12-19 13:07:59 +01:00
2024-12-10 06:28:09 -08:00
2024-12-10 06:28:09 -08:00
2021-07-14 11:17:08 -07:00
2020-08-26 09:20:46 +01:00
2023-07-11 15:17:26 -07:00
2022-08-31 14:54:13 -07:00
2023-02-07 15:56:10 +00:00
2022-06-20 10:57:41 +01:00
2022-06-20 10:57:41 +01:00
2022-09-27 09:16:30 +02:00
2022-09-27 09:16:30 +02:00
2022-09-27 09:16:30 +02:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2023-01-16 10:30:00 +01:00
2024-09-04 16:14:13 -07:00
2024-12-02 17:08:07 -08:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2024-02-05 14:07:09 +01:00
2022-12-19 13:07:59 +01:00
2025-02-25 11:01:32 -08:00
2022-12-19 13:07:59 +01:00
2021-07-14 11:17:08 -07:00
2022-12-19 13:07:59 +01:00
2021-07-14 11:17:08 -07:00
2024-12-10 06:28:09 -08:00
2021-07-14 11:17:08 -07:00
2024-02-05 17:38:54 -08:00
2021-07-14 11:17:08 -07:00
2021-07-14 11:17:08 -07:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2023-07-11 10:36:25 -04:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2025-02-17 09:04:29 +00:00
2025-02-17 09:09:52 +00:00
2022-12-19 13:07:59 +01:00
2024-12-10 06:28:09 -08:00
2025-03-06 15:48:39 -08:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2025-02-26 14:05:00 -08:00
2024-03-28 04:41:29 +00:00
2022-12-19 13:07:59 +01:00
2024-05-19 14:59:03 +01:00
2025-02-26 14:05:00 -08:00
2024-07-25 00:00:59 +00:00
2025-02-26 14:05:00 -08:00
2023-07-12 14:35:55 +02:00
2021-07-14 11:17:08 -07:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-11-02 12:51:28 -07:00
2021-07-14 11:17:08 -07:00
2021-07-14 11:17:08 -07:00
2021-07-14 11:17:08 -07:00
2024-12-10 09:21:58 -08:00
2024-12-10 06:28:09 -08:00
2025-03-06 09:28:44 -08:00
2024-04-23 17:48:59 +09:00
2023-05-17 10:48:52 +02:00
2024-04-23 17:48:59 +09:00
2022-11-02 12:51:28 -07:00
2025-03-20 18:18:03 -07:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2023-01-26 10:26:24 +00:00
2022-12-19 13:07:59 +01:00
2024-08-22 09:44:33 -07:00
2022-12-19 13:07:59 +01:00
2021-07-14 11:17:08 -07:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2023-03-13 08:59:52 +08:00
2023-09-13 12:33:39 +01:00
2023-03-30 20:14:11 -07:00
2024-03-20 08:42:42 -07:00
2023-02-09 18:45:20 +03:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2021-07-14 11:17:08 -07:00
2024-10-15 02:41:43 +09:00
2022-06-20 10:57:41 +01:00
2024-12-02 17:08:07 -08:00
2024-05-28 16:10:11 -07:00
2024-05-28 16:10:11 -07:00
2024-07-01 19:12:01 -07:00
2024-07-16 20:56:18 +01:00
2023-01-26 10:26:24 +00:00
2022-11-02 12:51:28 -07:00
2024-07-24 09:23:49 +01:00
2024-07-23 11:50:56 -07:00
2021-07-14 11:17:08 -07:00
2023-06-09 08:42:27 -07:00
2023-01-26 14:26:02 +00:00
2024-08-05 14:38:12 -07:00
2021-07-14 11:17:08 -07:00
2022-09-13 16:03:18 -07:00
2022-11-02 12:51:28 -07:00
2022-12-19 13:07:59 +01:00
2023-06-09 08:42:27 -07:00
2023-06-09 08:42:27 -07:00
2022-12-19 10:37:19 +00:00
2023-01-26 10:26:24 +00:00
2024-09-22 10:12:41 +01:00
2023-05-03 16:00:20 -07:00
2023-01-04 15:07:47 +00:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2021-07-14 11:17:08 -07:00
2023-06-09 08:42:27 -07:00
2023-01-04 15:07:47 +00:00
2023-07-12 14:35:55 +02:00
2021-07-14 11:17:08 -07:00
2021-07-14 11:17:08 -07:00
2024-08-15 00:07:00 +08:00
2024-10-01 14:22:54 +02:00
2023-10-24 12:35:43 +02:00
2022-12-19 13:07:59 +01:00
2024-09-30 11:44:49 -07:00
2023-06-30 11:30:18 -07:00
2021-12-15 09:22:40 -08:00
2025-01-21 23:55:50 +07:00
2022-12-19 13:07:59 +01:00
2021-07-14 11:17:08 -07:00
2023-01-26 10:26:24 +00:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2024-02-06 09:07:58 +08:00
2024-07-01 19:12:01 -07:00
2022-12-19 13:07:59 +01:00
2021-07-14 11:17:08 -07:00
2020-07-30 10:52:16 -07:00
2022-11-23 18:45:52 +01:00
2022-11-23 18:45:52 +01:00
2022-11-23 18:45:52 +01:00
2022-11-23 18:45:52 +01:00
2023-03-22 09:28:48 -07:00
2024-12-02 17:08:07 -08:00
2024-12-03 16:35:23 -08:00
2024-12-02 17:08:07 -08:00
2024-11-26 17:19:14 -08:00
2024-04-10 16:24:02 -07:00
2024-04-10 16:24:02 -07:00
2024-07-16 20:56:18 +01:00
2024-12-10 06:28:09 -08:00
2023-01-26 10:26:24 +00:00
2022-12-19 13:07:59 +01:00
2024-02-05 14:07:09 +01:00
2024-06-06 10:44:53 +01:00
2022-12-19 13:07:59 +01:00
2024-07-24 09:23:49 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2024-10-23 11:39:58 -07:00
2025-03-21 06:57:57 +00:00