diff options
author | Xi Ruoyao <xry111@xry111.site> | 2025-01-22 17:16:29 +0800 |
---|---|---|
committer | Xi Ruoyao <xry111@xry111.site> | 2025-01-23 11:38:17 +0800 |
commit | 9ddf4a6cc650360e620c8fd97f550bf833cc177a (patch) | |
tree | 2e195a462b3606b4b398c528e662ee358036e519 /gcc/config | |
parent | 06b78732f7ce424ab7d8c619f1ea90936fedff51 (diff) | |
download | gcc-9ddf4a6cc650360e620c8fd97f550bf833cc177a.zip gcc-9ddf4a6cc650360e620c8fd97f550bf833cc177a.tar.gz gcc-9ddf4a6cc650360e620c8fd97f550bf833cc177a.tar.bz2 |
LoongArch: Fix invalid subregs in xorsign [PR118501]
The test case added in r15-7073 now triggers an ICE, indicating we need
the same fix as AArch64.
gcc/ChangeLog:
PR target/118501
* config/loongarch/loongarch.md (@xorsign<mode>3): Use
force_lowpart_subreg.
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/loongarch/loongarch.md | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/loongarch/loongarch.md b/gcc/config/loongarch/loongarch.md index 1392325..701f31f 100644 --- a/gcc/config/loongarch/loongarch.md +++ b/gcc/config/loongarch/loongarch.md @@ -1347,8 +1347,8 @@ machine_mode lsx_mode = <MODE>mode == SFmode ? V4SFmode : V2DFmode; rtx tmp = gen_reg_rtx (lsx_mode); - rtx op1 = lowpart_subreg (lsx_mode, operands[1], <MODE>mode); - rtx op2 = lowpart_subreg (lsx_mode, operands[2], <MODE>mode); + rtx op1 = force_lowpart_subreg (lsx_mode, operands[1], <MODE>mode); + rtx op2 = force_lowpart_subreg (lsx_mode, operands[2], <MODE>mode); emit_insn (gen_xorsign3 (lsx_mode, tmp, op1, op2)); emit_move_insn (operands[0], lowpart_subreg (<MODE>mode, tmp, lsx_mode)); |