https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115659

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|target                      |tree-optimization
                 CC|                            |pinskia at gcc dot gnu.org

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note I think this could help scalar code too:
```
int a[1], b[1], c[1];

void
test (void)
{
  a[0] = (b[0] == c[0]) ? -1 : a[0];
}

void
test1 (void)
{
  a[0] = (-(b[0] == c[0])) | a[0];
}

```

So this could be something like:
```
(simplify
 (cond @0 @1 integer_all_ones_p)
 (bit_ior (negate (convert @0)) @1))
(simplify
 (vec_cond @0 @1 integer_all_ones_p)
 (bit_ior (view_convert @0) @1))
```
The second one might need a target_supports_op_p for the bit_ior.

Reply via email to