iree-org / iree

A retargetable MLIR-based machine learning compiler and runtime toolkit.
http://iree.dev/
Apache License 2.0
2.86k stars 625 forks source link

Duplication in `util.assume.int` with repeated ranges #19011

Open kuhar opened 3 weeks ago

kuhar commented 3 weeks ago

We generate util.assume.int ops that can be very verbose / repetitive when there's more than one set of repeated ranges. For example:

        %4:2 = util.assume.int 
            %2[<umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 51174912, umax = 51174912, udiv = 51174912>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 90826752, umax = 90826752, udiv = 90826752>], 
            %3[<umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 127526912, umax = 127526912, udiv = 127526912>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 122284032, umax = 122284032, udiv = 122284032>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 90826752, umax = 90826752, udiv = 90826752>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>, <umin = 106555392, umax = 106555392, udiv = 106555392>, <umin = 111798272, umax = 111798272, udiv = 111798272>, <umin = 117041152, umax = 117041152, udiv = 117041152>, <umin = 48553472, umax = 48553472, udiv = 48553472>] : index, index

We should consider updating the folder and make the subranges unique to reduce duplication.

benvanik commented 3 weeks ago

We can also combine contiguous ranges (<umin = 32, umax = 64, udiv = 16>, <umin = 64, umax = 128, udiv = 16> -> <umin = 32, umax = 128, udiv = 16>).

Note that there may be uses for correlation between operands here - knowing that %2 is always 2x %3 when made with a particular invocation, etc. An assembly format simplification may be enough to make this op readable without losing that information, or we may want another op that we derive from the same analysis for correlation so that this one could be folded aggressively (this becoming just bounds).