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
..
2023-04-04 12:16:50 +02:00
2024-06-04 08:31:03 +02:00
2023-02-01 15:14:11 +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
2024-09-06 16:19:20 +01:00
2023-01-24 17:55:11 -04: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
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
2023-01-26 10:26:24 +00:00
2023-01-26 10:26:24 +00:00
2022-11-02 12:51:28 -07:00
2024-12-10 09:21:58 -08: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
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
2025-02-17 09:04:29 +00:00
2024-10-22 13:48:00 -07:00
2023-06-23 14:07:11 -07:00
2023-06-23 14:07:11 -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
2023-07-11 15:17:26 -07:00
2023-02-07 15:56:10 +00: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
2023-07-20 00:02:06 -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
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
2022-12-19 13:07:59 +01:00
2024-12-10 06:28:09 -08:00
2024-02-05 17:38:54 -08: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
2023-02-26 19:17:06 +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-12-10 06:28:09 -08:00
2025-03-06 15:48:39 -08:00
2023-05-17 17:03:15 +02: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
2022-12-19 13:07:59 +01:00
2024-04-23 17:48:59 +09: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
2022-12-19 13:07:59 +01:00
2024-05-19 14:59:03 +01:00
2024-03-25 18:11:56 -07:00
2024-03-25 18:11:56 -07: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
2022-12-19 13:07:59 +01:00
2024-07-25 00:00:59 +00:00
2025-02-26 14:05:00 -08:00
2024-03-25 18:11:56 -07:00
2023-07-12 14:35:55 +02:00
2022-12-19 13:07:59 +01:00
2022-12-19 13:07:59 +01:00
2023-03-02 09:37:25 +08:00
2023-01-26 10:26:24 +00:00
2022-11-02 12:51:28 -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
2024-02-21 03:35:36 +09: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
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
2024-10-15 02:41:43 +09:00
2024-04-23 17:57:49 +09: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
2023-06-21 10:30:43 -04: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
2023-01-26 10:26:24 +00:00
2023-01-26 10:26:24 +00:00
2023-06-06 07:48:35 +02:00
2024-07-16 20:56:18 +01:00
2023-01-26 10:26:24 +00:00
2024-01-09 23:54:43 -06: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
2023-06-09 08:42:27 -07:00
2023-01-26 14:26:02 +00:00
2024-08-05 14:38:12 -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
2022-12-19 13:07:59 +01: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
2023-06-09 08:42:27 -07:00
2023-01-04 15:07:47 +00:00
2023-07-12 14:35:55 +02:00
2022-11-02 12:51:28 -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
2025-01-21 23:55:50 +07: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
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
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
2024-04-28 10:13:02 +08:00
2023-12-05 14:09:36 +01: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
2023-06-08 16:59:49 -07:00
2024-02-13 13:43:21 -08: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
2024-02-06 12:39:48 +00:00