i386: Robustify vec perm blend functions for TARGET_MMX_WITH_SSE

8-byte modes should be processed only for TARGET_MMX_WITH_SSE.

gcc/ChangeLog:

	* config/i386/i386-expand.cc (expand_vec_perm_pblendv):
	Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
	(expand_vec_perm_2perm_pblendv): Ditto.
This commit is contained in:
Uros Bizjak
2023-03-16 20:41:55 +01:00
parent 31cdfdef04
commit acff89c7d7

View File

@@ -20288,9 +20288,10 @@ expand_vec_perm_pblendv (struct expand_vec_perm_d *d)
;
else if (TARGET_AVX && (vmode == V4DFmode || vmode == V8SFmode))
;
else if (TARGET_SSE4_1 && (GET_MODE_SIZE (vmode) == 4
|| GET_MODE_SIZE (vmode) == 8
|| GET_MODE_SIZE (vmode) == 16))
else if (TARGET_SSE4_1
&& (GET_MODE_SIZE (vmode) == 16
|| (TARGET_MMX_WITH_SSE && GET_MODE_SIZE (vmode) == 8)
|| GET_MODE_SIZE (vmode) == 4))
;
else
return false;
@@ -21154,9 +21155,10 @@ expand_vec_perm_2perm_pblendv (struct expand_vec_perm_d *d, bool two_insn)
;
else if (TARGET_AVX && (vmode == V4DFmode || vmode == V8SFmode))
;
else if (TARGET_SSE4_1 && (GET_MODE_SIZE (vmode) == 16
|| GET_MODE_SIZE (vmode) == 8
|| GET_MODE_SIZE (vmode) == 4))
else if (TARGET_SSE4_1
&& (GET_MODE_SIZE (vmode) == 16
|| (TARGET_MMX_WITH_SSE && GET_MODE_SIZE (vmode) == 8)
|| GET_MODE_SIZE (vmode) == 4))
;
else
return false;