Richard Henderson wrote: > Fix typos in the names of vec_extract & vec_interleave tree codes. > Change vec_perm checking and expansion level. > Implement interleave via permutation. > spu: Remove vec_extract_even/odd and vec_interleave expanders. > rs6000: Remove some vec_extract_even/odd expanders. > i386: Delete the vec_extract_even/odd patterns.
This patch set causes a build failure on SPU: /home/uweigand/fsf/gcc-head/libgfortran/generated/matmul_c4.c: In function 'matmul_c4': /home/uweigand/fsf/gcc-head/libgfortran/generated/matmul_c4.c:284:25: internal compiler error: in expand_vec_perm, at optabs.c:6998 /* Multiply each element by its byte size. */ if (u == 2) sel = expand_simple_binop (mode, PLUS, sel, sel, sel, 0, OPTAB_DIRECT); else sel = expand_simple_binop (mode, ASHIFT, sel, GEN_INT (exact_log2 (u)), sel, 0, OPTAB_DIRECT); gcc_assert (sel != NULL); This fails since for u == 4 and mode == V4SFmode it attempts to expand a V4SFmode shift, which is unsupported. Shouldn't this be using the mode of the selector rather than the mode of the result in any case? Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE ulrich.weig...@de.ibm.com