===================================================================
@@ -455,6 +455,30 @@
(eq_attr "memory" "!none")))
"atom-simple-0")
+(define_insn_reservation "atom_sseshuf" 1
+ (and (eq_attr "cpu" "atom")
+ (and (eq_attr "type" "sseshuf")
+ (eq_attr "memory" "none")))
+ "atom-simple-either")
+
+(define_insn_reservation "atom_sseshuf_mem" 1
+ (and (eq_attr "cpu" "atom")
+ (and (eq_attr "type" "sseshuf")
+ (eq_attr "memory" "!none")))
+ "atom-simple-either")
+
+(define_insn_reservation "atom_sseshuf1" 1
+ (and (eq_attr "cpu" "atom")
+ (and (eq_attr "type" "sseshuf1")
+ (eq_attr "memory" "none")))
+ "atom-simple-0")
+
+(define_insn_reservation "atom_sseshuf1_mem" 1
+ (and (eq_attr "cpu" "atom")
+ (and (eq_attr "type" "sseshuf1")
+ (eq_attr "memory" "!none")))
+ "atom-simple-0")
+
;; not pmad, not psad
(define_insn_reservation "atom_sseiadd" 1
(and (eq_attr "cpu" "atom")
This was not what I had in mind for changes in existing .md files.
Just change them in this way:
===================================================================
@@ -594,7 +594,7 @@
;; no memory simple
(define_insn_reservation "atom_sseadd" 5
(and (eq_attr "cpu" "atom")
- (and (eq_attr "type" "sseadd,sseadd1")
+ (and (eq_attr "type" "sseadd,sseshuf,sseadd1,sseshuf1")
(and (eq_attr "memory" "none")
(and (eq_attr "mode" "!V2DF")
(eq_attr "atom_unit" "!complex")))))
@@ -603,7 +603,7 @@
;; memory simple
(define_insn_reservation "atom_sseadd_mem" 5
(and (eq_attr "cpu" "atom")
- (and (eq_attr "type" "sseadd,sseadd1")
+ (and (eq_attr "type" "sseadd,sseshuf,sseadd1,sseshuf1")
(and (eq_attr "memory" "!none")
(and (eq_attr "mode" "!V2DF")
(eq_attr "atom_unit" "!complex")))))
@@ -612,7 +612,7 @@
;; maxps, minps, *pd, hadd, hsub
(define_insn_reservation "atom_sseadd_3" 8
(and (eq_attr "cpu" "atom")
- (and (eq_attr "type" "sseadd,sseadd1")
+ (and (eq_attr "type" "sseadd,sseshuf,sseadd1,sseshuf1")
(ior (eq_attr "mode" "V2DF") (eq_attr "atom_unit" "complex"))))
"atom-complex, atom-all-eu*7")