[llvm] [AArch64] Add custom lowering for load <3 x i8>. (PR #78632)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 18 14:28:16 PST 2024


efriedma-quic wrote:

More variations:

```
#include <arm_neon.h>
uint8x8_t load_3byte_integer(char* a) {
  return vmov_n_s32(*(unsigned short*)a | (*(a+2) << 16));
}
uint8x8_t load_3byte_zip(char* a) {
  return vzip1_u16(vld1_dup_u16(a), vld1_dup_u8(a+2));
}
uint8x8_t load_3byte_insert(char* a) {
  return vld1_lane_s16(a, vld1_dup_u8(a+2), 0);
}
```

https://github.com/llvm/llvm-project/pull/78632


More information about the llvm-commits mailing list