gnu /
gcc /
907895c0f247f5667498820939b21db11788f1d4 arm: mve: avoid invalid immediate values in vbicq_n, vorrq_n, vmvnq_n [PR122175]
A constant value with the top bit of a 16-bit const passed to vbicq_n_u16 will
generate invalid assembly. Avoid this by masking the constant during assembly
generation.
The same applies to vorrq_n and vmvnq_n.
gcc/ChangeLog:
PR target/122175
* config/arm/iterators.md (asm_const_size): New mode attr.
* config/arm/mve.md (@mve_<mve_insn>q_n_<supf><mode>): Use it.
gcc/testsuite/ChangeLog:
PR target/122175
* gcc.target/arm/mve/intrinsics/pr122175.c: New test.
Co-authored-by: Richard Earnshaw <rearnsha@arm.com>
(cherry picked from commit 079e570ff8899fefdc3ef3d1a81eaaa6997f5e8e)
3 files changed