Re: [PATCH][AArch64]: Use UNSPEC_LD1_SVE for all LD1 loads

2021-05-18 Thread Richard Sandiford via Gcc-patches
"Andre Vieira (lists)" writes: > Hi, > > Using aarch64_pred_mov for these was tricky as it did both store and > load. Furthermore there was some concern it might allow for a predicated > mov to end up as a mem -> mem and a predicated load being wrongfully > reloaded to a full-load to register.

Re: [PATCH][AArch64]: Use UNSPEC_LD1_SVE for all LD1 loads

2021-05-18 Thread Andre Vieira (lists) via Gcc-patches
Hi, Using aarch64_pred_mov for these was tricky as it did both store and load. Furthermore there was some concern it might allow for a predicated mov to end up as a mem -> mem and a predicated load being wrongfully reloaded to a full-load to register. So instead we decided to let the extendin

Re: [PATCH][AArch64]: Use UNSPEC_LD1_SVE for all LD1 loads

2021-05-14 Thread Richard Sandiford via Gcc-patches
"Andre Vieira (lists)" writes: > Hi, > > I noticed we were missing out on LD1 + UXT combinations in some cases > and found it was because of inconsistent use of the unspec enum > UNSPEC_LD1_SVE. The combine pattern for LD1[S][BHWD] uses UNSPEC_LD1_SVE > whereas one of the LD1 expanders was usin

[PATCH][AArch64]: Use UNSPEC_LD1_SVE for all LD1 loads

2021-05-14 Thread Andre Vieira (lists) via Gcc-patches
Hi, I noticed we were missing out on LD1 + UXT combinations in some cases and found it was because of inconsistent use of the unspec enum UNSPEC_LD1_SVE. The combine pattern for LD1[S][BHWD] uses UNSPEC_LD1_SVE whereas one of the LD1 expanders was using UNSPEC_PRED_X. I wasn't sure whether to