Skip to content

Unnecessary vmovaps emitted depending on order of addends? #114884

Answered by tannergooding
poizan42 asked this question in General
Discussion options

You must be logged in to vote

Also shouldn't it use vmovdqa and not vmovaps? I have seen some vague claims that it may incur a "cross-domain" penalty if integer operations are performed afterwards, but I couldn't quickly find it in the Intel® 64 and IA-32 Architectures Software Developer’s Manuals, so I don't know if that is true. But if it isn't, then why would there be any need for different mov instruction variants for integers and singles/doubles?

Moves haven't had a cross domain penalty for well over 15 years at this point, they are just touching raw bits (much like shuffles and a few other instructions). They don't even use an execution port in typical scenarios and are fully elided by the register renamer as …

Replies: 1 comment 2 replies

Comment options

You must be logged in to vote
2 replies
@poizan42
Comment options

@saucecontrol
Comment options

Answer selected by poizan42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
3 participants