38 lines
1.4 KiB
Diff
38 lines
1.4 KiB
Diff
|
|
From 245c9ef2b8574fcaf277416d5986f46c0babbbec Mon Sep 17 00:00:00 2001
|
||
|
|
From: Li Wei <liwei@loongson.cn>
|
||
|
|
Date: Mon, 25 Dec 2023 11:20:23 +0800
|
||
|
|
Subject: [PATCH] LoongArch: Fixed bug in *bstrins_<mode>_for_ior_mask
|
||
|
|
template.
|
||
|
|
|
||
|
|
We found that using the latest compiled gcc will cause a miscompare error
|
||
|
|
when running spec2006 400.perlbench test with -flto turned on. After testing,
|
||
|
|
it was found that only the LoongArch architecture will report errors.
|
||
|
|
The first error commit was located through the git bisect command as
|
||
|
|
r14-3773-g5b857e87201335. Through debugging, it was found that the problem
|
||
|
|
was that the split condition of the *bstrins_<mode>_for_ior_mask template was
|
||
|
|
empty, which should actually be consistent with the insn condition.
|
||
|
|
|
||
|
|
gcc/ChangeLog:
|
||
|
|
|
||
|
|
* config/loongarch/loongarch.md: Adjust.
|
||
|
|
---
|
||
|
|
gcc/config/loongarch/loongarch.md | 2 +-
|
||
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
|
||
|
|
diff --git a/gcc/config/loongarch/loongarch.md b/gcc/config/loongarch/loongarch.md
|
||
|
|
index 7021105b241..2b0609f2f31 100644
|
||
|
|
--- a/gcc/config/loongarch/loongarch.md
|
||
|
|
+++ b/gcc/config/loongarch/loongarch.md
|
||
|
|
@@ -1489,7 +1489,7 @@
|
||
|
|
"loongarch_pre_reload_split () && \
|
||
|
|
loongarch_use_bstrins_for_ior_with_mask (<MODE>mode, operands)"
|
||
|
|
"#"
|
||
|
|
- ""
|
||
|
|
+ "&& true"
|
||
|
|
[(set (match_dup 0) (match_dup 1))
|
||
|
|
(set (zero_extract:GPR (match_dup 0) (match_dup 2) (match_dup 4))
|
||
|
|
(match_dup 3))]
|
||
|
|
--
|
||
|
|
2.33.0
|
||
|
|
|