On Mon, Jan 02, 2023 at 09:20:33AM -0700, Jeff Law wrote: > On 1/2/23 08:59, Jakub Jelinek wrote: > >See the PR50161 thread in > >https://gcc.gnu.org/legacy-ml/gcc-patches/2011-08/threads.html#01847
Nasty nasty nasty. > >The options are to disallow different modes, which is what my patch did > >(perhaps not all documentation has been tweaked), Which isn't so bad, except that simplifiers (in general, not just simplify-rtx) will try to get rid of it. Since there is no RTL check that tests this property, we lose.\ > > or ensure that the > >operand > >of those is never constant. This means we cannot express intermediate stages of simplification in RTL, which goes counter the whole idea of RTL. > Sigh. Lack of modes on constants mucking things up elsewhere. There's > no good reason other than our poor representation to force the input and > output modes to match for these instructions. But things like popcount need to know the mode of the input, if it is a negative constant anyway. Maybe we could simply disallow that? Segher