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

            Bug ID: 119922
           Summary: V4SI & {-1, -1, 0, 0} should produce movq
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: enhancement
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pinskia at gcc dot gnu.org
  Target Milestone: ---

Take:
```
typedef float V __attribute__((vector_size(16)));
typedef int VI __attribute__((vector_size(16)));
V
foo (V x)
{
  return __builtin_shufflevector  (x, (V) { 0, 0, 0, 0 }, 0, 1, 4, 5);
}
V
foo1 (V x)
{
  VI y = {-1,-1,0x0,0x0};
  return (V)(((VI)x) & y);
}
```

These 2 should both produce movq.

This was noticed while reading the review of a patch:
https://gcc.gnu.org/pipermail/gcc-patches/2025-February/676292.html

Reply via email to