[PATCH] D98714: [SLP] Add insertelement instructions to vectorizable tree

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 17 09:17:58 PDT 2021


RKSimon added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:1578
     /// (either with vector instruction or with scatter/gather
     /// intrinsics for store/load)?
+    enum EntryState { Vectorize, ScatterVectorize, NeedToGather, MayBeRemoved };
----------------
Update comment


================
Comment at: llvm/test/Transforms/SLPVectorizer/AMDGPU/bswap-inseltpoison.ll:10
 
 ; GFX8: call <2 x i16> @llvm.bswap.v2i16(
 define <2 x i16> @bswap_v2i16(<2 x i16> %arg) {
----------------
Regenerate + commit these files in trunk first - you will need to remove these manually added CHECK lines otherwise FileCheck will fail.


================
Comment at: llvm/test/Transforms/SLPVectorizer/AMDGPU/bswap.ll:10
 
 ; GFX8: call <2 x i16> @llvm.bswap.v2i16(
 define <2 x i16> @bswap_v2i16(<2 x i16> %arg) {
----------------
Regenerate + commit these files in trunk first - you will need to remove these manually added CHECK lines otherwise FileCheck will fail.


================
Comment at: llvm/test/Transforms/SLPVectorizer/AMDGPU/round-inseltpoison.ll:10
 
 ; GFX8: call <2 x half> @llvm.round.v2f16(
 define <2 x half> @round_v2f16(<2 x half> %arg) {
----------------
Regenerate + commit these files in trunk first - you will need to remove these manually added CHECK lines otherwise FileCheck will fail.


================
Comment at: llvm/test/Transforms/SLPVectorizer/AMDGPU/round.ll:10
 
 ; GFX8: call <2 x half> @llvm.round.v2f16(
 define <2 x half> @round_v2f16(<2 x half> %arg) {
----------------
Regenerate + commit these files in trunk first - you will need to remove these manually added CHECK lines otherwise FileCheck will fail.


================
Comment at: llvm/test/Transforms/SLPVectorizer/X86/hadd.ll:346
+; SSE-NEXT:    [[RV11:%.*]] = shufflevector <16 x i16> [[RV7]], <16 x i16> [[TMP10]], <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 undef, i32 undef, i32 undef, i32 undef>
+; SSE-NEXT:    [[RV15:%.*]] = shufflevector <16 x i16> [[RV11]], <16 x i16> [[TMP14]], <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 16, i32 17, i32 18, i32 19>
 ; SSE-NEXT:    ret <16 x i16> [[RV15]]
----------------
Regression - this is going to cause problems for HADD matching - ideally it'd use <8 x i16>


================
Comment at: llvm/test/Transforms/SLPVectorizer/X86/hsub-inseltpoison.ll:346
+; SSE-NEXT:    [[RV11:%.*]] = shufflevector <16 x i16> [[RV7]], <16 x i16> [[TMP10]], <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 16, i32 17, i32 18, i32 19, i32 undef, i32 undef, i32 undef, i32 undef>
+; SSE-NEXT:    [[RV15:%.*]] = shufflevector <16 x i16> [[RV11]], <16 x i16> [[TMP14]], <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 16, i32 17, i32 18, i32 19>
 ; SSE-NEXT:    ret <16 x i16> [[RV15]]
----------------
Regression


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D98714



More information about the llvm-commits mailing list