[Bug middle-end/112740] [14 Regression] wrong code with vector compare on riscv64 at -O0
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Dec 1 11:46:33 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112740
--- Comment #11 from Richard Biener <rguenth at gcc dot gnu.org> ---
The only thing that's maybe suspicious is that
machine_mode mode = GET_MODE (target);
but we test
/* Use sign-extension for uniform boolean vectors with
integer modes. Effectively "vec_duplicate" for bitmasks. */
if (!TREE_SIDE_EFFECTS (exp)
&& VECTOR_BOOLEAN_TYPE_P (type)
&& SCALAR_INT_MODE_P (mode)
where we might want to test SCALAR_INT_MODE_P (TYPE_MODE (type)) instead.
Not sure if we ever call store_constructor with target not having the same
mode as 'exp' though ... Or we should check that mode == TYPE_MODE (type)
since we're moving to target anyway.
More information about the Gcc-bugs
mailing list