[PATCH] D36479: [X86][AVX512] Choose correct registers in vpbroadcastb/w
Guy Blank via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 9 09:03:11 PDT 2017
guyblank added inline comments.
================
Comment at: test/CodeGen/X86/avx512bw-intrinsics.ll:1967
; AVX512F-32-NEXT: kmovd {{[0-9]+}}(%esp), %k1
-; AVX512F-32-NEXT: vpbroadcastw %ax, %zmm0 {%k1}
-; AVX512F-32-NEXT: vpbroadcastw %ax, %zmm1 {%k1} {z}
-; AVX512F-32-NEXT: vpbroadcastw %ax, %zmm2
+; AVX512F-32-NEXT: movw {{[0-9]+}}(%esp), %ax
+; AVX512F-32-NEXT: vpbroadcastw %eax, %zmm1 {%k1} {z}
----------------
craig.topper wrote:
> Any idea why we lost the movzwl?
since EAX is now live after the load, FixupBWInsts is unable to replace the AX load to movzwl.
I'm trying to teach FixupBWInstPass::getSuperRegDestIfDead to recognize that it is safe to replace in this case. But seeing a lot of performance swings so far.
https://reviews.llvm.org/D36479
More information about the llvm-commits
mailing list