[PATCH] D52881: [LV] Do not create SCEVs on broken IR in emitTransformedIndex. PR39160

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 4 07:40:15 PDT 2018


fhahn added a comment.

I think it should be fine to not rely on SCEV to do the simplifications here and let instcombine/simplify do it.



================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:2517
+  // cases only.
+  auto CreateAdd = [&](Value *X, Value *Y) {
+    assert(X->getType() == Y->getType() && "Types don't match!");
----------------
Unless I msised something, it looks like capturing just B would work?


================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:2528
+
+  auto CreateMul = [&](Value *X, Value *Y) {
+    assert(X->getType() == Y->getType() && "Types don't match!");
----------------
Unless I msised something, it looks like capturing just B would work?


================
Comment at: test/Transforms/LoopVectorize/X86/pr39160.ll:1
+; RUN: opt < %s  -loop-vectorize -S | FileCheck %s
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128-ni:1"
----------------
can this test be simplified a bit further with bugpoint?




================
Comment at: test/Transforms/LoopVectorize/X86/pr39160.ll:116
+
+attributes #0 = { "target-cpu"="broadwell" "target-features"="+sse2,+cx16,+sahf,-tbm,-avx512ifma,-sha,-gfni,-fma4,-vpclmulqdq,+prfchw,+bmi2,-cldemote,+fsgsbase,-ptwrite,-xsavec,+popcnt,+aes,-avx512bitalg,-movdiri,-xsaves,-avx512er,-avx512vnni,-avx512vpopcntdq,-pconfig,-clwb,-avx512f,-clzero,-pku,+mmx,-lwp,-rdpid,-xop,+rdseed,-waitpkg,-movdir64b,-sse4a,-avx512bw,-clflushopt,+xsave,-avx512vbmi2,+64bit,-avx512vl,+invpcid,-avx512cd,+avx,-vaes,+rtm,+fma,+bmi,+rdrnd,-mwaitx,+sse4.1,+sse4.2,+avx2,-wbnoinvd,+sse,+lzcnt,+pclmul,-prefetchwt1,+f16c,+ssse3,-sgx,-shstk,+cmov,-avx512vbmi,+movbe,+xsaveopt,-avx512dq,+adx,-avx512pf,+sse3" }
----------------
is this needed?


https://reviews.llvm.org/D52881





More information about the llvm-commits mailing list