sse.md (FMAMODEM): New mode iterator.

* config/i386/sse.md (FMAMODEM): New mode iterator.
	(fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
	mode iterator. Do not use TARGET_SSE_MATH in insn constraint.

From-SVN: r195896
This commit is contained in:
Uros Bizjak 2013-02-08 19:29:58 +01:00
parent 2480f2ca88
commit 19c5f6e600
3 changed files with 38 additions and 28 deletions

View File

@ -1,3 +1,9 @@
2013-02-08 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (FMAMODEM): New mode iterator.
(fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
2013-02-08 Uros Bizjak <ubizjak@gmail.com>
* config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only

View File

@ -2037,42 +2037,46 @@
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define_mode_iterator FMAMODE [SF DF V4SF V2DF V8SF V4DF])
;; The standard names for scalar FMA are only available with SSE math enabled.
(define_mode_iterator FMAMODEM [(SF "TARGET_SSE_MATH")
(DF "TARGET_SSE_MATH")
V4SF V2DF V8SF V4DF])
;; The standard names for fma is only available with SSE math enabled.
(define_expand "fma<mode>4"
[(set (match_operand:FMAMODE 0 "register_operand")
(fma:FMAMODE
(match_operand:FMAMODE 1 "nonimmediate_operand")
(match_operand:FMAMODE 2 "nonimmediate_operand")
(match_operand:FMAMODE 3 "nonimmediate_operand")))]
"(TARGET_FMA || TARGET_FMA4) && TARGET_SSE_MATH")
[(set (match_operand:FMAMODEM 0 "register_operand")
(fma:FMAMODEM
(match_operand:FMAMODEM 1 "nonimmediate_operand")
(match_operand:FMAMODEM 2 "nonimmediate_operand")
(match_operand:FMAMODEM 3 "nonimmediate_operand")))]
"TARGET_FMA || TARGET_FMA4")
(define_expand "fms<mode>4"
[(set (match_operand:FMAMODE 0 "register_operand")
(fma:FMAMODE
(match_operand:FMAMODE 1 "nonimmediate_operand")
(match_operand:FMAMODE 2 "nonimmediate_operand")
(neg:FMAMODE (match_operand:FMAMODE 3 "nonimmediate_operand"))))]
"(TARGET_FMA || TARGET_FMA4) && TARGET_SSE_MATH")
[(set (match_operand:FMAMODEM 0 "register_operand")
(fma:FMAMODEM
(match_operand:FMAMODEM 1 "nonimmediate_operand")
(match_operand:FMAMODEM 2 "nonimmediate_operand")
(neg:FMAMODEM (match_operand:FMAMODEM 3 "nonimmediate_operand"))))]
"TARGET_FMA || TARGET_FMA4")
(define_expand "fnma<mode>4"
[(set (match_operand:FMAMODE 0 "register_operand")
(fma:FMAMODE
(neg:FMAMODE (match_operand:FMAMODE 1 "nonimmediate_operand"))
(match_operand:FMAMODE 2 "nonimmediate_operand")
(match_operand:FMAMODE 3 "nonimmediate_operand")))]
"(TARGET_FMA || TARGET_FMA4) && TARGET_SSE_MATH")
[(set (match_operand:FMAMODEM 0 "register_operand")
(fma:FMAMODEM
(neg:FMAMODEM (match_operand:FMAMODEM 1 "nonimmediate_operand"))
(match_operand:FMAMODEM 2 "nonimmediate_operand")
(match_operand:FMAMODEM 3 "nonimmediate_operand")))]
"TARGET_FMA || TARGET_FMA4")
(define_expand "fnms<mode>4"
[(set (match_operand:FMAMODE 0 "register_operand")
(fma:FMAMODE
(neg:FMAMODE (match_operand:FMAMODE 1 "nonimmediate_operand"))
(match_operand:FMAMODE 2 "nonimmediate_operand")
(neg:FMAMODE (match_operand:FMAMODE 3 "nonimmediate_operand"))))]
"(TARGET_FMA || TARGET_FMA4) && TARGET_SSE_MATH")
[(set (match_operand:FMAMODEM 0 "register_operand")
(fma:FMAMODEM
(neg:FMAMODEM (match_operand:FMAMODEM 1 "nonimmediate_operand"))
(match_operand:FMAMODEM 2 "nonimmediate_operand")
(neg:FMAMODEM (match_operand:FMAMODEM 3 "nonimmediate_operand"))))]
"TARGET_FMA || TARGET_FMA4")
;; The builtins for intrinsics are not constrained by SSE math enabled.
(define_mode_iterator FMAMODE [SF DF V4SF V2DF V8SF V4DF])
;; The builtin for intrinsics is not constrained by SSE math enabled.
(define_expand "fma4i_fmadd_<mode>"
[(set (match_operand:FMAMODE 0 "register_operand")
(fma:FMAMODE

View File

@ -1,4 +1,4 @@
2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
2013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
* 20101011-1.c: Add __MICROBLAZE__ exception to set DO_TEST 0