dotnet/runtime

Support recognizing `Blend` as commutative

Open

#82.365 geöffnet am 19. Feb. 2023

Auf GitHub ansehen
 (5 Kommentare) (2 Reaktionen) (2 zugewiesene Personen)C# (5.445 Forks)batch import
area-CodeGen-coreclrhelp wanted

Repository-Metriken

Stars
 (17.886 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 12T 11h) (661 gemergte PRs in 30 T)

Beschreibung

We don't currently track Blend as commutative and so we miss an opportunity to ensure that "memory operands" always appear on the RHS: https://github.com/SixLabors/ImageSharp/pull/2359#discussion_r1111147888

Support should be added to treat this as commutative which really just entails inverting the constant (e.g. Blend(x, y, 0b0111_0111) is equivalent to Blend(y, x, 0b1000_1000)).

There are actually a few operations this applies to that involve two inputs + control mask. Not all of them are as trivially as inverting the constant, however.

Contributor Guide