Craig Topper
0ebef5e5e2
[DAGCombine] Enable div by constant optimization for odd sized vectors before type legalization. ( #188313 )
...
If we we are going to legalize to a vector with the same element type
and mulh or mul_lohi are supported, allow the optimization before type
legalization.
RISC-V will widen vectors using vp.udiv/sdiv that doesn't support
division by constant optimization. In addition, type legalization will create
a build_vector with undef elements making it hard to match after type
legalization.
Other targets may need to widen by a combination of vector and scalar
divisions to avoid traps if we widen a vector with garbage.
I had to enable the MULHU->SRL DAG combine before type legalization to
prevent regressions. After type legalization, the multiply constant
build_vector will have undef elements and the combine won't trigger.
2026-03-26 09:16:46 -07:00
..
2026-01-20 14:53:14 +08:00
2025-10-20 17:01:01 +08:00
2025-11-25 17:46:28 +08:00
2025-12-18 14:15:33 +08:00
2025-09-22 16:04:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-26 16:32:24 +08:00
2025-11-01 09:37:47 +00:00
2025-09-26 09:23:23 +08:00
2025-09-26 16:32:24 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-11-03 10:14:33 +08:00
2025-11-01 09:29:00 +08:00
2025-09-01 15:11:52 +08:00
2026-03-25 09:58:40 +08:00
2025-09-26 16:32:24 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-16 02:34:18 +00:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2026-03-23 21:40:25 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-09-22 15:45:15 +08:00
2026-03-26 09:16:46 -07:00
2025-12-18 14:26:16 +08:00
2026-01-12 17:47:44 +08:00
2026-02-03 09:56:20 +00:00
2025-09-01 15:11:52 +08:00
2025-09-01 15:11:52 +08:00
2025-07-18 16:12:11 +08:00
2026-03-23 21:40:41 +08:00
2026-02-23 14:38:07 +01:00
2025-09-01 15:11:52 +08:00
2025-09-29 08:02:39 +00:00
2025-12-04 16:23:48 +08:00
2025-10-27 17:16:55 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-25 21:08:39 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2025-09-25 21:08:39 +08:00
2025-09-01 15:11:52 +08:00
2026-01-28 17:30:23 +00:00
2025-10-15 09:37:01 +08:00
2025-09-25 21:08:39 +08:00