[PATCH] D62651: [ARM] Add FP16 vector insert/extract patterns
Mikhail Maltsev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 30 04:42:21 PDT 2019
miyuki created this revision.
miyuki added a reviewer: eli.friedman.
Herald added subscribers: hiraditya, kristof.beyls, javed.absar.
Herald added a project: LLVM.
This change adds two FP16 extraction and two insertion patterns
(one per possible vector length). 64-bit operations are handled by
existing i16 machinery with some conversion between GPRs and FP
registers (VMOVRH and VMOVHR insns). 128-bit vectors are handled
similarly, but the operation is only performed on one of the 64-bit
parts (using INSERT_SUBREG and EXTRACT_SUBREG with appropriate lane
index conversions).
Without these patterns the ARM backend would sometimes fail during
instruction selection.
This patch also adds patterns which combine:
- an FP16 element extraction and a store into a single VST1 instruction
- an FP16 load and an insertion into a single VLD1 instruction
https://reviews.llvm.org/D62651
Files:
llvm/lib/Target/ARM/ARMInstrNEON.td
llvm/test/CodeGen/ARM/fp16-insert-extract.ll
llvm/test/CodeGen/ARM/fp16-vldlane-vstlane.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62651.202153.patch
Type: text/x-patch
Size: 7209 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190530/14c28d19/attachment.bin>
More information about the llvm-commits
mailing list