[PATCH] D123991: [LangRef] Clarify load/store of non-byte-sized types

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 24 08:44:18 PDT 2022


craig.topper added a comment.

In D123991#3467043 <https://reviews.llvm.org/D123991#3467043>, @lebedev.ri wrote:

> As for `i1`, you have seen enum BooleanContent <https://github.com/llvm/llvm-project/blob/15650b320bf6a1ce5b7e00147d1cf2725946aab2/llvm/include/llvm/CodeGen/TargetLowering.h#L229-L234>, correct?

BooleanContent is not involved in load/store handling for i1 types. See these comments in LegalizeDAG.cpp

  // Promote to a byte-sized store with upper bits zero if not                 
  // storing an integral number of bytes.  For example, promote                
  // TRUNCSTORE:i1 X -> TRUNCSTORE:i8 (and X, 1)



  // The extra bits are guaranteed to be zero, since we stored them that       
  // way.  A zext load from NVT thus automatically gives zext from SrcVT.


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

https://reviews.llvm.org/D123991



More information about the llvm-commits mailing list