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
This commit is contained in:
Uros Bizjak 2019-07-02 17:48:36 +02:00 committed by Uros Bizjak
parent 8108da8a55
commit dab0477b0b
3 changed files with 52 additions and 15 deletions

View file

@ -1,3 +1,25 @@
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>
* config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn

View file

@ -1228,7 +1228,8 @@
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)]
"ix86_split_mmx_pack (operands, <any_s_truncate:CODE>); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx")
@ -1247,7 +1248,8 @@
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)]
"ix86_split_mmx_pack (operands, SS_TRUNCATE); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx")
@ -1269,7 +1271,8 @@
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)]
"ix86_split_mmx_punpck (operands, true); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx")
@ -1291,7 +1294,8 @@
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)]
"ix86_split_mmx_punpck (operands, false); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx")
@ -1311,7 +1315,8 @@
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)]
"ix86_split_mmx_punpck (operands, true); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx")
@ -1331,7 +1336,8 @@
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)]
"ix86_split_mmx_punpck (operands, false); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx")
@ -1351,7 +1357,8 @@
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)]
"ix86_split_mmx_punpck (operands, true); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx")
@ -1371,7 +1378,8 @@
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)]
"ix86_split_mmx_punpck (operands, false); DONE;"
[(set_attr "mmx_isa" "native,sse_noavx,avx")
@ -1517,7 +1525,8 @@
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)]
{
rtx op;
@ -1889,7 +1898,8 @@
"@
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)
(unspec:SI [(match_dup 1)] UNSPEC_MOVMSK))
(set (match_dup 0)

View file

@ -5110,7 +5110,8 @@
cvtpi2ps\t{%2, %0|%0, %2}
#
#"
"TARGET_MMX_WITH_SSE && reload_completed"
"TARGET_SSE2 && reload_completed
&& SSE_REG_P (operands[2])"
[(const_int 0)]
{
rtx op2 = lowpart_subreg (V4SImode, operands[2],
@ -15881,7 +15882,8 @@
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)]
{
/* Generate SSE version of the operation. */
@ -15997,7 +15999,8 @@
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)]
{
/* Generate SSE version of the operation. */
@ -16353,7 +16356,8 @@
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)
(and:V4SI (match_dup 3) (match_dup 2)))
@ -16490,7 +16494,8 @@
gcc_unreachable ();
}
}
"TARGET_MMX_WITH_SSE && reload_completed"
"TARGET_SSSE3 && reload_completed
&& SSE_REGNO_P (REGNO (operands[0]))"
[(set (match_dup 0)
(lshiftrt:V1TI (match_dup 0) (match_dup 3)))]
{