diff options
author | Li Wei <liwei@loongson.cn> | 2023-12-25 11:20:23 +0800 |
---|---|---|
committer | Lulu Cheng <chenglulu@loongson.cn> | 2023-12-27 14:53:50 +0800 |
commit | 245c9ef2b8574fcaf277416d5986f46c0babbbec (patch) | |
tree | a4f3420992d2415221afb3159e030dd4b1d60be4 | |
parent | d92d26ff366c5ceb4795d1ad678847c1b3d88e63 (diff) | |
download | gcc-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.
-rw-r--r-- | gcc/config/loongarch/loongarch.md | 2 |
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))] |