2011-09-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/27460
PR middle-end/29269
* doc/md.texi (vcond): Document.
* genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
optab with two modes.
* optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
(enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
(vcond_optab): Adjust.
(vcondu_optab): Likewise.
(expand_vec_cond_expr_p): Adjust prototype.
* optabs.c (get_vcond_icode): Adjust.
(expand_vec_cond_expr_p): Likewise.
(expand_vec_cond_expr): Likewise.
* tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
vector type.
(vectorizable_condition): Allow differing types for comparison
and result.
* config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
for the comparison.
* config/i386/sse.md (vcond<mode>): Split to
vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
vcond<V_128:mode><VI124_128:mode> and
vcondu<V_128:mode><VI124_128:mode>.
(vcondv2di): Change to vcond<VI8F_128:mode>v2di.
(vconduv2di): Likewise.
* config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
(vcondu<mode>): Likewise.
* config/ia64/vect.md (vcond<mode>): Likewise.
(vcondu<mode>): Likewise.
(vcondv2sf): Likewise.
* config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
* config/rs6000/paired.md (vcondv2sf): Likewise.
* config/rs6000/vector.md (vcond<mode>): Likewise.
(vcondu<mode>): Likewise.
* config/spu/spu.md (vcond<mode>): Likewise.
(vcondu<mode>): Likewise.
* gcc.dg/vect/vect-cond-7.c: New testcase.
From-SVN: r178480
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| README-interworking | Loading commit data... | |
| aout.h | Loading commit data... | |
| arm-arches.def | Loading commit data... | |
| arm-c.c | Loading commit data... | |
| arm-cores.def | Loading commit data... | |
| arm-fixed.md | Loading commit data... | |
| arm-fpus.def | Loading commit data... | |
| arm-generic.md | Loading commit data... | |
| arm-ldmstm.ml | Loading commit data... | |
| arm-modes.def | Loading commit data... | |
| arm-opts.h | Loading commit data... | |
| arm-protos.h | Loading commit data... | |
| arm-tables.opt | Loading commit data... | |
| arm-tune.md | Loading commit data... | |
| arm.c | Loading commit data... | |
| arm.h | Loading commit data... | |
| arm.md | Loading commit data... | |
| arm.opt | Loading commit data... | |
| arm1020e.md | Loading commit data... | |
| arm1026ejs.md | Loading commit data... | |
| arm1136jfs.md | Loading commit data... | |
| arm926ejs.md | Loading commit data... | |
| arm_neon.h | Loading commit data... | |
| bpabi-v6m.S | Loading commit data... | |
| bpabi.S | Loading commit data... | |
| bpabi.c | Loading commit data... | |
| bpabi.h | Loading commit data... | |
| cirrus.md | Loading commit data... | |
| coff.h | Loading commit data... | |
| constraints.md | Loading commit data... | |
| cortex-a5.md | Loading commit data... | |
| cortex-a8-neon.md | Loading commit data... | |
| cortex-a8.md | Loading commit data... | |
| cortex-a9-neon.md | Loading commit data... | |
| cortex-a9.md | Loading commit data... | |
| cortex-m4-fpu.md | Loading commit data... | |
| cortex-m4.md | Loading commit data... | |
| cortex-r4.md | Loading commit data... | |
| cortex-r4f.md | Loading commit data... | |
| crti.asm | Loading commit data... | |
| crtn.asm | Loading commit data... | |
| ecos-elf.h | Loading commit data... | |
| elf.h | Loading commit data... | |
| fa526.md | Loading commit data... | |
| fa606te.md | Loading commit data... | |
| fa626te.md | Loading commit data... | |
| fa726te.md | Loading commit data... | |
| fmp626.md | Loading commit data... | |
| fp16.c | Loading commit data... | |
| fpa.md | Loading commit data... | |
| freebsd.h | Loading commit data... | |
| genopt.sh | Loading commit data... | |
| gentune.sh | Loading commit data... | |
| ieee754-df.S | Loading commit data... | |
| ieee754-sf.S | Loading commit data... | |
| iterators.md | Loading commit data... | |
| iwmmxt.md | Loading commit data... | |
| ldmstm.md | Loading commit data... | |
| lib1funcs.asm | Loading commit data... | |
| libgcc-bpabi.ver | Loading commit data... | |
| linux-atomic.c | Loading commit data... | |
| linux-eabi.h | Loading commit data... | |
| linux-elf.h | Loading commit data... | |
| linux-gas.h | Loading commit data... | |
| mmintrin.h | Loading commit data... | |
| neon-docgen.ml | Loading commit data... | |
| neon-gen.ml | Loading commit data... | |
| neon-schedgen.ml | Loading commit data... | |
| neon-testgen.ml | Loading commit data... | |
| neon.md | Loading commit data... | |
| neon.ml | Loading commit data... | |
| netbsd-elf.h | Loading commit data... | |
| pe.c | Loading commit data... | |
| pe.h | Loading commit data... | |
| pe.opt | Loading commit data... | |
| predicates.md | Loading commit data... | |
| rtems-elf.h | Loading commit data... | |
| semi.h | Loading commit data... | |
| symbian.h | Loading commit data... | |
| sync.md | Loading commit data... | |
| t-arm | Loading commit data... | |
| t-arm-elf | Loading commit data... | |
| t-bpabi | Loading commit data... | |
| t-linux | Loading commit data... | |
| t-linux-androideabi | Loading commit data... | |
| t-linux-eabi | Loading commit data... | |
| t-netbsd | Loading commit data... | |
| t-rtems | Loading commit data... | |
| t-strongarm-elf | Loading commit data... | |
| t-symbian | Loading commit data... | |
| t-vxworks | Loading commit data... | |
| t-wince-pe | Loading commit data... | |
| thumb2.md | Loading commit data... | |
| uclinux-eabi.h | Loading commit data... | |
| uclinux-elf.h | Loading commit data... | |
| unaligned-funcs.c | Loading commit data... | |
| unknown-elf.h | Loading commit data... | |
| vec-common.md | Loading commit data... | |
| vfp.md | Loading commit data... | |
| vfp11.md | Loading commit data... | |
| vxworks.h | Loading commit data... | |
| vxworks.opt | Loading commit data... | |
| wince-pe.h | Loading commit data... |