Hi Jakub,
On 06/03/17 11:48, Jakub Jelinek wrote:
Hi!
CCing also arm, aarch64 and mips maintainers on the issues in their
backends. It is likely if such VEC_SELECTs are visible to simplify-rtx.c,
it would ICE on them.
On Fri, Mar 03, 2017 at 05:28:27PM +0100, Jakub Jelinek wrote:
../../gcc/config/aarch64/aarch64-simd.md:79:1: DImode of first vec_select
operand is not a vector mode
../../gcc/config/aarch64/aarch64-simd.md:79:1: DFmode of first vec_select
operand is not a vector mode
../../gcc/config/aarch64/aarch64-simd.md:588:1: DImode of first vec_select
operand is not a vector mode
../../gcc/config/aarch64/aarch64-simd.md:588:1: DFmode of first vec_select
operand is not a vector mode
../../gcc/config/aarch64/aarch64-simd.md:3192:1: DFmode of first vec_select
operand is not a vector mode
../../gcc/config/arm/neon.md:1338:1: element mode mismatch between vec_select
HImode and its operand QImode
../../gcc/config/arm/neon.md:1338:1: element mode mismatch between vec_select
SImode and its operand QImode
../../gcc/config/arm/neon.md:1338:1: element mode mismatch between vec_select
QImode and its operand HImode
../../gcc/config/arm/neon.md:1338:1: element mode mismatch between vec_select
SImode and its operand HImode
../../gcc/config/arm/neon.md:1338:1: element mode mismatch between vec_select
QImode and its operand SImode
../../gcc/config/arm/neon.md:1338:1: element mode mismatch between vec_select
HImode and its operand SImode
../../gcc/config/arm/neon.md:1353:1: element mode mismatch between vec_select
HImode and its operand QImode
../../gcc/config/arm/neon.md:1353:1: element mode mismatch between vec_select
SImode and its operand QImode
../../gcc/config/arm/neon.md:1353:1: element mode mismatch between vec_select
QImode and its operand HImode
../../gcc/config/arm/neon.md:1353:1: element mode mismatch between vec_select
SImode and its operand HImode
../../gcc/config/arm/neon.md:1353:1: element mode mismatch between vec_select
QImode and its operand SImode
../../gcc/config/arm/neon.md:1353:1: element mode mismatch between vec_select
HImode and its operand SImode
../../gcc/config/arm/neon.md:1407:1: element mode mismatch between vec_select
HImode and its operand QImode
../../gcc/config/arm/neon.md:1407:1: element mode mismatch between vec_select
SImode and its operand QImode
../../gcc/config/arm/neon.md:1407:1: element mode mismatch between vec_select
QImode and its operand HImode
../../gcc/config/arm/neon.md:1407:1: element mode mismatch between vec_select
SImode and its operand HImode
../../gcc/config/arm/neon.md:1407:1: element mode mismatch between vec_select
QImode and its operand SImode
../../gcc/config/arm/neon.md:1407:1: element mode mismatch between vec_select
HImode and its operand SImode
../../gcc/config/arm/neon.md:1422:1: element mode mismatch between vec_select
HImode and its operand QImode
../../gcc/config/arm/neon.md:1422:1: element mode mismatch between vec_select
SImode and its operand QImode
../../gcc/config/arm/neon.md:1422:1: element mode mismatch between vec_select
QImode and its operand HImode
../../gcc/config/arm/neon.md:1422:1: element mode mismatch between vec_select
SImode and its operand HImode
../../gcc/config/arm/neon.md:1422:1: element mode mismatch between vec_select
QImode and its operand SImode
../../gcc/config/arm/neon.md:1422:1: element mode mismatch between vec_select
HImode and its operand SImode
Could you file a PR for these please?
I think I see the issue with some of the NEON patterns (using VW and VQI
iterators simultaneously I think)
but it'd take some time to do the testing for the fixes properly.
Thanks,
Kyrill
../../gcc/config/mips/mips-msa.md:1219:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1219:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1219:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1219:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1307:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1307:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1307:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1307:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1401:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1401:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1401:1: vec_select parallel with 2 elements,
expected 4
../../gcc/config/mips/mips-msa.md:1401:1: vec_select parallel with 2 elements,
expected 4
2017-03-03 Jakub Jelinek <ja...@redhat.com>
* genrecog.c (validate_pattern): Add VEC_SELECT validation.
* genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
and emit_mode_inner.
Jakub