------- Comment #2 from rguenth at gcc dot gnu dot org 2010-09-23 09:30 ------- Confirmed.
#2 0x0000000000ec5b41 in ix86_vectorize_builtin_vec_perm_ok ( vec_type=0x7ffff5a04dc8, mask=0x7ffff5a7d2a0) at /space/rguenther/src/svn/gcc-4_5-branch/gcc/config/i386/i386.c:30144 30144 gcc_assert (vec_mask > 0 && vec_mask <= 3); (gdb) p vec_mask $1 = 0 1912 if (!targetm.vectorize.builtin_vec_perm_ok (vectype, 1913 mask_vec)) (gdb) call debug_generic_expr (mask_vec) { 0xfffffffffffffffffffffffffffffff8, 0xfffffffffffffffffffffffffffffff8, 0xfffffffffffffffffffffffffffffff8, 0xfffffffffffffffffffffffffffffffb, 0xfffffffffffffffffffffffffffffffb, 0xfffffffffffffffffffffffffffffffb, 0xfffffffffffffffffffffffffffffffe, 0xfffffffffffffffffffffffffffffffe } (gdb) call debug_generic_expr (vectype) const vector short unsigned int I don't know why the mask elements are negative, but that's certainly the problem with extract_vec_perm_cst which requires positive elements. The problem is surely latent on trunk (no changes in that area). Ira? -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |irar at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Known to fail| |4.5.0 4.5.1 Known to work| |4.4.4 4.6.0 Last reconfirmed|0000-00-00 00:00:00 |2010-09-23 09:30:22 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45752