Hi, We hit an ICE using lto with neon intrinsics that could be traced back to an invalid call to convert during expand with LTO . Fixed by backporting Richi's fix from mainline - checking he had no objections to this on IRC , tested cross on arm-linux-gnueabi with qemu for no regressions.
Applied to the FSF 4.7 branch. regards, Ramana 2012-05-24 Ramana Radhakrishnan <ramana.radhakrish...@linaro.org> Backport from mainline 2012-03-12 Richard Guenther <rguent...@suse.de> * config/arm/arm.c (neon_dereference_pointer): Do not call covert during RTL expansion. Index: gcc/config/arm/arm.c =================================================================== --- gcc/config/arm/arm.c (revision 187800) +++ gcc/config/arm/arm.c (working copy) @@ -20604,9 +20604,8 @@ array_type = build_array_type (elem_type, build_index_type (upper_bound)); /* Dereference EXP using that type. */ - exp = convert (build_pointer_type (array_type), exp); return fold_build2 (MEM_REF, array_type, exp, - build_int_cst (TREE_TYPE (exp), 0)); + build_int_cst (build_pointer_type (array_type), 0)); } /* Expand a Neon builtin. */