This patch is part of a series to introduce an Alignment type.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
See this patch for the introduction of the type: https://reviews.llvm.org/D64790
Details
- Reviewers
courbet
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp | ||
---|---|---|
898 | [allowsMisalignedMemoryAccesses](https://github.com/llvm/llvm-project/blob/70f6389257a85a8fa7f128a05a1ccbd0dbba191c/llvm/include/llvm/CodeGen/TargetLowering.h#L1576) can only consider valid alignment. 0 here is not a valid value, that's why it is turned into a 1. | |
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp | ||
252 | ditto |
llvm/lib/Target/ARM/ARMISelLowering.cpp | ||
---|---|---|
16150 | Ty == MVT::v4i8 || Ty == MVT::v8i8 || Ty == MVT::v4i16 so Ty is either 32 or 64 bits (v4i8 is 32, v8i8 and v4i16 are 64) Or am I missing something? |
llvm/lib/Target/ARM/ARMISelLowering.cpp | ||
---|---|---|
16150 | isSimple means native to some processor (as opposed to extended). But e.g. MVT::v8i8 is both a simple and vector EVT. the scalar type for MVT::v8i8 is MVT::i8, so VT.getScalarSizeInBits()==8, i.e. VT.getScalarSizeInBits() / 8 == 1 |
llvm/lib/Target/ARM/ARMISelLowering.cpp | ||
---|---|---|
16150 | A gentle ping @dmgreen @samparker |
@courbet I'm still willing to push this one. Shall I remove [NFC] and call it a day?
AFAICT it's the only show stopper here.
[allowsMisalignedMemoryAccesses](https://github.com/llvm/llvm-project/blob/70f6389257a85a8fa7f128a05a1ccbd0dbba191c/llvm/include/llvm/CodeGen/TargetLowering.h#L1576) can only consider valid alignment. 0 here is not a valid value, that's why it is turned into a 1.