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

            Bug ID: 117950
           Summary: vector extraction view convert not detected
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: enhancement
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pinskia at gcc dot gnu.org
  Target Milestone: ---

Take:
```
typedef __attribute((vector_size(4))) unsigned char v4uc;

int f(v4uc a) {
    return a[0]|(a[1]<<8)|(a[2]<<16)|(a[3]<<24);
}

v4uc g(int num) {
  v4uc a={num & 0xff, (num >> 8) & 0xff, (num >> 16) & 0xff, (num >> 24) &
0xff};
  return a;
}
```

GCC bswap is able to optimize g just VIEW_CONVERT_EXPR but it does not handle
f.

Reply via email to