Commit 94237c92 by H.J. Lu Committed by H.J. Lu

i386.md (plogic): New.

2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.md (plogic): New.
	(plogicprefix): Likewise.

	* config/i386/mmx.md (mmx_<code><mode>3): New.
	(mmx_and<mode>3): Removed.
	(mmx_ior<mode>3): Likewise.
	(mmx_xor<mode>3): Likewise.

	* config/i386/sse.md (<code><mode>3): New.
	(*<code><mode>3): Likewise.
	(*<code><mode>3): Likewise.
	(<code><mode>3): Likewise.
	(*sse_<code><mode>3): Likewise.
	(*sse2_<code><mode>3): Likewise.
	(<code>tf3): Likewise.
	(*<code>tf3): Likewise.
	(and<mode>3): Likewise.
	(*and<mode>3): Likewise.
	(ior<mode>3): Removed.
	(*ior<mode>3): Likewise.
	(xor<mode>3): Likewise.
	(*xor<mode>3): Likewise.
	(*and<mode>3): Likewise.
	(*ior<mode>3): Likewise.
	(*xor<mode>3): Likewise.
	(and<mode>3): Likewise.
	(*sse_and<mode>3): Likewise.
	(*sse2_and<mode>3): Likewise.
	(andtf3): Likewise.
	(*andtf3): Likewise.
	(ior<mode>3): Likewise.
	(*sse_ior<mode>3): Likewise.
	(*sse2_ior<mode>3): Likewise.
	(iortf3): Likewise.
	(*iortf3): Likewise.
	(xor<mode>3): Likewise.
	(*sse_xor<mode>3): Likewise.
	(*sse2_xor<mode>3): Likewise.
	(xortf3): Likewise.
	(*xortf3): Likewise.

From-SVN: r133837
parent b7814a18
2008-04-02 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.md (plogic): New.
(plogicprefix): Likewise.
* config/i386/mmx.md (mmx_<code><mode>3): New.
(mmx_and<mode>3): Removed.
(mmx_ior<mode>3): Likewise.
(mmx_xor<mode>3): Likewise.
* config/i386/sse.md (<code><mode>3): New.
(*<code><mode>3): Likewise.
(*<code><mode>3): Likewise.
(<code><mode>3): Likewise.
(*sse_<code><mode>3): Likewise.
(*sse2_<code><mode>3): Likewise.
(<code>tf3): Likewise.
(*<code>tf3): Likewise.
(and<mode>3): Likewise.
(*and<mode>3): Likewise.
(ior<mode>3): Removed.
(*ior<mode>3): Likewise.
(xor<mode>3): Likewise.
(*xor<mode>3): Likewise.
(*and<mode>3): Likewise.
(*ior<mode>3): Likewise.
(*xor<mode>3): Likewise.
(and<mode>3): Likewise.
(*sse_and<mode>3): Likewise.
(*sse2_and<mode>3): Likewise.
(andtf3): Likewise.
(*andtf3): Likewise.
(ior<mode>3): Likewise.
(*sse_ior<mode>3): Likewise.
(*sse2_ior<mode>3): Likewise.
(iortf3): Likewise.
(*iortf3): Likewise.
(xor<mode>3): Likewise.
(*sse_xor<mode>3): Likewise.
(*sse2_xor<mode>3): Likewise.
(xortf3): Likewise.
(*xortf3): Likewise.
2008-04-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/14495
......
......@@ -540,6 +540,12 @@
(define_code_attr maxminiprefix [(smax "maxs") (smin "mins") (umax "maxu") (umin "minu")])
(define_code_attr maxminfprefix [(smax "max") (smin "min")])
;; Mapping of parallel logic operators
(define_code_iterator plogic [and ior xor])
;; Base name for insn mnemonic.
(define_code_attr plogicprefix [(and "and") (ior "or") (xor "xor")])
;; All single word integer modes.
(define_mode_iterator SWI [QI HI SI (DI "TARGET_64BIT")])
......
......@@ -791,16 +791,6 @@
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define_insn "mmx_and<mode>3"
[(set (match_operand:MMXMODEI 0 "register_operand" "=y")
(and:MMXMODEI
(match_operand:MMXMODEI 1 "nonimmediate_operand" "%0")
(match_operand:MMXMODEI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX && ix86_binary_operator_ok (AND, <MODE>mode, operands)"
"pand\t{%2, %0|%0, %2}"
[(set_attr "type" "mmxadd")
(set_attr "mode" "DI")])
(define_insn "mmx_nand<mode>3"
[(set (match_operand:MMXMODEI 0 "register_operand" "=y")
(and:MMXMODEI
......@@ -811,27 +801,16 @@
[(set_attr "type" "mmxadd")
(set_attr "mode" "DI")])
(define_insn "mmx_ior<mode>3"
(define_insn "mmx_<code><mode>3"
[(set (match_operand:MMXMODEI 0 "register_operand" "=y")
(ior:MMXMODEI
(plogic:MMXMODEI
(match_operand:MMXMODEI 1 "nonimmediate_operand" "%0")
(match_operand:MMXMODEI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX && ix86_binary_operator_ok (IOR, <MODE>mode, operands)"
"por\t{%2, %0|%0, %2}"
"TARGET_MMX && ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
"p<plogicprefix>\t{%2, %0|%0, %2}"
[(set_attr "type" "mmxadd")
(set_attr "mode" "DI")])
(define_insn "mmx_xor<mode>3"
[(set (match_operand:MMXMODEI 0 "register_operand" "=y")
(xor:MMXMODEI
(match_operand:MMXMODEI 1 "nonimmediate_operand" "%0")
(match_operand:MMXMODEI 2 "nonimmediate_operand" "ym")))]
"TARGET_MMX && ix86_binary_operator_ok (XOR, <MODE>mode, operands)"
"pxor\t{%2, %0|%0, %2}"
[(set_attr "type" "mmxadd")
(set_attr "mode" "DI")
(set_attr "memory" "none")])
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Parallel integral element swizzling
......
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