[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