On 08/19/2016 05:30 PM, Patrick Palka wrote:
integer_nonzerop() currently unconditionally returns false for a
VECTOR_CST argument.  This is confusing because one would expect that
integer_onep(x) => integer_nonzerop(x) for all x but that is currently
not the case.  For a VECTOR_CST of all ones i.e. {1,1,1,1},
integer_onep() returns true but integer_nonzerop() returns false.

This patch makes integer_nonzerop() handle VECTOR_CSTs in the obvious
way and also adds some self tests (the last of which fails without the
change).  Does this look OK to commit afetr bootstrap + regtesting on
x86_64-pc-linux-gnu?

gcc/ChangeLog:

        * tree.c (integer_nonzerop): Rewrite to use a switch.  Handle
        VECTOR_CSTs.
        (test_vector_constants): New static function.
        (tree_c_tests): Call it.
OK.
jeff

Reply via email to