search for: g_divmod

Displaying 3 results from an estimated 3 matches for "g_divmod".

Did you mean: divmod
2018 Nov 12
3
[RFC] Tablegen-erated GlobalISel Combine Rules
...You can write a rule that matches something like divmod at the top-level using the 'set' operator: >> (set $D1, $D2, (divmod $A, $B)) >> but as soon as it's not the top-level, it gets really ugly fast even using pseudo-nodes: >> (set (outs $D1, $D2), (sext (result (G_DIVMOD $A, $B):$T, 0)), >> (sext (result $T, 1))) >> In this example, outs is a pseudo-node needed to distinguish the results from the sinks of the DAG, and result is a pseudo-node that selects one of the multiple results for use by the parent node. Meanwhile the MIR f...
2018 Nov 10
3
[RFC] Tablegen-erated GlobalISel Combine Rules
...e UADDO are representable. You can write a rule that matches something like divmod at the top-level using the 'set' operator: (set $D1, $D2, (divmod $A, $B)) but as soon as it's not the top-level, it gets really ugly fast even using pseudo-nodes: (set (outs $D1, $D2), (sext (result (G_DIVMOD $A, $B):$T, 0)), (sext (result $T, 1))) In this example, outs is a pseudo-node needed to distinguish the results from the sinks of the DAG, and result is a pseudo-node that selects one of the multiple results for use by the parent node. Meanwhile the MIR for is: %0, %1 =...
2018 Nov 09
5
[RFC] Tablegen-erated GlobalISel Combine Rules
Hi All, I've been working on the GlobalISel combiner recently and I'd like to share the plan for how Combine Rules will be defined in GlobalISel and solicit feedback on it. This email ended up rather long so: TL;DR: We're planning to define GlobalISel Combine Rules using MIR syntax with a few bits glued on to interface with the algorithm and escape into C++ when we need to.