dotnet/runtime

Support recognizing `Blend` as commutative

オープン

#82,365 opened on 2023/02/19

 (5 件のコメント) (2 件のリアクション) (2 人の担当者)C# (5,445 件のフォーク)batch import
area-CodeGen-coreclrhelp wanted

Repository metrics

Stars
 (17,886 個のスター)
PR merge metrics
 (平均マージ 12d 11h) (30d で 661 merged PRs)

説明

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.

コントリビューターガイド