]> git.ipfire.org Git - thirdparty/gcc.git/commit
LoongArch: Fix bug for PR122097.
authorLulu Cheng <chenglulu@loongson.cn>
Tue, 30 Sep 2025 03:32:47 +0000 (11:32 +0800)
committerLulu Cheng <chenglulu@loongson.cn>
Wed, 29 Oct 2025 06:08:27 +0000 (14:08 +0800)
commitdbd0e8fc50e990e999217cc3a2fc5b6fbc74a09d
tree877ab6b89f43c18a5e65a65efdf934d356377461
parent03c25c976da07b260f7acb757688eefb22ff9017
LoongArch: Fix bug for PR122097.

When implementing the vector template for copysign, we used vector
floating-point AND and IOR operations. This allows AND and IOR operands
to be vector floating-point types. However, the constraint YC does not
handle vector floating-point constants, resulting in ICE.

PR target/122097

gcc/ChangeLog:

* config/loongarch/loongarch.cc
(loongarch_const_vector_bitimm_set_p): Add support for vector float.
(loongarch_const_vector_bitimm_clr_p): Likewise.
(loongarch_print_operand): Likewise.
* config/loongarch/simd.md (and<mode>3): Likewise.

gcc/testsuite/ChangeLog:

* gcc.target/loongarch/pr122097.c: New test.
gcc/config/loongarch/loongarch.cc
gcc/config/loongarch/simd.md
gcc/testsuite/gcc.target/loongarch/pr122097.c [new file with mode: 0644]