https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70396
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-03-24 Component|rtl-optimization |tree-optimization Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- Confirmed. 604 /* Allow truncation but not extension since we do not know if the 605 number is signed or unsigned. */ 606 gcc_assert (prec <= v.get_precision ()); 607 608 if (len < 2 || prec <= HOST_BITS_PER_WIDE_INT) 609 return gen_int_mode (v.elt (0), mode); 610 (gdb) p prec $1 = 8 (gdb) p mode $2 = QImode (gdb) p v.get_precision () $3 = 3 we indeed have <integer_type 0x7ffff698b2a0 sizes-gimplified public QI size <integer_cst 0x7ffff6887d98 type <integer_type 0x7ffff688b2a0 bitsizetype> constant 8> unit size <integer_cst 0x7ffff6887db0 type <integer_type 0x7ffff688b1f8 sizetype> constant 1> align 8 symtab 0 alias set 2 canonical type 0x7ffff698b2a0 precision 3 min <integer_cst 0x7ffff68a42b8 -4> max <integer_cst 0x7ffff699b2a0 3>> $7 = void constants in the VECTOR_CST we expand and it has a vector type with bit-precision element type.