aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorLi Wei <liwei@loongson.cn>2023-12-25 11:20:23 +0800
committerLulu Cheng <chenglulu@loongson.cn>2023-12-27 14:53:50 +0800
commit245c9ef2b8574fcaf277416d5986f46c0babbbec (patch)
treea4f3420992d2415221afb3159e030dd4b1d60be4 /gcc
parentd92d26ff366c5ceb4795d1ad678847c1b3d88e63 (diff)
downloadgcc-245c9ef2b8574fcaf277416d5986f46c0babbbec.zip
gcc-245c9ef2b8574fcaf277416d5986f46c0babbbec.tar.gz
gcc-245c9ef2b8574fcaf277416d5986f46c0babbbec.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/loongarch/loongarch.md2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/loongarch/loongarch.md b/gcc/config/loongarch/loongarch.md
index 7021105..2b0609f 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))]