[PATCH] D138488: [AArch64][clang] implement 2022 General Data-Processing instructions

Ties Stuij via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 22 03:42:14 PST 2022


stuij created this revision.
Herald added subscribers: hiraditya, kristof.beyls.
Herald added a project: All.
stuij requested review of this revision.
Herald added projects: clang, LLVM.
Herald added subscribers: llvm-commits, cfe-commits.

This patch implements the 2022 Architecture General Data-Processing Instructions

They include:

Common Short Sequence Compression (CSSC) instructions

- scalar comparison instructions SMAX, SMIN, UMAX, UMIN (32/64 bits) with or without immediate
- ABS (absolute), CNT (count non-zero bits), CTZ (count trailing zeroes)
- command-line options for CSSC

Associated with these instructions in the documentation is the Range Prefetch
Memory (RPRFM) instruction, which signals to the memory system that data memory
accesses from a specified range of addresses are likely to occur in the near
future. The instruction lies in hint space, and is made unconditional.

Specs for the individual instructions can be found here:
https://developer.arm.com/documentation/ddi0602/2022-09/Base-Instructions/

contributors to this patch:

- Cullen Rhodes
- Son Tuan Vu
- Mark Murray
- Tomas Matheson
- Sam Elliott
- Ties Stuij


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D138488

Files:
  clang/test/Driver/aarch64-cssc.c
  llvm/include/llvm/Support/AArch64TargetParser.def
  llvm/include/llvm/Support/AArch64TargetParser.h
  llvm/lib/Target/AArch64/AArch64.td
  llvm/lib/Target/AArch64/AArch64InstrFormats.td
  llvm/lib/Target/AArch64/AArch64InstrInfo.td
  llvm/lib/Target/AArch64/AArch64SystemOperands.td
  llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
  llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
  llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
  llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h
  llvm/lib/Target/AArch64/SVEInstrFormats.td
  llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp
  llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
  llvm/test/MC/AArch64/CSSC/abs_32.s
  llvm/test/MC/AArch64/CSSC/abs_64.s
  llvm/test/MC/AArch64/CSSC/cnt_32.s
  llvm/test/MC/AArch64/CSSC/cnt_64.s
  llvm/test/MC/AArch64/CSSC/ctz_32.s
  llvm/test/MC/AArch64/CSSC/ctz_64.s
  llvm/test/MC/AArch64/CSSC/smax_32_imm.s
  llvm/test/MC/AArch64/CSSC/smax_32_reg.s
  llvm/test/MC/AArch64/CSSC/smax_64_imm.s
  llvm/test/MC/AArch64/CSSC/smax_64_reg.s
  llvm/test/MC/AArch64/CSSC/smin_32_imm.s
  llvm/test/MC/AArch64/CSSC/smin_32_reg.s
  llvm/test/MC/AArch64/CSSC/smin_64_imm.s
  llvm/test/MC/AArch64/CSSC/smin_64_reg.s
  llvm/test/MC/AArch64/CSSC/umax_32_imm.s
  llvm/test/MC/AArch64/CSSC/umax_32_reg.s
  llvm/test/MC/AArch64/CSSC/umax_64_imm.s
  llvm/test/MC/AArch64/CSSC/umax_64_reg.s
  llvm/test/MC/AArch64/CSSC/umin_32_imm.s
  llvm/test/MC/AArch64/CSSC/umin_32_reg.s
  llvm/test/MC/AArch64/CSSC/umin_64_imm.s
  llvm/test/MC/AArch64/CSSC/umin_64_reg.s
  llvm/test/MC/AArch64/armv9.4a-v94-dp.s
  llvm/test/MC/AArch64/rprfm.s
  llvm/test/MC/Disassembler/AArch64/armv9.4a-v94-dp.txt
  llvm/unittests/Support/TargetParserTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138488.477133.patch
Type: text/x-patch
Size: 92407 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20221122/e7412b8b/attachment-0001.bin>


More information about the cfe-commits mailing list