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