[Bugfix] Fix bugs in cmlt
This commit is contained in:
parent
cec495d5bb
commit
837e831430
50
0323-Bugfix-replace-tmp-pattern-split.patch
Normal file
50
0323-Bugfix-replace-tmp-pattern-split.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From d10807504a7f4e58a7dd1fa245d0ccf16227d222 Mon Sep 17 00:00:00 2001
|
||||
From: Chernonog Viacheslav <chernonog.vyacheslav@huawei.com>
|
||||
Date: Wed, 4 Dec 2024 20:07:23 +0800
|
||||
Subject: [PATCH] [Bugfix] replace tmp pattern split
|
||||
|
||||
move split before reload
|
||||
change split tmp pattern to 3 instructions
|
||||
---
|
||||
gcc/config/aarch64/aarch64-simd.md | 19 +++++++++++++------
|
||||
1 file changed, 13 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
|
||||
index 04592fc90..fb5e355d0 100644
|
||||
--- a/gcc/config/aarch64/aarch64-simd.md
|
||||
+++ b/gcc/config/aarch64/aarch64-simd.md
|
||||
@@ -6566,18 +6566,25 @@
|
||||
(match_operand:VDQHSD 1 "register_operand" "w")
|
||||
(match_operand:VDQHSD 2 "half_size_minus_one_operand"))
|
||||
(match_operand:VDQHSD 3 "cmlt_arith_mask_operand")))]
|
||||
- "TARGET_SIMD && flag_cmlt_arith"
|
||||
+ "TARGET_SIMD && !reload_completed && flag_cmlt_arith"
|
||||
"#"
|
||||
- "&& reload_completed"
|
||||
- [(set (match_operand:<V_INT_EQUIV> 0 "register_operand")
|
||||
+ "&& true"
|
||||
+ [(set (match_operand:<V_INT_EQUIV> 0 "register_operand" "=w")
|
||||
(lshiftrt:<V_INT_EQUIV>
|
||||
(match_operand:VDQHSD 1 "register_operand")
|
||||
(match_operand:VDQHSD 2 "half_size_minus_one_operand")))
|
||||
+ (set (match_operand:<V_INT_EQUIV> 4 "register_operand" "w")
|
||||
+ (match_operand:VDQHSD 3 "cmlt_arith_mask_operand"))
|
||||
(set (match_dup 0)
|
||||
(and:<V_INT_EQUIV>
|
||||
- (match_dup 0)
|
||||
- (match_operand:VDQHSD 3 "cmlt_arith_mask_operand")))]
|
||||
- ""
|
||||
+ (match_dup 4)
|
||||
+ (match_dup 0)))]
|
||||
+ {
|
||||
+ if (can_create_pseudo_p ())
|
||||
+ operands[4] = gen_reg_rtx (<V_INT_EQUIV>mode);
|
||||
+ else
|
||||
+ FAIL;
|
||||
+ }
|
||||
[(set_attr "type" "neon_compare_zero")]
|
||||
)
|
||||
|
||||
--
|
||||
2.33.0
|
||||
|
||||
10
gcc.spec
10
gcc.spec
@ -2,7 +2,7 @@
|
||||
%global gcc_major 12
|
||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||
# %%{release}, append them after %%{gcc_release} on Release: line.
|
||||
%global gcc_release 57
|
||||
%global gcc_release 58
|
||||
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
%global _performance_build 1
|
||||
@ -428,6 +428,7 @@ Patch319: 0319-CSPGO-fix-bugs-when-using-cspgo.patch
|
||||
Patch320: 0320-if-split-fix-bugs.patch
|
||||
Patch321: 0321-Struct-reorg-Avoid-doing-struct-split-and-reorder_fi.patch
|
||||
Patch322: 0322-Bugfix-Create-POINTER_PLUS_EXPR-for-REFERENCE_TYPE.patch
|
||||
Patch323: 0323-Bugfix-replace-tmp-pattern-split.patch
|
||||
|
||||
# Part 1001-1999
|
||||
%ifarch sw_64
|
||||
@ -1536,6 +1537,7 @@ not stable, so plugins must be rebuilt any time GCC is updated.
|
||||
%patch -P320 -p1
|
||||
%patch -P321 -p1
|
||||
%patch -P322 -p1
|
||||
%patch -P323 -p1
|
||||
|
||||
%ifarch sw_64
|
||||
%patch -P1001 -p1
|
||||
@ -4158,6 +4160,12 @@ end
|
||||
%doc rpm.doc/changelogs/libcc1/ChangeLog*
|
||||
|
||||
%changelog
|
||||
* Tue Dec 10 2024 huzife <634763349@qq.com> - 12.3.1-58
|
||||
- Type:Bugfix
|
||||
- ID:NA
|
||||
- SUG:NA
|
||||
- DESC: Fix bugs in cmlt, replace tmp pattern split.
|
||||
|
||||
* Mon Dec 09 2024 liyancheng <412998149@qq.com> - 12.3.1-57
|
||||
- Type:Bugfix
|
||||
- ID:NA
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user