(match_operand:FMA4MODEF4 1 "register_operand" "%x,x")
(match_operand:FMA4MODEF4 2 "nonimmediate_operand" "x,m"))
(match_operand:FMA4MODEF4 3 "nonimmediate_operand" "xm,x")))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmadd<fma4modesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:FMA4MODEF4 1 "register_operand" "%x,x")
(match_operand:FMA4MODEF4 2 "nonimmediate_operand" "x,m"))
(match_operand:FMA4MODEF4 3 "nonimmediate_operand" "xm,x")))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsub<fma4modesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(mult:FMA4MODEF4
(match_operand:FMA4MODEF4 1 "register_operand" "%x,x")
(match_operand:FMA4MODEF4 2 "nonimmediate_operand" "x,m"))))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmadd<fma4modesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:FMA4MODEF4 1 "register_operand" "%x,x"))
(match_operand:FMA4MODEF4 2 "nonimmediate_operand" "x,m"))
(match_operand:FMA4MODEF4 3 "nonimmediate_operand" "xm,x")))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmsub<fma4modesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF4 1 "register_operand" "%x,x")
(match_operand:SSEMODEF4 2 "nonimmediate_operand" "x,m"))
(match_operand:SSEMODEF4 3 "nonimmediate_operand" "xm,x")))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmadd<ssemodesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF2P 3 "nonimmediate_operand" "xm,x"))
(match_dup 0)
(const_int 1)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmadd<ssemodesuffixf2s>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF4 1 "register_operand" "%x,x")
(match_operand:SSEMODEF4 2 "nonimmediate_operand" "x,m"))
(match_operand:SSEMODEF4 3 "nonimmediate_operand" "xm,x")))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsub<ssemodesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF2P 3 "nonimmediate_operand" "xm,x"))
(match_dup 0)
(const_int 1)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsub<ssemodesuffixf2s>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(mult:SSEMODEF4
(match_operand:SSEMODEF4 1 "register_operand" "%x,x")
(match_operand:SSEMODEF4 2 "nonimmediate_operand" "x,m"))))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmadd<ssemodesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF2P 2 "nonimmediate_operand" "x,m")))
(match_dup 0)
(const_int 1)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmadd<ssemodesuffixf2s>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF4 1 "register_operand" "%x,x"))
(match_operand:SSEMODEF4 2 "nonimmediate_operand" "x,m"))
(match_operand:SSEMODEF4 3 "nonimmediate_operand" "xm,x")))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmsub<ssemodesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF2P 3 "nonimmediate_operand" "xm,x"))
(match_dup 0)
(const_int 1)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmsub<ssemodesuffixf2s>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:FMA4MODEF4 2 "nonimmediate_operand" "x,m"))
(match_operand:FMA4MODEF4 3 "nonimmediate_operand" "xm,x"))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmadd<fma4modesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:FMA4MODEF4 2 "nonimmediate_operand" "x,m"))
(match_operand:FMA4MODEF4 3 "nonimmediate_operand" "xm,x"))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsub<fma4modesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:FMA4MODEF4 1 "register_operand" "%x,x")
(match_operand:FMA4MODEF4 2 "nonimmediate_operand" "x,m")))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmadd<fma4modesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:FMA4MODEF4 2 "nonimmediate_operand" "x,m"))
(match_operand:FMA4MODEF4 3 "nonimmediate_operand" "xm,x"))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmsub<fma4modesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF2P 2 "nonimmediate_operand" "x,m"))
(match_operand:SSEMODEF2P 3 "nonimmediate_operand" "xm,x"))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmadd<ssemodesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF2P 2 "nonimmediate_operand" "x,m"))
(match_operand:SSEMODEF2P 3 "nonimmediate_operand" "xm,x"))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsub<ssemodesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF2P 1 "register_operand" "%x,x")
(match_operand:SSEMODEF2P 2 "nonimmediate_operand" "x,m")))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmadd<ssemodesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_operand:SSEMODEF2P 2 "nonimmediate_operand" "x,m"))
(match_operand:SSEMODEF2P 3 "nonimmediate_operand" "xm,x"))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmsub<ssemodesuffixf4>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<MODE>")])
(match_dup 0)
(const_int 1))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmadd<ssemodesuffixf2s>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<ssescalarmode>")])
(match_dup 0)
(const_int 1))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsub<ssemodesuffixf2s>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<ssescalarmode>")])
(match_dup 0)
(const_int 1))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmadd<ssemodesuffixf2s>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<ssescalarmode>")])
(match_dup 0)
(const_int 1))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfnmsub<ssemodesuffixf2s>\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "<ssescalarmode>")])
(match_dup 2))
(match_dup 3))
(const_int 170)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmaddsubps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V8SF")])
(match_dup 2))
(match_dup 3))
(const_int 10)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmaddsubpd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V4DF")])
(match_dup 2))
(match_dup 3))
(const_int 10)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmaddsubps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V4SF")])
(match_dup 2))
(match_dup 3))
(const_int 2)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmaddsubpd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V2DF")])
(match_dup 2))
(match_dup 3))
(const_int 85)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsubaddps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V8SF")])
(match_dup 2))
(match_dup 3))
(const_int 5)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsubaddpd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V4DF")])
(match_dup 2))
(match_dup 3))
(const_int 5)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsubaddps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V4SF")])
(match_dup 2))
(match_dup 3))
(const_int 1)))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsubaddpd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V2DF")])
(match_dup 3))
(const_int 170))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmaddsubps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V8SF")])
(match_dup 3))
(const_int 10))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmaddsubpd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V4DF")])
(match_dup 3))
(const_int 10))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmaddsubps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V4SF")])
(match_dup 3))
(const_int 2))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmaddsubpd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V2DF")])
(match_dup 3))
(const_int 85))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsubaddps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V8SF")])
(match_dup 3))
(const_int 5))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsubaddpd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V4DF")])
(match_dup 3))
(const_int 5))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsubaddps\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V4SF")])
(match_dup 3))
(const_int 1))]
UNSPEC_FMA4_INTRINSIC))]
- "TARGET_FMA4 && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
+ "TARGET_FMA4 && TARGET_FUSED_MADD
+ && !(MEM_P (operands[2]) && MEM_P (operands[3]))"
"vfmsubaddpd\t{%3, %2, %1, %0|%0, %1, %2, %3}"
[(set_attr "type" "ssemuladd")
(set_attr "mode" "V2DF")])