You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Some hardware intrinsic nodes can reorder side effects #54956
if (SimdAsHWIntrinsicInfo::NeedsOperandsSwapped(intrinsic))
{
std::swap(op1, op2);
}
Which does not account for side effects. Important note: since the importation code does not propagate the side effect flags properly (yet), they cannot be relied on when determining whether it is safe to swap at that point.
Possible solutions:
Aggressively spill to temps - bad from CQ & TP standpoints.
Use GTF_REVERSE_OPS - bad from the standpoint that this flag should be removed.
Fix the operands up in LIR, where the tree walk no longer determines the execution order - probably cleanest but also most complex solution.
Note: the problematic code will become less centralized after #53450 is merged. See my review notes over there.
Activity
echesakov commentedon Mar 15, 2022
Un-assigning myself
cc @BruceForstall
AndyAyersMS commentedon Apr 28, 2022
Seems like we ought to fix this and should assign somebody.
Adding a regression test for dotnet#54956
Ensure side effects get spilled for the various hwintrinsic and simda…