I still was seeing
;; 0--> b 0: i 101 {[sp-0x3c]=[sp-0x3c]+0x1;clobber flags;}:nothing
so the following adds a standard alu insn reservation mimicing that
from the znver.md description allowing both load and store.
Bootstrap and regtest running on x86_64-unknown-linux-gnu, OK?
PR target/119010
* config/i386/zn4zn5.md (znver4_insn_both, znver5_insn_both):
New reservation for ALU ops with load and store.
---
gcc/config/i386/zn4zn5.md | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/gcc/config/i386/zn4zn5.md b/gcc/config/i386/zn4zn5.md
index 5a3960e9d01..75e31020215 100644
--- a/gcc/config/i386/zn4zn5.md
+++ b/gcc/config/i386/zn4zn5.md
@@ -421,6 +421,18 @@
(eq_attr "memory" "store")))
"znver4-direct,znver4-ieu,znver5-store")
+(define_insn_reservation "znver4_insn_both" 5
+ (and (eq_attr "cpu" "znver4")
+ (and (eq_attr "type"
"alu,alu1,negnot,rotate1,ishift1,test,incdec,icmp")
+ (eq_attr "memory" "both")))
+ "znver4-direct,znver4-load,znver4-ieu,znver4-store")
+
+(define_insn_reservation "znver5_insn_both" 5
+ (and (eq_attr "cpu" "znver5")
+ (and (eq_attr "type"
"alu,alu1,negnot,rotate1,ishift1,test,incdec,icmp")
+ (eq_attr "memory" "both")))
+ "znver4-direct,znver5-load,znver4-ieu,znver5-store")
+
(define_insn_reservation "znver4_insn2_store" 1
(and (eq_attr "cpu" "znver4")
(and (eq_attr "type" "icmov,setcc")
--
2.43.0