}
}
[(set_attr "isa" "*,*,*,*,*,*,apx_ndd,apx_ndd,apx_ndd")
- (set (attr "preferred_for_speed")
- (cond [(eq_attr "alternative" "7,8")
- (symbol_ref "TARGET_ENABLE_NDD_MEM")]
- (symbol_ref "true")))
(set (attr "type")
(cond [(eq_attr "alternative" "5")
(const_string "lea")
;; Potential partial reg stall on alternatives 3 and 4.
(set (attr "preferred_for_speed")
(cond [(eq_attr "alternative" "3,4")
- (symbol_ref "!TARGET_PARTIAL_REG_STALL")]
+ (symbol_ref "!TARGET_PARTIAL_REG_STALL")
+ (eq_attr "alternative" "7,8")
+ (symbol_ref "TARGET_ENABLE_NDD_MEM")]
(symbol_ref "true")))])
;; Alternative 1 is needed to work around LRA limitation, see PR82524.
#"
[(set_attr "type" "alu,alu,alu,alu,alu,alu,msklog")
(set_attr "isa" "*,*,*,apx_ndd,apx_ndd,apx_ndd,*")
- (set (attr "preferred_for_speed")
- (cond [(eq_attr "alternative" "4,5")
- (symbol_ref "TARGET_ENABLE_NDD_MEM")]
- (symbol_ref "true")))
(set_attr "has_nf" "1")
(set (attr "mode")
(cond [(eq_attr "alternative" "2")
;; Potential partial reg stall on alternative 2.
(set (attr "preferred_for_speed")
(cond [(eq_attr "alternative" "2")
- (symbol_ref "!TARGET_PARTIAL_REG_STALL")]
+ (symbol_ref "!TARGET_PARTIAL_REG_STALL")
+ (eq_attr "alternative" "4,5")
+ (symbol_ref "TARGET_ENABLE_NDD_MEM")]
(symbol_ref "true")))])
;; Alternative 1 is needed to work around LRA limitation, see PR82524.
}
[(set_attr "type" "alu")
(set_attr "isa" "*,*,*,apx_ndd,apx_ndd,apx_ndd")
- (set (attr "preferred_for_speed")
- (cond [(eq_attr "alternative" "4,5")
- (symbol_ref "TARGET_ENABLE_NDD_MEM")]
- (symbol_ref "true")))
(set (attr "mode")
(cond [(eq_attr "alternative" "3,4,5")
(const_string "QI")
;; Potential partial reg stall on alternative 2.
(set (attr "preferred_for_speed")
(cond [(eq_attr "alternative" "2")
- (symbol_ref "!TARGET_PARTIAL_REG_STALL")]
+ (symbol_ref "!TARGET_PARTIAL_REG_STALL")
+ (eq_attr "alternative" "4,5")
+ (symbol_ref "TARGET_ENABLE_NDD_MEM")]
(symbol_ref "true")))])
(define_insn "*and<mode>_2"
<nf_prefix><logic>{b}\t{%2, %1, %0|%0, %1, %2}
#"
[(set_attr "isa" "*,*,*,apx_ndd,apx_ndd,apx_ndd,avx512f")
- (set (attr "preferred_for_speed")
- (cond [(eq_attr "alternative" "4,5")
- (symbol_ref "TARGET_ENABLE_NDD_MEM")]
- (symbol_ref "true")))
(set_attr "type" "alu,alu,alu,alu,alu,alu,msklog")
(set_attr "has_nf" "1")
(set (attr "mode")
;; Potential partial reg stall on alternative 2.
(set (attr "preferred_for_speed")
(cond [(eq_attr "alternative" "2")
- (symbol_ref "!TARGET_PARTIAL_REG_STALL")]
+ (symbol_ref "!TARGET_PARTIAL_REG_STALL")
+ (eq_attr "alternative" "4,5")
+ (symbol_ref "TARGET_ENABLE_NDD_MEM")]
(symbol_ref "true")))])
(define_insn_and_split "*notxorqi_1"
}
}
[(set_attr "isa" "*,*,*,apx_ndd,apx_ndd,apx_ndd,avx512f")
- (set (attr "preferred_for_speed")
- (cond [(eq_attr "alternative" "4,5")
- (symbol_ref "TARGET_ENABLE_NDD_MEM")]
- (symbol_ref "true")))
(set_attr "type" "alu,alu,alu,alu,alu,alu,msklog")
(set (attr "mode")
(cond [(eq_attr "alternative" "2")
;; Potential partial reg stall on alternative 2.
(set (attr "preferred_for_speed")
(cond [(eq_attr "alternative" "2")
- (symbol_ref "!TARGET_PARTIAL_REG_STALL")]
+ (symbol_ref "!TARGET_PARTIAL_REG_STALL")
+ (eq_attr "alternative" "4,5")
+ (symbol_ref "TARGET_ENABLE_NDD_MEM")]
(symbol_ref "true")))])
;; convert (sign_extend:WIDE (any_logic:NARROW (memory, immediate)))
not{b}\t{%1, %0|%0, %1}
#"
[(set_attr "isa" "*,*,apx_ndd,apx_ndd,avx512f")
- (set (attr "preferred_for_speed")
- (cond [(eq_attr "alternative" "3")
- (symbol_ref "TARGET_ENABLE_NDD_MEM")]
- (symbol_ref "true")))
(set_attr "type" "negnot,negnot,negnot,negnot,msklog")
(set (attr "mode")
(cond [(eq_attr "alternative" "1")
;; Potential partial reg stall on alternative 1.
(set (attr "preferred_for_speed")
(cond [(eq_attr "alternative" "1")
- (symbol_ref "!TARGET_PARTIAL_REG_STALL")]
+ (symbol_ref "!TARGET_PARTIAL_REG_STALL")
+ (eq_attr "alternative" "3")
+ (symbol_ref "TARGET_ENABLE_NDD_MEM")]
(symbol_ref "true")))])
;; Alternative 1 is needed to work around LRA limitation, see PR82524.
}
}
[(set_attr "isa" "*,*,*,avx512dq,apx_ndd,apx_ndd")
- (set (attr "preferred_for_speed")
- (cond [(eq_attr "alternative" "5")
- (symbol_ref "TARGET_ENABLE_NDD_MEM")]
- (symbol_ref "true")))
(set (attr "type")
(cond [(eq_attr "alternative" "2")
(const_string "lea")
(const_string "*")))
(set_attr "has_nf" "1")
(set_attr "mode" "QI,SI,SI,QI,QI,QI")
- ;; Potential partial reg stall on alternative 1.
+ ;; Potential partial reg stall on alternatives 1, 4 and 5.
(set (attr "preferred_for_speed")
- (cond [(eq_attr "alternative" "1,4,5")
+ (cond [(eq_attr "alternative" "5")
+ (symbol_ref "TARGET_ENABLE_NDD_MEM && !TARGET_PARTIAL_REG_STALL")
+ (eq_attr "alternative" "1,4")
(symbol_ref "!TARGET_PARTIAL_REG_STALL")]
(symbol_ref "true")))])