[Qemu-devel] [PATCH v3 00/12] target/arm: tcg vector cleanups

Richard Henderson posted 12 patches 5 years, 2 months ago
Test docker-mingw@fedora passed
Test asan passed
Test checkpatch failed
Test docker-clang@ubuntu passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190209033847.9014-1-richard.henderson@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>
target/arm/cpu.h           |   5 +-
target/arm/helper.h        |  45 ++++++--
target/arm/translate.h     |   4 +
target/arm/helper.c        |  81 +++++++++-----
target/arm/neon_helper.c   |  14 +--
target/arm/translate-a64.c |  77 ++++++-------
target/arm/translate-sve.c |   6 +-
target/arm/translate.c     | 219 +++++++++++++++++++++++++++++--------
target/arm/vec_helper.c    | 134 ++++++++++++++++++++++-
9 files changed, 433 insertions(+), 152 deletions(-)
[Qemu-devel] [PATCH v3 00/12] target/arm: tcg vector cleanups
Posted by Richard Henderson 5 years, 2 months ago
Changes since v2:
  * Fix some representational issues with FPSCR.
  * Use host vector saturation for SQADD/UQADD.
    This requires changing the internal representation of FPSR.QC.
  * Fix a latent vector bug, noticed during the rest.

Correct RISU results depend on Mark C-A's patch from today,
"tcg/i386: fix unsigned vector saturating arithmetic",
which will be in my next tcg pull.


r~


Richard Henderson (12):
  target/arm: Rely on optimization within tcg_gen_gvec_or
  target/arm: Use vector minmax expanders for aarch64
  target/arm: Use vector minmax expanders for aarch32
  target/arm: Use tcg integer min/max primitives for neon
  target/arm: Remove neon min/max helpers
  target/arm: Fix vfp_gdb_get/set_reg vs FPSCR
  target/arm: Fix arm_cpu_dump_state vs FPSCR
  target/arm: Split out flags setting from vfp compares
  target/arm: Fix set of bits kept in xregs[ARM_VFP_FPSCR]
  target/arm: Split out FPSCR.QC to a vector field
  target/arm: Use vector operations for saturation
  target/arm: Add missing clear_tail calls

 target/arm/cpu.h           |   5 +-
 target/arm/helper.h        |  45 ++++++--
 target/arm/translate.h     |   4 +
 target/arm/helper.c        |  81 +++++++++-----
 target/arm/neon_helper.c   |  14 +--
 target/arm/translate-a64.c |  77 ++++++-------
 target/arm/translate-sve.c |   6 +-
 target/arm/translate.c     | 219 +++++++++++++++++++++++++++++--------
 target/arm/vec_helper.c    | 134 ++++++++++++++++++++++-
 9 files changed, 433 insertions(+), 152 deletions(-)

-- 
2.17.2


