On 1/5/2022 7:17 AM, Richard Biener via Gcc-patches wrote:
This makes __builtin_shufflevector lowering force the result
of the BIT_FIELD_REF lowpart operation to a temporary as to
fulfil the IL verifier constraint that BIT_FIELD_REFs should
be always in outermost handled component position.  Trying to
enforce this during gimplification isn't as straight-forward
as here where we know we're dealing with an rvalue.

Bootstrap & regtest running on x86_64-unknown-linux-gnu - OK for trunk?

Thanks,
Richard.

2022-01-05  Richard Biener  <rguent...@suse.de>

        PR middle-end/101530
gcc/c-family/
        * c-common.c (c_build_shufflevector): Wrap the BIT_FIELD_REF
        in a TARGET_EXPR to force a temporary.

gcc/testsuite/
        * c-c++-common/builtin-shufflevector-3.c: New testcase.
Seems quite reasonable to me.

jeff

Reply via email to