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))))
```