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