James Greenhalgh wrote: > I really don't like [1][2][3] this technique of attempting to work around > register allocator issues using the disparaging mechanisms.
I don't see the issue as it is a standard mechanism to describe higher cost to the register allocator. On the other had the use of '*' is almost always incorrect, leading to bad allocations and inefficient code. > So doing this would be in line with other move operations, but is still > a workaround to deeper issues. > > The patch is OK, on that justification, but I'd like not to set a > precedent for using "?" rather than looking to find the underlying issue. The underlying issue is well known - the register allocator cost code assumes all alternatives in an instruction have equal cost. If we used a distinct scalar vector type for scalar vectors (rather than reusing SI/DI) then we could drop all of the '*' and likely most of the '?' from the md description. Wilco