aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/java/security/der/BitString.java
diff options
context:
space:
mode:
authorPengfei Li <Pengfei.Li2@arm.com>2025-08-07 14:52:45 +0000
committerPengfei Li <Pengfei.Li2@arm.com>2025-08-08 13:42:25 +0000
commitaa1e7dd6a354da428e23bd5e528a8a0f744e7351 (patch)
treeefca31e41276141ae1cea1df5099f205b11e808f /libjava/gnu/java/security/der/BitString.java
parentc9d0953ec88a4a4d2d949042ecb44deaeb65961f (diff)
downloadgcc-aa1e7dd6a354da428e23bd5e528a8a0f744e7351.zip
gcc-aa1e7dd6a354da428e23bd5e528a8a0f744e7351.tar.gz
gcc-aa1e7dd6a354da428e23bd5e528a8a0f744e7351.tar.bz2
AArch64: Fix invalid immediate offsets in SVE gather/scatter [PR121449]
This patch fixes incorrect constraints in RTL patterns for AArch64 SVE gather/scatter with type widening/narrowing and vector-plus-immediate addressing. The bug leads to below "immediate offset out of range" errors during assembly, eventually causing compilation failures. /tmp/ccsVqBp1.s: Assembler messages: /tmp/ccsVqBp1.s:54: Error: immediate offset out of range 0 to 31 at operand 3 -- `ld1b z1.d,p0/z,[z1.d,#64]' Current RTL patterns for such instructions incorrectly use vgw or vgd constraints for the immediate operand, base on the vector element type in Z registers (zN.s or zN.d). However, for gather/scatter with type conversions, the immediate range for vector-plus-immediate addressing is determined by the element type in memory, which differs from that in vector registers. Using the wrong constraint can produce out-of-range offset values that cannot be encoded in the instruction. This patch corrects the constraints used in these patterns. A test case that reproduces the issue is also included. Bootstrapped and regression-tested on aarch64-linux-gnu. gcc/ChangeLog: PR target/121449 * config/aarch64/aarch64-sve.md (mask_gather_load<mode><v_int_container>): Use vg<Vesize> constraints for alternatives with immediate offset. (mask_scatter_store<mode><v_int_container>): Likewise. gcc/testsuite/ChangeLog: PR target/121449 * g++.target/aarch64/sve/pr121449.C: New test.
Diffstat (limited to 'libjava/gnu/java/security/der/BitString.java')
0 files changed, 0 insertions, 0 deletions