[all-commits] [llvm/llvm-project] e96adf: [lldb][AArch64] Add testing for SME's ZA and SVG r...

David Spickett via All-commits all-commits at lists.llvm.org
Tue Sep 19 05:18:38 PDT 2023

  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e96adfd0dbcf84c27be2087371890f4228890609
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2023-09-19 (Tue, 19 Sep 2023)

  Changed paths:
    M lldb/test/API/commands/register/register/aarch64_dynamic_regset/TestArm64DynamicRegsets.py
    M lldb/test/API/commands/register/register/aarch64_sve_registers/rw_access_dynamic_resize/TestSVEThreadedDynamic.py
    A lldb/test/API/commands/register/register/aarch64_za_register/za_dynamic_resize/Makefile
    A lldb/test/API/commands/register/register/aarch64_za_register/za_dynamic_resize/TestZAThreadedDynamic.py
    A lldb/test/API/commands/register/register/aarch64_za_register/za_dynamic_resize/main.c
    A lldb/test/API/commands/register/register/aarch64_za_register/za_save_restore/Makefile
    A lldb/test/API/commands/register/register/aarch64_za_register/za_save_restore/TestZARegisterSaveRestore.py
    A lldb/test/API/commands/register/register/aarch64_za_register/za_save_restore/main.c

  Log Message:
  [lldb][AArch64] Add testing for SME's ZA and SVG registers

An SME enabled program has the following extra state:
* Streaming mode or non-streaming mode.
* ZA enabled or disabled.
* The active vector length.

Covering the transition between all possible states and all other
possible states is not viable, therefore the testing added here is a cross
section of that, all of which found real bugs in LLDB and the Linux
Kernel during development.

Many of those transitions will not be possible via LLDB
(e.g. disabling ZA) and many more are possible but unlikely to be
used in normal use.

Added testing:
* TestSVEThreadedDynamic now checks for correct SVG values.
* New test TestZAThreadedDynamic creates 3 threads with different ZA sizes
  and states and switches between them verifying the register value
  (derived from the existing threaded SVE test).
* New test TestZARegisterSaveRestore starts in a given SME state, runs a
  set of expressions in various orders, then checks that the original
  state has been restored.
* TestArm64DynamicRegsets has ZA and SVG checks added, including writing
  to ZA to enable it.

Running these tests will as usual require QEMU as there is no
real SME hardware available at this time, and a very recent

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D159505

More information about the All-commits mailing list