vec-init-1.inc
1.46 KB
-
More improvements to sparc VIS vec_init code generation. · 79cad86d
gcc/ * config/sparc/sparc.md (UNSPEC_SHORT_LOAD): New unspec. (zero-extend_v8qi_vis, zero_extend_v4hi_vis): New expanders. (*zero_extend_v8qi_<P:mode>_insn, *zero_extend_v4hi_<P:mode>_insn): New insns. * config/sparc/sparc.c (vector_init_move_words, vector_init_prepare_elts, sparc_expand_vector_init_vis2, sparc_expand_vector_init_vis1): New functions. (vector_init_bshuffle): Rewrite to handle more cases and make use of locs[] array prepared by vector_init_prepare_elts. (vector_init_fpmerge, vector_init_faligndata): Delete. (sparc_expand_vector_init): Rewrite using new infrastructure. gcc/testsuite/ * lib/test-supports.exp (check_effective_target_ultrasparc_vis2_hw): New proc. (check_effective_target_ultrasparc_vis3_hw): New proc. * gcc.target/sparc/vec-init-1.inc: New vector init common code. * gcc.target/sparc/vec-init-2.inc: Likewise. * gcc.target/sparc/vec-init-3.inc: Likewise. * gcc.target/sparc/vec-init-1-vis1.c: New test. * gcc.target/sparc/vec-init-1-vis2.c: New test. * gcc.target/sparc/vec-init-1-vis3.c: New test. * gcc.target/sparc/vec-init-2-vis1.c: New test. * gcc.target/sparc/vec-init-2-vis2.c: New test. * gcc.target/sparc/vec-init-2-vis3.c: New test. * gcc.target/sparc/vec-init-3-vis1.c: New test. * gcc.target/sparc/vec-init-3-vis2.c: New test. * gcc.target/sparc/vec-init-3-vis3.c: New test. From-SVN: r181024
David S. Miller committed