vec_extract_even/odd are not implemented on ia64. They are used in vectorization of strided loads, and are implemented only on powerpc (patch http://gcc.gnu.org/ml/gcc-patches/2006-03/msg01679.html (revision 119088)).
The implementation exists on autovect-branch, but it possibly can be more efficient (http://gcc.gnu.org/ml/gcc-patches/2006-09/msg01278.html): 2005-12-01 Richard Henderson <[EMAIL PROTECTED]> * targhooks.c (interleave_vectorize_builtin_extract_evenodd): New. (interleave_vectorize_builtin_extract_even): New. (interleave_vectorize_builtin_extract_odd): New. * targhooks.h: Declare them. * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_EXTRACT_EVEN): New. (TARGET_VECTORIZE_BUILTIN_EXTRACT_ODD): New. 2005-12-02 Richard Henderson <[EMAIL PROTECTED]> * config/ia64/ia64.c (TARGET_VECTORIZE_BUILTIN_EXTRACT_EVEN): New. (TARGET_VECTORIZE_BUILTIN_EXTRACT_ODD): New. 2006-09-28 Ira Rosen <[EMAIL PROTECTED]> * targhooks.c (interleave_vectorize_builtin_extract_evenodd): Fix to produce a correct instructions sequence. * tree-vect-transform.c (vect_permute_store_chain): Choose the correct instruction according to the endianness. Call mark_new_vars_to_rename. Once the above is merged, we can add ia64 to the list of targets that support check_effective_target_vect_extract_even_odd in testsuite/lib/target-support.exp. Ira -- Summary: missed optimization: model missing vec_extract_even/odd idioms for ia64 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: irar at il dot ibm dot com GCC build triplet: ia64-*-* GCC host triplet: ia64-*-* GCC target triplet: ia64-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30211