Hi! On Tue, Sep 08, 2020 at 10:26:51AM +0200, Richard Biener wrote: > Hmm, yeah - I guess that's what should be addressed first then. > I'm quite sure that in case 'v' is not on the stack but in memory like > in my case a SImode store is better than what we get from > vec_insert - in fact vec_insert will likely introduce a RMW cycle > which is prone to inserting store-data-races?
The other way around -- if it is in memory, and was stored as vector recently, then reading back something shorter from it is prone to SHL/LHS problems. There is nothing special about the stack here, except of course it is more likely to have been stored recently if on the stack. So it depends how often it has been stored recently which option is best. On newer CPUs, although they can avoid SHL/LHS flushes more often, the penalty is relatively bigger, so memory does not often win. I.e.: it needs to be measured. Intuition is often wrong here. Segher