Currenlty all temporal loads are mapped to LDP or LDR. This patch will map all the non temporal 256-bit loads into LDNP. Future patches should address other non-temporal loads.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | ||
---|---|---|
795 | Could you add a comment similar to the one for the stores above? | |
806 | nit: please add a newline before this comment. | |
20425 | Would be good to have a comment here to describe what's lowered here. | |
20440 | leftover commented-out code? | |
llvm/lib/Target/AArch64/AArch64InstrInfo.td | ||
2588 | nit: newline here |
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | ||
---|---|---|
20426 | I followed the same code that is used to lower STNP but I think it is not really necessary here. |
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp | ||
---|---|---|
20420–20421 | I think this assertion doesn't really make sense any longer, because we now enable the custom lowering for additional types. This probably needs to became just a check (i.e add an early exit here if the cownciditon doesn't hold). At the moment this assertion triggers in multiple tests, causing them to fail. |
I can't think of any reason why this should be needed now and also couldn't find anything when looking at the original review. @zjaffal it would be great if you could post a follow-up patch that removes isKnownEven from the checks for STNP or even better move the checks to a helper function used by both STNP and LDNP handling code.
Could you add a comment similar to the one for the stores above?