]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
target/119010 - add znver{4,5}_insn_both to resolve missing reservations
authorRichard Biener <rguenther@suse.de>
Thu, 27 Mar 2025 07:40:32 +0000 (08:40 +0100)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 27 Mar 2025 13:31:55 +0000 (14:31 +0100)
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.

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

index 5a3960e9d010f542872c3f6342f445d99df70c12..75e3102021502390bfb4bd7a66c1e445b244c978 100644 (file)
                                   (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")