https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117903
Bug ID: 117903 Summary: [15 Regression] gcc_jit_block_add_assignment_op GCC_JIT_BINARY_OP_BITWISE_XOR rejects vector types Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: jit Assignee: dmalcolm at gcc dot gnu.org Reporter: i at zhuyi dot fan Target Milestone: --- Sorry that there is no reproducer because the construction of the jit program fails at the first place. Description =========== Conceptually, I was doing the following operation: ``` typedef char __attribute__((vector_size(sizeof (char) * 16))) vec; vec* p = /*...*/ vec v = /*...*/ *p ^= v; ``` The operation is constructed using `gcc_jit_block_add_assignment_op`. The above translation succeeds with libgccjit 14.0 but not with 15.0. I get the following instead: ``` error: gcc_jit_block_add_assignment_op: gcc_jit_block_add_assignment_op GCC_JIT_BINARY_OP_BITWISE_XOR has non-numeric lvalue *%8 (type: char __attribute__((vector_size(sizeof (char) * 16)))) ```