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