On 11/28/2021 10:56 AM, apinski--- via Gcc-patches wrote:
From: Andrew Pinski <apin...@marvell.com>
This just adds a simplification to simplify_vector_constructor for
vector of 1 element to be VCE which should reduce memory usage in
the compiler and maybe allow for some more optimizations.
OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.
PR tree-optimization/101540
gcc/ChangeLog:
* tree-ssa-forwprop.c (simplify_vector_constructor):
Simplify constructor of vector of 1 element to just
be a VIEW_CONVERT_EXPR.
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/pr101540-1.c: New test.
So why generate a VCE here if the type conversion is useless? Why not
just a NOP_EXPR? Is there something special about converting between
the element type and the outer vector type that requires VCE rather than
NOP_EXR? Neither an ACK or NAK, just trying to understand it a bit better.
Jeff