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

Reply via email to