Muhammad Bassiouni
c662a9d303
[InstCombine] recognize missed i128 split optimization (#129363)
This pr fixes #126056, recognising a split i128 extension optimization.
Proof for working optimization:
```llvm
define i128 @src(i32 noundef %x) {
entry:
%coerce.sroa.0.0.extract.trunc = sext i32 %x to i64
%0 = ashr i32 %x, 31
%coerce.sroa.2.0.extract.trunc = sext i32 %0 to i64
%x.sroa.2.0.insert.ext.i = zext i64 %coerce.sroa.2.0.extract.trunc to i128
%x.sroa.2.0.insert.shift.i = shl nuw i128 %x.sroa.2.0.insert.ext.i, 64
%x.sroa.0.0.insert.ext.i = zext i64 %coerce.sroa.0.0.extract.trunc to i128
%x.sroa.0.0.insert.insert.i = or disjoint i128 %x.sroa.2.0.insert.shift.i, %x.sroa.0.0.insert.ext.i
ret i128 %x.sroa.0.0.insert.insert.i
}
define i128 @tgt(i32 noundef %x) {
%x.sroa.0.0.insert.insert.i = sext i32 %x to i128
ret i128 %x.sroa.0.0.insert.insert.i
}
```
2025-03-06 09:42:52 +00:00
..
2025-01-12 16:51:58 +01:00
2025-03-06 09:42:52 +00:00
2025-02-23 17:19:31 +08:00
2025-01-06 14:37:04 +08:00
2025-02-27 09:38:29 +01:00
2025-02-23 17:19:31 +08:00
2025-03-01 23:11:55 +08:00
2025-02-13 14:25:09 +08:00
2024-11-08 16:20:04 +08:00
2025-01-08 11:29:04 +01:00
2025-02-24 17:35:46 +08:00
2025-02-18 07:06:56 +00:00
2025-01-25 13:35:11 -08:00
2025-01-24 08:09:20 -08:00
2025-02-24 19:52:44 +07:00