> If we go with your patch or something similar, I would at least suggest > handling ZERO_EXTEND in a similar manner. I suspect what you're really after > is whether or not the result of the extension is used in the second set and > never again. So you may want to restrict to cases where the destination of > the first set dies in the second set. > > Whether or not you extend to other forms extensions may take (shift > pairs, logical and) would seem to be less important. ie, it's unlikely > we'll see targets with zicond, but without zbb.
What I remembered is that the multiple-set conversion also takes care of the swap-idiom recognition which could also include zero/sign extensions. We need to make sure to not disturb that but I'm not sure we even have a test for that right now. Ideally we'd try all reasonable ifcvt approaches, cost them, and compare them afterwards but... -- Regards Robin
