This was using the .2d variant, but using the "movi d0" variant that zeros 64 bits is faster on some cores.
This is a prep step for D99586 to always using movi for zeroing floats.
Paths
| Differential D99710
[AArch64] Use 64-bit movi for zeroing halfs/floats ClosedPublic Authored by SjoerdMeijer on Apr 1 2021, 2:30 AM.
Details Summary This was using the .2d variant, but using the "movi d0" variant that zeros 64 bits is faster on some cores. This is a prep step for D99586 to always using movi for zeroing floats.
Diff Detail Event TimelineHerald added subscribers: danielkiss, hiraditya, kristof.beyls. · View Herald TranscriptApr 1 2021, 2:30 AM
Comment Actions I think the exact suggestion was to use MOVID instead. I'm not sure how much it matters, but it may be a simpler instruction for some cores. This would then match what GCC emits. Comment Actions
Well, that's not what GCC does at moment, not yet at least, but it is indeed another way of doing it. But let's go for the movi d0. Comment Actions Thanks. This LGTM, so long as the Apple folks here are happy with changing the instruction issued.
This revision is now accepted and ready to land.Apr 1 2021, 6:12 AM Closed by commit rGef05b08c612d: [AArch64] Use 64-bit movi for zeroing halfs/floats (authored by SjoerdMeijer). · Explain WhyApr 6 2021, 12:42 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 334626 llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
llvm/test/CodeGen/AArch64/arm64-zero-cycle-zeroing.ll
llvm/test/CodeGen/AArch64/f16-imm.ll
|
Should this be moved to the else case? It looks like we're adding the same immediate twice for the H and S cases.