On 11/16/18 11:06 AM, Segher Boessenkool wrote: > Why does the "r" have a "*"? Should it have been just a "?"?
Maybe Mike remembers why he added it? I'd guess it was probably to try and steer the vector modes away from GPRs. However, since that alternative was also suppose to handle TImode, "*" is probably not what we want for that. The constraint for the new combines alternative uses a mode iterator so that the vector modes use "??r" while TImode uses "r". I think that is what we want. > "W" is easy_vector_constant, which requires const_vector always; is that > okay here? Well, "wM" calls all_ones_constant which also requires const_vector, so if it isn't correct now, then it wasn't correct before my patch either. Since I'm using the (new) mode iterator <nW> and the "W" is only used for the vector modes, I think we're ok here, aren't we? >> I'll note I didn't change the vsx_mov<mode>_32bit pattern, since TImode >> isn't supported with -m32. However, if you want, I could remove the >> redundant "*r" <- "jwM" alternative there too? > > Yeah, please keep the patterns in synch. Ok, I'll do the same thing and retest. Peter