]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
target/119010 - add missing integer store reservations for znver4 and znver5
authorRichard Biener <rguenther@suse.de>
Tue, 25 Mar 2025 14:40:22 +0000 (15:40 +0100)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 26 Mar 2025 07:23:18 +0000 (08:23 +0100)
The imov and imovx classified stores miss reservations in the znver4/5
pipeline description.  The following adds them.

PR target/119010
* config/i386/zn4zn5.md (znver4_imov_double_store,
znver5_imov_double_store, znver4_imov_store, znver5_imov_store):
New reservations for integer stores.

gcc/config/i386/zn4zn5.md

index ae188a1201e50f473407484cfd1fbb029b6b2485..bc7712db6288d03b0228a6f2ee34c0be852540b2 100644 (file)
                                   (eq_attr "memory" "load"))))
                         "znver4-double,znver5-load,znver5-ieu")
 
+(define_insn_reservation "znver4_imov_double_store" 5
+                       (and (eq_attr "cpu" "znver4")
+                                (and (eq_attr "znver1_decode" "double")
+                                 (and (eq_attr "type" "imov")
+                                  (eq_attr "memory" "store"))))
+                        "znver4-double,znver4-store,znver4-ieu")
+
+(define_insn_reservation "znver5_imov_double_store" 5
+                       (and (eq_attr "cpu" "znver5")
+                                (and (eq_attr "znver1_decode" "double")
+                                 (and (eq_attr "type" "imov")
+                                  (eq_attr "memory" "store"))))
+                        "znver4-double,znver5-store,znver5-ieu")
+
 ;; imov, imovx
 (define_insn_reservation "znver4_imov" 1
             (and (eq_attr "cpu" "znver4")
                                  (eq_attr "memory" "load")))
                         "znver4-direct,znver5-load,znver5-ieu")
 
+(define_insn_reservation "znver4_imov_store" 5
+                       (and (eq_attr "cpu" "znver4")
+                                (and (eq_attr "type" "imov,imovx")
+                                 (eq_attr "memory" "store")))
+                        "znver4-direct,znver4-store,znver4-ieu")
+
+(define_insn_reservation "znver5_imov_store" 5
+                       (and (eq_attr "cpu" "znver5")
+                                (and (eq_attr "type" "imov,imovx")
+                                 (eq_attr "memory" "store")))
+                        "znver4-direct,znver5-store,znver5-ieu")
+
 ;; Push Instruction
 (define_insn_reservation "znver4_push" 1
                        (and (eq_attr "cpu" "znver4")