[PATCH] D59912: [x86] flatten packss+movmsk into 256-bit movmsk

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 28 01:55:41 PDT 2019


RKSimon added a comment.

The movmsk being used on vXi16 is worrying me



================
Comment at: llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll:139
+; AVX2-NEXT:    vandpd %ymm1, %ymm0, %ymm0
+; AVX2-NEXT:    vmovmskps %ymm0, %eax
+; AVX2-NEXT:    # kill: def $al killed $al killed $eax
----------------
Haven't check it thoroughly - but how come this isn't vmovmskpd ymm0? For both AVX1 and AVX2.


================
Comment at: llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll:205
 ; AVX2-NEXT:    vpand %ymm1, %ymm0, %ymm0
-; AVX2-NEXT:    vextracti128 $1, %ymm0, %xmm1
-; AVX2-NEXT:    vpacksswb %xmm1, %xmm0, %xmm0
-; AVX2-NEXT:    vpmovmskb %xmm0, %eax
+; AVX2-NEXT:    vpmovmskb %ymm0, %eax
 ; AVX2-NEXT:    # kill: def $ax killed $ax killed $eax
----------------
I don't think this is going to work - we end up with a movmsk of a 32i8 (i32 instead of a i16 zext).


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59912/new/

https://reviews.llvm.org/D59912





More information about the llvm-commits mailing list