diff mbox

Fix ix86_vectorize_vec_perm_const_ok (PR target/57896)

Message ID 20140220200833.GP22862@tucnak.redhat.com
State New
Headers show

Commit Message

Jakub Jelinek Feb. 20, 2014, 8:08 p.m. UTC
On Thu, Feb 20, 2014 at 07:39:33PM +0100, Jakub Jelinek wrote:
> active) with RTL checking, further tested with
> GCC_TEST_RUN_EXPENSIVE=1 make -j16 -k check RUNTESTFLAGS='--target_board=unix\{-msse2,-msse3,-mssse3,-msse4,-mavx,-mavx2,-mavx512f\} dg-torture.exp=*vshuf*'
> (on AVX HW, so -mavx2 and -mavx512f tests expectedly failed execution,
> but at least didn't fail compilation, with the exception of
> gcc.dg/torture/vshuf-v8sf.c which ICEs with -mavx2 -DEXPENSIVE, but
> both without this patch and with this patch - will look at it eventually).

The fix for vshuf-v8sf.c -mavx2 -DEXPENSIVE is here, tested with the
above mentioned test (again, only AVX capable HW), the ICE is gone.
Full bootstrap/regtest pending, ok for trunk/4.8 if it succeeds?

2014-02-20  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
	mode for mask of V8SFmode permutation.



	Jakub

Comments

Uros Bizjak Feb. 20, 2014, 8:10 p.m. UTC | #1
On Thu, Feb 20, 2014 at 9:08 PM, Jakub Jelinek <jakub@redhat.com> wrote:

>> active) with RTL checking, further tested with
>> GCC_TEST_RUN_EXPENSIVE=1 make -j16 -k check RUNTESTFLAGS='--target_board=unix\{-msse2,-msse3,-mssse3,-msse4,-mavx,-mavx2,-mavx512f\} dg-torture.exp=*vshuf*'
>> (on AVX HW, so -mavx2 and -mavx512f tests expectedly failed execution,
>> but at least didn't fail compilation, with the exception of
>> gcc.dg/torture/vshuf-v8sf.c which ICEs with -mavx2 -DEXPENSIVE, but
>> both without this patch and with this patch - will look at it eventually).
>
> The fix for vshuf-v8sf.c -mavx2 -DEXPENSIVE is here, tested with the
> above mentioned test (again, only AVX capable HW), the ICE is gone.
> Full bootstrap/regtest pending, ok for trunk/4.8 if it succeeds?
>
> 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
>
>         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
>         mode for mask of V8SFmode permutation.

OK everywhere.

Thanks,
Uros.
diff mbox

Patch

--- gcc/config/i386/i386.c.jj	2014-02-20 13:05:27.000000000 +0100
+++ gcc/config/i386/i386.c	2014-02-20 19:52:26.142131204 +0100
@@ -21457,7 +21457,7 @@  ix86_expand_vec_perm (rtx operands[])
 	  return;
 
 	case V8SFmode:
-	  mask = gen_lowpart (V8SFmode, mask);
+	  mask = gen_lowpart (V8SImode, mask);
 	  if (one_operand_shuffle)
 	    emit_insn (gen_avx2_permvarv8sf (target, op0, mask));
 	  else