Re: [Qemu-devel] [PATCH v3 00/12] target/arm: tcg vector cleanups
Posted by no-reply@patchew.org 5 years, 2 months ago
Patchew URL: https://patchew.org/QEMU/20190209033847.9014-1-richard.henderson@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [Qemu-devel] [PATCH v3 00/12] target/arm: tcg vector cleanups
Message-id: 20190209033847.9014-1-richard.henderson@linaro.org
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]         patchew/20190209033847.9014-1-richard.henderson@linaro.org -> patchew/20190209033847.9014-1-richard.henderson@linaro.org
Submodule 'capstone' (https://git.qemu.org/git/capstone.git) registered for path 'capstone'
Submodule 'dtc' (https://git.qemu.org/git/dtc.git) registered for path 'dtc'
Submodule 'roms/QemuMacDrivers' (https://git.qemu.org/git/QemuMacDrivers.git) registered for path 'roms/QemuMacDrivers'
Submodule 'roms/SLOF' (https://git.qemu.org/git/SLOF.git) registered for path 'roms/SLOF'
Submodule 'roms/ipxe' (https://git.qemu.org/git/ipxe.git) registered for path 'roms/ipxe'
Submodule 'roms/openbios' (https://git.qemu.org/git/openbios.git) registered for path 'roms/openbios'
Submodule 'roms/openhackware' (https://git.qemu.org/git/openhackware.git) registered for path 'roms/openhackware'
Submodule 'roms/qemu-palcode' (https://git.qemu.org/git/qemu-palcode.git) registered for path 'roms/qemu-palcode'
Submodule 'roms/seabios' (https://git.qemu.org/git/seabios.git/) registered for path 'roms/seabios'
Submodule 'roms/seabios-hppa' (https://github.com/hdeller/seabios-hppa.git) registered for path 'roms/seabios-hppa'
Submodule 'roms/sgabios' (https://git.qemu.org/git/sgabios.git) registered for path 'roms/sgabios'
Submodule 'roms/skiboot' (https://git.qemu.org/git/skiboot.git) registered for path 'roms/skiboot'
Submodule 'roms/u-boot' (https://git.qemu.org/git/u-boot.git) registered for path 'roms/u-boot'
Submodule 'roms/u-boot-sam460ex' (https://git.qemu.org/git/u-boot-sam460ex.git) registered for path 'roms/u-boot-sam460ex'
Submodule 'tests/fp/berkeley-softfloat-3' (https://github.com/cota/berkeley-softfloat-3) registered for path 'tests/fp/berkeley-softfloat-3'
Submodule 'tests/fp/berkeley-testfloat-3' (https://github.com/cota/berkeley-testfloat-3) registered for path 'tests/fp/berkeley-testfloat-3'
Submodule 'ui/keycodemapdb' (https://git.qemu.org/git/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into 'capstone'...
Submodule path 'capstone': checked out '22ead3e0bfdb87516656453336160e0a37b066bf'
Cloning into 'dtc'...
Submodule path 'dtc': checked out '88f18909db731a627456f26d779445f84e449536'
Cloning into 'roms/QemuMacDrivers'...
Submodule path 'roms/QemuMacDrivers': checked out '90c488d5f4a407342247b9ea869df1c2d9c8e266'
Cloning into 'roms/SLOF'...
Submodule path 'roms/SLOF': checked out 'a5b428e1c1eae703bdd62a3f527223c291ee3fdc'
Cloning into 'roms/ipxe'...
Submodule path 'roms/ipxe': checked out 'de4565cbe76ea9f7913a01f331be3ee901bb6e17'
Cloning into 'roms/openbios'...
Submodule path 'roms/openbios': checked out '441a84d3a642a10b948369c63f32367e8ff6395b'
Cloning into 'roms/openhackware'...
Submodule path 'roms/openhackware': checked out 'c559da7c8eec5e45ef1f67978827af6f0b9546f5'
Cloning into 'roms/qemu-palcode'...
Submodule path 'roms/qemu-palcode': checked out '51c237d7e20d05100eacadee2f61abc17e6bc097'
Cloning into 'roms/seabios'...
Submodule path 'roms/seabios': checked out 'a698c8995ffb2838296ec284fe3c4ad33dfca307'
Cloning into 'roms/seabios-hppa'...
Submodule path 'roms/seabios-hppa': checked out '1ef99a01572c2581c30e16e6fe69e9ea2ef92ce0'
Cloning into 'roms/sgabios'...
Submodule path 'roms/sgabios': checked out 'cbaee52287e5f32373181cff50a00b6c4ac9015a'
Cloning into 'roms/skiboot'...
Submodule path 'roms/skiboot': checked out 'e0ee24c27a172bcf482f6f2bc905e6211c134bcc'
Cloning into 'roms/u-boot'...
Submodule path 'roms/u-boot': checked out 'd85ca029f257b53a96da6c2fb421e78a003a9943'
Cloning into 'roms/u-boot-sam460ex'...
Submodule path 'roms/u-boot-sam460ex': checked out '60b3916f33e617a815973c5a6df77055b2e3a588'
Cloning into 'tests/fp/berkeley-softfloat-3'...
Submodule path 'tests/fp/berkeley-softfloat-3': checked out 'b64af41c3276f97f0e181920400ee056b9c88037'
Cloning into 'tests/fp/berkeley-testfloat-3'...
Submodule path 'tests/fp/berkeley-testfloat-3': checked out '5a59dcec19327396a011a17fd924aed4fec416b3'
Cloning into 'ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '6b3d716e2b6472eb7189d3220552280ef3d832ce'
Switched to a new branch 'test'
14ab3e4 target/arm: Add missing clear_tail calls
6e1ff3e target/arm: Use vector operations for saturation
0e4e921 target/arm: Split out FPSCR.QC to a vector field
40b552d target/arm: Fix set of bits kept in xregs[ARM_VFP_FPSCR]
3ee1da7 target/arm: Split out flags setting from vfp compares
41e8694 target/arm: Fix arm_cpu_dump_state vs FPSCR
23628c0 target/arm: Fix vfp_gdb_get/set_reg vs FPSCR
780dc13 target/arm: Remove neon min/max helpers
fc636d7 target/arm: Use tcg integer min/max primitives for neon
8ff6492 target/arm: Use vector minmax expanders for aarch32
d86eaa3 target/arm: Use vector minmax expanders for aarch64
fc0b82c target/arm: Rely on optimization within tcg_gen_gvec_or

=== OUTPUT BEGIN ===
1/12 Checking commit fc0b82c4ab74 (target/arm: Rely on optimization within tcg_gen_gvec_or)
2/12 Checking commit d86eaa379343 (target/arm: Use vector minmax expanders for aarch64)
3/12 Checking commit 8ff6492f628b (target/arm: Use vector minmax expanders for aarch32)
4/12 Checking commit fc636d7cdc94 (target/arm: Use tcg integer min/max primitives for neon)
5/12 Checking commit 780dc13c0ef9 (target/arm: Remove neon min/max helpers)
6/12 Checking commit 23628c03ad1b (target/arm: Fix vfp_gdb_get/set_reg vs FPSCR)
ERROR: trailing statements should be on next line
#22: FILE: target/arm/helper.c:84:
+    case 1: stl_p(buf, vfp_get_fpscr(env)); return 4;

ERROR: trailing statements should be on next line
#31: FILE: target/arm/helper.c:110:
+    case 1: vfp_set_fpscr(env, ldl_p(buf)); return 4;

total: 2 errors, 0 warnings, 16 lines checked

Patch 6/12 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

7/12 Checking commit 41e8694369f0 (target/arm: Fix arm_cpu_dump_state vs FPSCR)
8/12 Checking commit 3ee1da71e10e (target/arm: Split out flags setting from vfp compares)
9/12 Checking commit 40b552d5049b (target/arm: Fix set of bits kept in xregs[ARM_VFP_FPSCR])
10/12 Checking commit 0e4e921a93e3 (target/arm: Split out FPSCR.QC to a vector field)
11/12 Checking commit 6e1ff3edb001 (target/arm: Use vector operations for saturation)
ERROR: spaces required around that '*' (ctx:WxV)
#357: FILE: target/arm/vec_helper.c:774:
+    TYPEN *d = vd, *n = vn; TYPEM *m = vm;                                 \
                                   ^

total: 1 errors, 0 warnings, 438 lines checked

Patch 11/12 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

12/12 Checking commit 14ab3e4b2dd0 (target/arm: Add missing clear_tail calls)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20190209033847.9014-1-richard.henderson@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [Qemu-devel] [PATCH v3 00/12] target/arm: tcg vector cleanups
Posted by no-reply@patchew.org 5 years, 2 months ago
Patchew URL: https://patchew.org/QEMU/20190209033847.9014-1-richard.henderson@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Subject: [Qemu-devel] [PATCH v3 00/12] target/arm: tcg vector cleanups
Type: series
Message-id: 20190209033847.9014-1-richard.henderson@linaro.org

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]               patchew/20190209033847.9014-1-richard.henderson@linaro.org -> patchew/20190209033847.9014-1-richard.henderson@linaro.org
Switched to a new branch 'test'
14ab3e4b2d target/arm: Add missing clear_tail calls
6e1ff3edb0 target/arm: Use vector operations for saturation
0e4e921a93 target/arm: Split out FPSCR.QC to a vector field
40b552d504 target/arm: Fix set of bits kept in xregs[ARM_VFP_FPSCR]
3ee1da71e1 target/arm: Split out flags setting from vfp compares
41e8694369 target/arm: Fix arm_cpu_dump_state vs FPSCR
23628c03ad target/arm: Fix vfp_gdb_get/set_reg vs FPSCR
780dc13c0e target/arm: Remove neon min/max helpers
fc636d7cdc target/arm: Use tcg integer min/max primitives for neon
8ff6492f62 target/arm: Use vector minmax expanders for aarch32
d86eaa3793 target/arm: Use vector minmax expanders for aarch64
fc0b82c4ab target/arm: Rely on optimization within tcg_gen_gvec_or

=== OUTPUT BEGIN ===
1/12 Checking commit fc0b82c4ab74 (target/arm: Rely on optimization within tcg_gen_gvec_or)
2/12 Checking commit d86eaa379343 (target/arm: Use vector minmax expanders for aarch64)
3/12 Checking commit 8ff6492f628b (target/arm: Use vector minmax expanders for aarch32)
4/12 Checking commit fc636d7cdc94 (target/arm: Use tcg integer min/max primitives for neon)
5/12 Checking commit 780dc13c0ef9 (target/arm: Remove neon min/max helpers)
6/12 Checking commit 23628c03ad1b (target/arm: Fix vfp_gdb_get/set_reg vs FPSCR)
ERROR: trailing statements should be on next line
#22: FILE: target/arm/helper.c:84:
+    case 1: stl_p(buf, vfp_get_fpscr(env)); return 4;

ERROR: trailing statements should be on next line
#31: FILE: target/arm/helper.c:110:
+    case 1: vfp_set_fpscr(env, ldl_p(buf)); return 4;

total: 2 errors, 0 warnings, 16 lines checked

Patch 6/12 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

7/12 Checking commit 41e8694369f0 (target/arm: Fix arm_cpu_dump_state vs FPSCR)
8/12 Checking commit 3ee1da71e10e (target/arm: Split out flags setting from vfp compares)
9/12 Checking commit 40b552d5049b (target/arm: Fix set of bits kept in xregs[ARM_VFP_FPSCR])
10/12 Checking commit 0e4e921a93e3 (target/arm: Split out FPSCR.QC to a vector field)
11/12 Checking commit 6e1ff3edb001 (target/arm: Use vector operations for saturation)
ERROR: spaces required around that '*' (ctx:WxV)
#357: FILE: target/arm/vec_helper.c:774:
+    TYPEN *d = vd, *n = vn; TYPEM *m = vm;                                 \
                                   ^

total: 1 errors, 0 warnings, 438 lines checked

Patch 11/12 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

12/12 Checking commit 14ab3e4b2dd0 (target/arm: Add missing clear_tail calls)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20190209033847.9014-1-richard.henderson@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [Qemu-devel] [PATCH v3 00/12] target/arm: tcg vector cleanups
Posted by Peter Maydell 5 years, 2 months ago
On Sat, 9 Feb 2019 at 03:38, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Changes since v2:
>   * Fix some representational issues with FPSCR.
>   * Use host vector saturation for SQADD/UQADD.
>     This requires changing the internal representation of FPSR.QC.
>   * Fix a latent vector bug, noticed during the rest.
>
> Correct RISU results depend on Mark C-A's patch from today,
> "tcg/i386: fix unsigned vector saturating arithmetic",
> which will be in my next tcg pull.
>

Applied to target-arm.next, thanks. (That tcg fix is in
master now.)

-- PMM