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 |
|---|---|---|
| .. | ||
| 10000.md | Loading commit data... | |
| 20kc.md | Loading commit data... | |
| 24k.md | Loading commit data... | |
| 3000.md | Loading commit data... | |
| 4000.md | Loading commit data... | |
| 4100.md | Loading commit data... | |
| 4130.md | Loading commit data... | |
| 4300.md | Loading commit data... | |
| 4600.md | Loading commit data... | |
| 4k.md | Loading commit data... | |
| 5000.md | Loading commit data... | |
| 5400.md | Loading commit data... | |
| 5500.md | Loading commit data... | |
| 5k.md | Loading commit data... | |
| 6000.md | Loading commit data... | |
| 7000.md | Loading commit data... | |
| 74k.md | Loading commit data... | |
| 9000.md | Loading commit data... | |
| constraints.md | Loading commit data... | |
| crti.asm | Loading commit data... | |
| crtn.asm | Loading commit data... | |
| driver-native.c | Loading commit data... | |
| elf.h | Loading commit data... | |
| elfoabi.h | Loading commit data... | |
| elforion.h | Loading commit data... | |
| generic.md | Loading commit data... | |
| genopt.sh | Loading commit data... | |
| gnu-user.h | Loading commit data... | |
| gnu-user64.h | Loading commit data... | |
| iris6.h | Loading commit data... | |
| iris6.opt | Loading commit data... | |
| libgcc-mips16.ver | Loading commit data... | |
| linux.h | Loading commit data... | |
| linux64.h | Loading commit data... | |
| loongson.h | Loading commit data... | |
| loongson.md | Loading commit data... | |
| loongson2ef.md | Loading commit data... | |
| loongson3a.md | Loading commit data... | |
| mips-cpus.def | Loading commit data... | |
| mips-dsp.md | Loading commit data... | |
| mips-dspr2.md | Loading commit data... | |
| mips-fixed.md | Loading commit data... | |
| mips-ftypes.def | Loading commit data... | |
| mips-modes.def | Loading commit data... | |
| mips-opts.h | Loading commit data... | |
| mips-protos.h | Loading commit data... | |
| mips-ps-3d.md | Loading commit data... | |
| mips-tables.opt | Loading commit data... | |
| mips.c | Loading commit data... | |
| mips.h | Loading commit data... | |
| mips.md | Loading commit data... | |
| mips.opt | Loading commit data... | |
| mips16.S | Loading commit data... | |
| netbsd.h | Loading commit data... | |
| octeon.md | Loading commit data... | |
| openbsd.h | Loading commit data... | |
| predicates.md | Loading commit data... | |
| r3900.h | Loading commit data... | |
| rtems.h | Loading commit data... | |
| sb1.md | Loading commit data... | |
| sdb.h | Loading commit data... | |
| sde.h | Loading commit data... | |
| sde.opt | Loading commit data... | |
| sdemtk.h | Loading commit data... | |
| sr71k.md | Loading commit data... | |
| st.h | Loading commit data... | |
| sync.md | Loading commit data... | |
| t-elf | Loading commit data... | |
| t-irix6 | Loading commit data... | |
| t-isa3264 | Loading commit data... | |
| t-libgcc-mips16 | Loading commit data... | |
| t-linux64 | Loading commit data... | |
| t-mips | Loading commit data... | |
| t-r3900 | Loading commit data... | |
| t-rtems | Loading commit data... | |
| t-sb1 | Loading commit data... | |
| t-sde | Loading commit data... | |
| t-sdemtk | Loading commit data... | |
| t-sr71k | Loading commit data... | |
| t-st | Loading commit data... | |
| t-vr | Loading commit data... | |
| t-vxworks | Loading commit data... | |
| vr.h | Loading commit data... | |
| vr4120-div.S | Loading commit data... | |
| vxworks.h | Loading commit data... | |
| x-native | Loading commit data... | |
| xlr.md | Loading commit data... |