Commit df0e1979 by H.J. Lu Committed by H.J. Lu

i386: Emulate MMX mmx_andnot<mode>3 with SSE

Emulate MMX mmx_andnot<mode>3 with SSE.  Only SSE register source operand
is allowed.

	PR target/89021
	* config/i386/mmx.md (mmx_andnot<mode>3): Also allow
	TARGET_MMX_WITH_SSE.  Add SSE support.

From-SVN: r271223
parent fff6304f
2019-05-15 H.J. Lu <hongjiu.lu@intel.com> 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
PR target/89021 PR target/89021
* config/i386/mmx.md (mmx_andnot<mode>3): Also allow
TARGET_MMX_WITH_SSE. Add SSE support.
2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
PR target/89021
* config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
TARGET_MMX_WITH_SSE. TARGET_MMX_WITH_SSE.
(any_logic:<code><mode>3): New. (any_logic:<code><mode>3): New.
......
...@@ -1074,14 +1074,18 @@ ...@@ -1074,14 +1074,18 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define_insn "mmx_andnot<mode>3" (define_insn "mmx_andnot<mode>3"
[(set (match_operand:MMXMODEI 0 "register_operand" "=y") [(set (match_operand:MMXMODEI 0 "register_operand" "=y,x,Yv")
(and:MMXMODEI (and:MMXMODEI
(not:MMXMODEI (match_operand:MMXMODEI 1 "register_operand" "0")) (not:MMXMODEI (match_operand:MMXMODEI 1 "register_operand" "0,0,Yv"))
(match_operand:MMXMODEI 2 "nonimmediate_operand" "ym")))] (match_operand:MMXMODEI 2 "register_mmxmem_operand" "ym,x,Yv")))]
"TARGET_MMX" "TARGET_MMX || TARGET_MMX_WITH_SSE"
"pandn\t{%2, %0|%0, %2}" "@
[(set_attr "type" "mmxadd") pandn\t{%2, %0|%0, %2}
(set_attr "mode" "DI")]) pandn\t{%2, %0|%0, %2}
vpandn\t{%2, %1, %0|%0, %1, %2}"
[(set_attr "mmx_isa" "native,x64_noavx,x64_avx")
(set_attr "type" "mmxadd,sselog,sselog")
(set_attr "mode" "DI,TI,TI")])
(define_expand "mmx_<code><mode>3" (define_expand "mmx_<code><mode>3"
[(set (match_operand:MMXMODEI 0 "register_operand") [(set (match_operand:MMXMODEI 0 "register_operand")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment