https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93229

--- Comment #2 from Wilco <wilco at gcc dot gnu.org> ---
(In reply to David Malcolm from comment #0)
> A pristine checkout of r280132 doesn't build for me on x86_64-pc-linux-gnu:
> 
> ../../src/gcc/tree-ssa-forwprop.c: In function ‘bool
> simplify_count_trailing_zeroes(gimple_stmt_iterator*)’:
> ../../src/gcc/config/i386/i386.h:2886:30: error: cannot convert
> ‘poly_uint16’ {aka ‘poly_int<1, short unsigned int>’} to ‘long int’ in
> assignment
>  2886 |  ((VALUE) = GET_MODE_BITSIZE (MODE), TARGET_BMI ? 1 : 0)
>       |             ~~~~~~~~~~~~~~~~~^~~~~~
>       |                              |
>       |                              poly_uint16 {aka poly_int<1, short
> unsigned int>}
> ../../src/gcc/tree-ssa-forwprop.c:1925:22: note: in expansion of macro
> ‘CTZ_DEFINED_VALUE_AT_ZERO’
>  1925 |       bool zero_ok = CTZ_DEFINED_VALUE_AT_ZERO (TYPE_MODE (type),
> ctzval) == 2;
>       |                      ^~~~~~~~~~~~~~~~~~~~~~~~~
> 
> 
> I'm assuming this was introduced in r280132, as that commit introduced
> simplify_count_trailing_zeroes.
> 
> Am using gcc-9.2.1-1.fc30.x86_64 to try to build stage 1.

That's odd, it shouldn't be using any poly types on x86... Machmode.h has:

#if ONLY_FIXED_SIZE_MODES
#define GET_MODE_BITSIZE(MODE) ((unsigned short) mode_to_bits (MODE).coeffs[0])
#else

That's doing the correct thing if ONLY_FIXED_SIZE_MODES is defined.

Reply via email to