[PATCH] D106447: [DAGCombine] DAGTypeLegalizer::GenWidenVectorLoads(): make use of dereferenceability knowledge

Pengfei Wang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 21 08:06:00 PDT 2021


pengfei added inline comments.


================
Comment at: llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:5277
 
+  if (LdAlign && !WidenWidth.isScalable() && LdAlign < WidenWidth / 8 &&
+      LD->getPointerInfo().isDereferenceable(WidenWidth / 8, *DAG.getContext(),
----------------
Is this a trick that turning unaligned memory to aligned if the widen bits are dereferenceable?
The problem I can think is we may mistakenly generate `movaps` on an unaligned address which will crush in runtime.
Did I misunderstand something here? Because I saw the tests are using `movups` in fact.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D106447



More information about the llvm-commits mailing list