On Tue, May 19, 2020 at 10:28:45PM +0200, Freddie Chopin wrote: > I see. I'm just looking for the answer to my basic question - is this a > bug or a feature? If it's a feature, then maybe there's a way to > disable it somehow. > > > Testcase needed. > > I could try providing one if you really think that what I see here is a > bug, not an expected behaviour. It is not a bug in the sense that it is correct code. It also probably doesn't make things super much slower. But OTOH it quite likely isn't optimal either, and certainly the cases where no such intermediate is necessary aren't immediately obviously not a bug. Figure out where these strange moves / strange registers are introduced? You can use -dap to get a lot of dump files (which will take significant time and space if your program is huge) (the -dp in there makes your .s output annotated as well, easy to find instruction numbers from that; and use -save-temps (or -S instead of -c) to get a .s file in the first place ;-) ) Segher