[PATCH] D152001: [RISCV][SLP] Inflate insert/extract costs on very small vectors

Alexey Bataev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 5 09:32:08 PDT 2023


ABataev added inline comments.


================
Comment at: llvm/test/Transforms/SLPVectorizer/RISCV/math-function.ll:203
-; CHECK-NEXT:    [[TMP3:%.*]] = shufflevector <4 x float> [[TMP0]], <4 x float> poison, <2 x i32> <i32 2, i32 3>
-; CHECK-NEXT:    [[TMP4:%.*]] = call fast <2 x float> @llvm.exp.v2f32(<2 x float> [[TMP3]])
-; CHECK-NEXT:    [[TMP5:%.*]] = shufflevector <2 x float> [[TMP4]], <2 x float> poison, <4 x i32> <i32 0, i32 1, i32 poison, i32 poison>
----------------
reames wrote:
> For a bit of context since this confused me at first.
> 
> We don't actually have a vector lowering for exp.  As a result, @llvm.exp.v2f32 is getting scalarized by the backend, and the cost model knows this.  This is why this change to extract/insert element is seemingly effecting extract subvector costs.  It isn't; it's, correctly, effecting the perceived cost of the vector exp op.  
Then it requires the changes in the nide building algorithm. Need to check that the vector node is legal/vectorized, if it is not legal/salarized - build gather node instead of vector node


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D152001



More information about the llvm-commits mailing list