Commit dab0477b by Uros Bizjak Committed by Uros Bizjak

mmx.md (mmx_pack<s_trunsuffix>swb): Use TARGET_SSE2 && SSE_REGNO_P in split condition.

	* config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
	Use TARGET_SSE2 && SSE_REGNO_P in split condition.
	(mmx_packssdw): Ditto.
	(mmx_punpckhbw): Ditto.
	(mmx_punpcklbw): Ditto.
	(mmx_punpckhwd): Ditto.
	(mmx_punpcklwd): Ditto.
	(mmx_punpckhdq): Ditto.
	(mmx_punpckldq): Ditto.
	(*vec_dupv4hi): Ditto.
	(*vec_dupv2si): Ditto.
	(mmx_pmovmskb): Ditto.
	* config/i386/sse.md (sse_cvtpi2ps): Use
	TARGET_SSE2 && SSE_REG_P in split condition.
	(ssse3_ph<plusminus_mnemonic>wv4hi3): Use
	TARGET_SSSE3 && SSE_REGNO_P in split condition.
	(ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
	(ssse3_pshufbv8qi3): Ditto.
	(ssse3_palignrdi): Ditto.

From-SVN: r272943
parent 8108da8a
2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
* config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
Use TARGET_SSE2 && SSE_REGNO_P in split condition.
(mmx_packssdw): Ditto.
(mmx_punpckhbw): Ditto.
(mmx_punpcklbw): Ditto.
(mmx_punpckhwd): Ditto.
(mmx_punpcklwd): Ditto.
(mmx_punpckhdq): Ditto.
(mmx_punpckldq): Ditto.
(*vec_dupv4hi): Ditto.
(*vec_dupv2si): Ditto.
(mmx_pmovmskb): Ditto.
* config/i386/sse.md (sse_cvtpi2ps): Use
TARGET_SSE2 && SSE_REG_P in split condition.
(ssse3_ph<plusminus_mnemonic>wv4hi3): Use
TARGET_SSSE3 && SSE_REGNO_P in split condition.
(ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
(ssse3_pshufbv8qi3): Ditto.
(ssse3_palignrdi): Ditto.
2019-07-02 Andrew Stubbs <ams@codesourcery.com> 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
* config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
......
...@@ -1228,7 +1228,8 @@ ...@@ -1228,7 +1228,8 @@
pack<s_trunsuffix>swb\t{%2, %0|%0, %2} pack<s_trunsuffix>swb\t{%2, %0|%0, %2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
"ix86_split_mmx_pack (operands, <any_s_truncate:CODE>); DONE;" "ix86_split_mmx_pack (operands, <any_s_truncate:CODE>); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx") [(set_attr "mmx_isa" "native,sse_noavx,avx")
...@@ -1247,7 +1248,8 @@ ...@@ -1247,7 +1248,8 @@
packssdw\t{%2, %0|%0, %2} packssdw\t{%2, %0|%0, %2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
"ix86_split_mmx_pack (operands, SS_TRUNCATE); DONE;" "ix86_split_mmx_pack (operands, SS_TRUNCATE); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx") [(set_attr "mmx_isa" "native,sse_noavx,avx")
...@@ -1269,7 +1271,8 @@ ...@@ -1269,7 +1271,8 @@
punpckhbw\t{%2, %0|%0, %2} punpckhbw\t{%2, %0|%0, %2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
"ix86_split_mmx_punpck (operands, true); DONE;" "ix86_split_mmx_punpck (operands, true); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx") [(set_attr "mmx_isa" "native,sse_noavx,avx")
...@@ -1291,7 +1294,8 @@ ...@@ -1291,7 +1294,8 @@
punpcklbw\t{%2, %0|%0, %k2} punpcklbw\t{%2, %0|%0, %k2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
"ix86_split_mmx_punpck (operands, false); DONE;" "ix86_split_mmx_punpck (operands, false); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx") [(set_attr "mmx_isa" "native,sse_noavx,avx")
...@@ -1311,7 +1315,8 @@ ...@@ -1311,7 +1315,8 @@
punpckhwd\t{%2, %0|%0, %2} punpckhwd\t{%2, %0|%0, %2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
"ix86_split_mmx_punpck (operands, true); DONE;" "ix86_split_mmx_punpck (operands, true); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx") [(set_attr "mmx_isa" "native,sse_noavx,avx")
...@@ -1331,7 +1336,8 @@ ...@@ -1331,7 +1336,8 @@
punpcklwd\t{%2, %0|%0, %k2} punpcklwd\t{%2, %0|%0, %k2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
"ix86_split_mmx_punpck (operands, false); DONE;" "ix86_split_mmx_punpck (operands, false); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx") [(set_attr "mmx_isa" "native,sse_noavx,avx")
...@@ -1351,7 +1357,8 @@ ...@@ -1351,7 +1357,8 @@
punpckhdq\t{%2, %0|%0, %2} punpckhdq\t{%2, %0|%0, %2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
"ix86_split_mmx_punpck (operands, true); DONE;" "ix86_split_mmx_punpck (operands, true); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx") [(set_attr "mmx_isa" "native,sse_noavx,avx")
...@@ -1371,7 +1378,8 @@ ...@@ -1371,7 +1378,8 @@
punpckldq\t{%2, %0|%0, %k2} punpckldq\t{%2, %0|%0, %k2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
"ix86_split_mmx_punpck (operands, false); DONE;" "ix86_split_mmx_punpck (operands, false); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx") [(set_attr "mmx_isa" "native,sse_noavx,avx")
...@@ -1517,7 +1525,8 @@ ...@@ -1517,7 +1525,8 @@
pshufw\t{$0, %0, %0|%0, %0, 0} pshufw\t{$0, %0, %0|%0, %0, 0}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
{ {
rtx op; rtx op;
...@@ -1889,7 +1898,8 @@ ...@@ -1889,7 +1898,8 @@
"@ "@
pmovmskb\t{%1, %0|%0, %1} pmovmskb\t{%1, %0|%0, %1}
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REGNO_P (REGNO (operands[1]))"
[(set (match_dup 0) [(set (match_dup 0)
(unspec:SI [(match_dup 1)] UNSPEC_MOVMSK)) (unspec:SI [(match_dup 1)] UNSPEC_MOVMSK))
(set (match_dup 0) (set (match_dup 0)
......
...@@ -5110,7 +5110,8 @@ ...@@ -5110,7 +5110,8 @@
cvtpi2ps\t{%2, %0|%0, %2} cvtpi2ps\t{%2, %0|%0, %2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSE2 && reload_completed
&& SSE_REG_P (operands[2])"
[(const_int 0)] [(const_int 0)]
{ {
rtx op2 = lowpart_subreg (V4SImode, operands[2], rtx op2 = lowpart_subreg (V4SImode, operands[2],
...@@ -15881,7 +15882,8 @@ ...@@ -15881,7 +15882,8 @@
ph<plusminus_mnemonic>w\t{%2, %0|%0, %2} ph<plusminus_mnemonic>w\t{%2, %0|%0, %2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSSE3 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
{ {
/* Generate SSE version of the operation. */ /* Generate SSE version of the operation. */
...@@ -15997,7 +15999,8 @@ ...@@ -15997,7 +15999,8 @@
ph<plusminus_mnemonic>d\t{%2, %0|%0, %2} ph<plusminus_mnemonic>d\t{%2, %0|%0, %2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSSE3 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(const_int 0)] [(const_int 0)]
{ {
/* Generate SSE version of the operation. */ /* Generate SSE version of the operation. */
...@@ -16353,7 +16356,8 @@ ...@@ -16353,7 +16356,8 @@
pshufb\t{%2, %0|%0, %2} pshufb\t{%2, %0|%0, %2}
# #
#" #"
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSSE3 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(set (match_dup 3) (match_dup 5)) [(set (match_dup 3) (match_dup 5))
(set (match_dup 3) (set (match_dup 3)
(and:V4SI (match_dup 3) (match_dup 2))) (and:V4SI (match_dup 3) (match_dup 2)))
...@@ -16490,7 +16494,8 @@ ...@@ -16490,7 +16494,8 @@
gcc_unreachable (); gcc_unreachable ();
} }
} }
"TARGET_MMX_WITH_SSE && reload_completed" "TARGET_SSSE3 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(set (match_dup 0) [(set (match_dup 0)
(lshiftrt:V1TI (match_dup 0) (match_dup 3)))] (lshiftrt:V1TI (match_dup 0) (match_dup 3)))]
{ {
......
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