[PATCH] D49280: [X86] Remove isel patterns for MOVSS/MOVSD ISD opcodes with integer types.
David Greene via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 16 11:24:51 PDT 2018
greened added a comment.
In https://reviews.llvm.org/D49280#1163648, @RKSimon wrote:
> In https://reviews.llvm.org/D49280#1162909, @craig.topper wrote:
>
> > Which microarchitecture cares about switching PD/PS? To my knowledge, no Intel architecture cares. Do any of the AMD architectures care?
>
>
> It tends to be only the 'weird mixture' PS/PD domain shifts that cause a stall: VADDPS then VMULPD, that kind of thing - shuffles and bitops tend to be more forgiving (and more easy to fix.)
The AMD 17h Optimization Guide has this to say:
"Try to use consistent data types for instructions operating on the same data. For example, use
VANDPS, VMAXPS, and so on when consuming the output of MULPS."
The inclusion of VANDPS in that list makes me think all such domain crossings may incur a penalty.
I have not seen an explicit list anywhere of what is and is not bad. A VADDPD feeding a VANDPS
is probably not a programming error but it would incur a penalty.
Repository:
rL LLVM
https://reviews.llvm.org/D49280
More information about the llvm-commits
mailing list