diff options
author | Xi Ruoyao <xry111@xry111.site> | 2024-02-03 03:16:14 +0800 |
---|---|---|
committer | Xi Ruoyao <xry111@xry111.site> | 2024-02-04 22:57:47 +0800 |
commit | aa33570033fb642f2e25326cd67f98e70f199533 (patch) | |
tree | 5f0679ab64445a4ed6b832099ec1ebb4b67d9987 /contrib | |
parent | 829b26328aebca167083f4cf81ca69f7d906e704 (diff) | |
download | gcc-aa33570033fb642f2e25326cd67f98e70f199533.zip gcc-aa33570033fb642f2e25326cd67f98e70f199533.tar.gz gcc-aa33570033fb642f2e25326cd67f98e70f199533.tar.bz2 |
LoongArch: Fix wrong LSX FP vector negation
We expanded (neg x) to (minus const0 x) for LSX FP vectors, this is
wrong because -0.0 is not 0 - 0.0. This causes some Python tests to
fail when Python is built with LSX enabled.
Use the vbitrevi.{d/w} instructions to simply reverse the sign bit
instead. We are already doing this for LASX and now we can unify them
into simd.md.
gcc/ChangeLog:
* config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
incorrect expand.
* config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
(elmsgnbit): Likewise.
(neg<mode:FVEC>2): New define_insn.
* config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
are now instantiated in simd.md.
Diffstat (limited to 'contrib')
0 files changed, 0 insertions, 0 deletions