[PATCH] D15038: [ARM] Add ARMv8.2-A FP16 scalar instructions

Oliver Stannard via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 27 04:50:01 PST 2015


olista01 created this revision.
olista01 added reviewers: t.p.northover, ab.
olista01 added a subscriber: llvm-commits.
olista01 set the repository for this revision to rL LLVM.
Herald added subscribers: rengolin, aemerson.

ARMv8.2-A adds 16-bit floating point versions of all existing VFP
floating-point instructions. This is an optional extension, so all of
these instructions require the FeatureFullFP16 subtarget feature.

The assembly for these instructions uses S registers (AArch32 does not
have H registers), but the instructions have ".f16" type specifiers
rather than ".f32" or ".f64". The top 16 bits of each source register
are ignored, and the top 16 bits of the destination register are set to
zero.

These instructions are mostly the same as the 32- and 64-bit versions,
but they use coprocessor 9 rather than 10 and 11.

Two new instructions, VMOVX and VINS, have been added to allow packing
and extracting two 16-bit floats stored in the top and bottom halves of
an S register.

New fixup kinds have been added for the PC-relative load and store
instructions, but no ELF relocations have been added as they have a
range of 512 bytes.

Repository:
  rL LLVM

http://reviews.llvm.org/D15038

Files:
  lib/Target/ARM/ARMInstrFormats.td
  lib/Target/ARM/ARMInstrInfo.td
  lib/Target/ARM/ARMInstrVFP.td
  lib/Target/ARM/ARMSchedule.td
  lib/Target/ARM/AsmParser/ARMAsmParser.cpp
  lib/Target/ARM/Disassembler/ARMDisassembler.cpp
  lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
  lib/Target/ARM/InstPrinter/ARMInstPrinter.h
  lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h
  lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
  lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h
  lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
  test/MC/ARM/fullfp16-neg.s
  test/MC/ARM/fullfp16.s
  test/MC/Disassembler/ARM/fullfp16-arm-neg.txt
  test/MC/Disassembler/ARM/fullfp16-arm.txt
  test/MC/Disassembler/ARM/fullfp16-thumb-neg.txt
  test/MC/Disassembler/ARM/fullfp16-thumb.txt

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15038.41290.patch
Type: text/x-patch
Size: 85350 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151127/d2937d00/attachment-0001.bin>


More information about the llvm-commits mailing list