diff options
| author | Christophe Lyon <christophe.lyon@linaro.org> | 2025-08-19 21:21:59 +0000 |
|---|---|---|
| committer | Christophe Lyon <christophe.lyon@linaro.org> | 2025-11-18 17:02:33 +0000 |
| commit | 6c0f2ad102633abb79be34fa06537db1e269921a (patch) | |
| tree | 450f382f6b0758677629b4816d5734a030b84eb9 /libjava/classpath/java/io/FileNotFoundException.java | |
| parent | 647e02a552be7128ddf54b46d73e401c5faa539c (diff) | |
arm: [MVE intrinsics] rework vgetq_lane vsetq_lane
Implement vgetq_lane and vsetq_lane using the new MVE builtins
framework.
Although MVE intrinsics are not supported in big-endian mode, we keep
the code to convert lane indices into GCC's vector indices, so that
it's already in place in case we want to support big-endian in the
future.
The patch adds new tests, to check that we emit an error when the lane
number is not in the expected range.
gcc/ChangeLog:
* config/arm/arm-mve-builtins-base.cc (class
mve_function_vset_vget_lane): New.
(vgetq_lane, vsetq_lane): New.
* config/arm/arm-mve-builtins-base.def (vgetq_lane, vsetq_lane):
New.
* config/arm/arm-mve-builtins-base.h (vgetq_lane, vsetq_lane):
New.
* config/arm/arm-mve-builtins-shapes.cc (struct getq_lane)
(setq_lane): New.
* config/arm/arm-mve-builtins-shapes.h (getq_lane, setq_lane):
New.
* config/arm/arm_mve.h (vsetq_lane): Delete.
(vgetq_lane): Delete.
(vsetq_lane_f16): Delete.
(vsetq_lane_f32): Delete.
(vsetq_lane_s16): Delete.
(vsetq_lane_s32): Delete.
(vsetq_lane_s8): Delete.
(vsetq_lane_s64): Delete.
(vsetq_lane_u8): Delete.
(vsetq_lane_u16): Delete.
(vsetq_lane_u32): Delete.
(vsetq_lane_u64): Delete.
(vgetq_lane_f16): Delete.
(vgetq_lane_f32): Delete.
(vgetq_lane_s16): Delete.
(vgetq_lane_s32): Delete.
(vgetq_lane_s8): Delete.
(vgetq_lane_s64): Delete.
(vgetq_lane_u8): Delete.
(vgetq_lane_u16): Delete.
(vgetq_lane_u32): Delete.
(vgetq_lane_u64): Delete.
(__ARM_NUM_LANES): Delete.
(__ARM_LANEQ): Delete.
(__ARM_CHECK_LANEQ): Delete.
(__arm_vsetq_lane_s16): Delete.
(__arm_vsetq_lane_s32): Delete.
(__arm_vsetq_lane_s8): Delete.
(__arm_vsetq_lane_s64): Delete.
(__arm_vsetq_lane_u8): Delete.
(__arm_vsetq_lane_u16): Delete.
(__arm_vsetq_lane_u32): Delete.
(__arm_vsetq_lane_u64): Delete.
(__arm_vgetq_lane_s16): Delete.
(__arm_vgetq_lane_s32): Delete.
(__arm_vgetq_lane_s8): Delete.
(__arm_vgetq_lane_s64): Delete.
(__arm_vgetq_lane_u8): Delete.
(__arm_vgetq_lane_u16): Delete.
(__arm_vgetq_lane_u32): Delete.
(__arm_vgetq_lane_u64): Delete.
(__arm_vsetq_lane_f16): Delete.
(__arm_vsetq_lane_f32): Delete.
(__arm_vgetq_lane_f16): Delete.
(__arm_vgetq_lane_f32): Delete.
(__arm_vsetq_lane): Delete.
(__arm_vgetq_lane): Delete.
* config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Add '@'
prefix.
(mve_vec_set<mode>_internal): Likewise.
gcc/testsuite/ChangeLog:
* gcc.target/arm/mve/intrinsics/vsetq_lane_f16_bounds.c: New test.
* gcc.target/arm/mve/intrinsics/vsetq_lane_f32_bounds.c: New test.
* gcc.target/arm/mve/intrinsics/vsetq_lane_s16_bounds.c: New test.
* gcc.target/arm/mve/intrinsics/vsetq_lane_s32_bounds.c: New test.
* gcc.target/arm/mve/intrinsics/vsetq_lane_s64_bounds.c: New test.
* gcc.target/arm/mve/intrinsics/vsetq_lane_s8_bounds.c: New test.
* gcc.target/arm/mve/intrinsics/vsetq_lane_u16_bounds.c: New test.
* gcc.target/arm/mve/intrinsics/vsetq_lane_u32_bounds.c: New test.
* gcc.target/arm/mve/intrinsics/vsetq_lane_u64_bounds.c: New test.
* gcc.target/arm/mve/intrinsics/vsetq_lane_u8_bounds.c: New test.
Diffstat (limited to 'libjava/classpath/java/io/FileNotFoundException.java')
0 files changed, 0 insertions, 0 deletions
