Re: [PATCH 2/5]AArch64 sve: combine nested if predicates

2021-12-03 Thread Richard Sandiford via Gcc-patches
Tamar Christina writes: >> This hashing looks unnecessarily complex. The values we're hashing are >> vector SSA_NAMEs, so I think we should be able to hash and compare them >> as a plain pair of pointers. >> >> The type could then be std::pair and the hashing could be done using >> pair_hash fro

RE: [PATCH 2/5]AArch64 sve: combine nested if predicates

2021-12-02 Thread Tamar Christina via Gcc-patches
> This hashing looks unnecessarily complex. The values we're hashing are > vector SSA_NAMEs, so I think we should be able to hash and compare them > as a plain pair of pointers. > > The type could then be std::pair and the hashing could be done using > pair_hash from hash-traits.h. > Fancy.. TI

Re: [PATCH 2/5]AArch64 sve: combine nested if predicates

2021-11-30 Thread Richard Sandiford via Gcc-patches
Tamar Christina writes: > Bootstrapped Regtested on aarch64-none-linux-gnu, x86_64-linux-gnu and no > issues. > > gcc/ChangeLog: > > * tree-vect-stmts.c (prepare_load_store_mask): Rename to... > (prepare_vec_mask): ...This and record operations that have already been > masked. >

RE: [PATCH 2/5]AArch64 sve: combine nested if predicates

2021-11-15 Thread Tamar Christina via Gcc-patches
Bootstrapped Regtested on aarch64-none-linux-gnu, x86_64-linux-gnu and no issues. gcc/ChangeLog: * tree-vect-stmts.c (prepare_load_store_mask): Rename to... (prepare_vec_mask): ...This and record operations that have already been masked. (vectorizable_call): Use i

Re: [PATCH 2/5]AArch64 sve: combine nested if predicates

2021-11-02 Thread Richard Sandiford via Gcc-patches
Tamar Christina writes: > Hi All, > > Here’s a respin of the patch. > > The following example > > void f5(float * restrict z0, float * restrict z1, float *restrict x, > float * restrict y, float c, int n) > { > for (int i = 0; i < n; i++) { > float a = x[i]; > float b = y

RE: [PATCH 2/5]AArch64 sve: combine nested if predicates

2021-11-02 Thread Tamar Christina via Gcc-patches
Hi All, Here’s a respin of the patch. The following example void f5(float * restrict z0, float * restrict z1, float *restrict x, float * restrict y, float c, int n) { for (int i = 0; i < n; i++) { float a = x[i]; float b = y[i]; if (a > b) { z0[i]

Re: [PATCH 2/5]AArch64 sve: combine nested if predicates

2021-10-11 Thread Richard Sandiford via Gcc-patches
Tamar Christina writes: >> > Note: This patch series is working incrementally towards generating the >> most >> > efficient code for this and other loops in small steps. >> >> It looks like this could be done in the vectoriser via an extension of the >> scalar_cond_masked_set mechanism. We

RE: [PATCH 2/5]AArch64 sve: combine nested if predicates

2021-09-21 Thread Tamar Christina via Gcc-patches
Hi honored reviewer, Thanks for the feedback, I hereby submit the new patch: > > Note: This patch series is working incrementally towards generating the > most > > efficient code for this and other loops in small steps. > > It looks like this could be done in the vectoriser via an extensio

Re: [PATCH 2/5]AArch64 sve: combine nested if predicates

2021-09-03 Thread Richard Sandiford via Gcc-patches
Tamar Christina writes: > Hi All, > > The following example > > void f5(float * restrict z0, float * restrict z1, float *restrict x, > float * restrict y, float c, int n) > { > for (int i = 0; i < n; i++) { > float a = x[i]; > float b = y[i]; > if (a > b) { >

[PATCH 2/5]AArch64 sve: combine nested if predicates

2021-08-31 Thread Tamar Christina via Gcc-patches
Hi All, The following example void f5(float * restrict z0, float * restrict z1, float *restrict x, float * restrict y, float c, int n) { for (int i = 0; i < n; i++) { float a = x[i]; float b = y[i]; if (a > b) { z0[i] = a + b; if (a > c)