Ryan Buchner
95ef1a5c31
[SLP] Use the correct identity when combining binary opcodes with AND/MUL (#180457)
Fixes #180456
Fix bug in the following SLP lowering:
```
define void @sub_mul(ptr %p, ptr %s) {
entry:
%p1 = getelementptr i16, ptr %p, i64 1
%l0 = load i16, ptr %p
%l1 = load i16, ptr %p1
%mul0 = sub i16 %l0, 0
%mul1 = mul i16 %l1, 5
%s1 = getelementptr i16, ptr %s, i64 1
store i16 %mul0, ptr %s
store i16 %mul1, ptr %s1
ret void
}
```
to
```
define void @sub_mul(ptr %p, ptr %s) {
entry:
%tmp0 = load <2 x i16>, ptr %p, align 2
%tmp1 = mul <2 x i16> %tmp0, <i16 0, i16 5> -> updates to <i16 1, i16 5>
store <2 x i16> %tmp1, ptr %s, align 2
ret void
}
```
2026-02-12 09:34:44 -08:00
..
2025-10-23 11:39:11 +08:00
2026-01-28 10:24:56 -08:00
2026-02-12 14:41:00 +01:00
2025-09-24 12:42:50 +02:00
2026-02-03 13:55:29 -08:00
2026-02-05 13:31:26 +00:00
2026-02-05 13:31:26 +00:00
2025-11-10 13:13:49 +01:00
2026-01-22 09:29:08 +01:00
2025-10-23 11:39:11 +08:00
2026-02-10 22:25:13 +08:00
2026-02-10 10:45:02 +00:00
2026-01-19 17:14:06 +01:00
2025-08-08 11:09:34 +02:00
2025-10-23 20:31:31 +08:00
2026-02-07 11:43:56 -08:00
2026-01-04 09:24:53 +08:00
2025-11-10 10:50:15 +00:00
2026-01-18 07:12:58 +01:00
2026-02-05 13:31:26 +00:00
2025-12-18 22:53:25 +02:00
2026-02-11 14:51:30 +01:00
2025-12-04 15:45:44 -08:00
2025-11-21 11:17:28 -08:00
2025-10-30 14:22:42 +01:00
2025-11-13 20:54:32 +08:00
2026-02-09 11:49:36 -08:00
2025-12-02 08:45:33 +00:00
2026-02-04 00:34:52 +01:00
2026-01-09 13:49:21 -05:00
2025-10-23 20:31:31 +08:00
2026-01-16 11:21:50 -08:00
2026-02-10 13:27:38 +01:00
2026-01-22 20:49:34 +01:00
2026-01-22 20:49:34 +01:00
2025-10-20 16:46:08 +02:00
2025-10-07 10:45:49 -04:00
2025-07-28 22:29:31 +01:00
2025-11-10 13:13:49 +01:00
2026-02-12 14:52:14 +01:00
2026-02-08 01:20:19 +08:00
2026-01-17 17:00:07 +01:00
2025-12-05 11:52:31 +01:00
2026-02-09 08:43:33 +08:00
2026-02-11 09:15:11 +01:00
2026-02-13 00:06:32 +08:00
2025-10-20 08:50:09 +00:00
2026-01-08 15:16:55 +01:00
2025-08-08 10:12:39 -07:00
2026-02-10 21:44:17 -08:00
2025-09-10 15:34:35 -07:00
2026-01-17 21:09:49 +01:00
2025-11-10 13:13:49 +01:00
2025-12-03 03:01:18 +00:00
2025-12-08 15:57:17 -06:00
2025-12-30 09:00:09 -08:00
2026-02-05 13:32:12 +05:30
2026-01-22 19:50:21 -05:00
2026-02-10 13:59:43 +01:00
2026-01-29 21:36:46 +09:00
2025-07-27 13:53:26 +01:00
2025-10-17 23:33:49 +00:00
2025-10-23 20:31:31 +08:00
2026-01-04 09:24:53 +08:00
2026-02-07 14:02:45 +00:00
2026-02-13 00:06:32 +08:00
2025-12-02 12:16:53 -08:00
2026-02-13 00:06:32 +08:00
2026-01-06 11:41:27 +00:00
2026-01-03 16:20:43 +01:00
2026-01-28 22:46:25 -05:00
2026-02-11 15:36:34 +00:00
2026-01-04 09:24:53 +08:00
2026-02-09 18:13:57 -08:00
2025-08-08 11:09:34 +02:00
2026-01-30 10:09:08 +01:00
2025-12-22 13:18:10 -08:00
2025-09-12 20:01:17 +02:00
2026-01-04 13:35:16 +01:00
2026-01-04 09:24:53 +08:00
2026-01-25 16:21:52 +01:00
2025-10-23 20:31:31 +08:00
2025-08-08 11:09:34 +02:00
2025-12-08 09:37:11 -08:00
2025-08-08 11:09:34 +02:00
2025-11-13 12:46:22 -08:00
2026-02-10 09:49:31 +00:00
2026-02-11 11:51:51 +00:00
2026-02-08 10:16:58 -08:00
2025-08-01 16:54:48 +00:00
2025-09-22 12:18:25 +02:00
2025-10-20 08:50:09 +00:00
2026-01-28 22:49:19 -05:00
2026-01-20 14:57:38 +08:00
2025-10-20 08:50:09 +00:00
2025-12-08 18:06:39 +00:00
2026-02-09 09:18:21 +01:00
2026-02-03 17:03:14 +05:30
2026-01-04 09:24:53 +08:00
2026-02-11 01:17:12 +00:00
2026-02-12 09:34:44 -08:00
2025-10-20 16:56:11 +02:00
2026-02-05 09:51:55 +08:00
2026-01-18 07:12:17 +01:00
2025-12-08 16:07:27 -06:00
2025-11-03 20:59:48 +01:00
2025-08-08 11:09:34 +02:00
2025-08-28 19:13:53 -07:00
2026-01-26 01:31:28 +01:00
2026-01-23 15:20:39 +01:00
2026-02-09 14:09:49 +00:00
2025-12-07 14:24:30 +00:00