[llvm] [SLP]Initial non-power-of-2 support (but still whole register) for reductions (PR #112361)

Alexey Bataev via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 5 07:06:48 PST 2024


alexey-bataev wrote:

> @alexey-bataev we (at google) bisected a compilation breakage (infinite loop in `clang`) to this revision.
> 
> Here's a reproducer:
> 
> ```c++
> float *a;
> float b, c, d, e, f, g;
> void h() {
>   g += 0.0f * a[21];
>   g += 0.0f * a[7];
>   f += 0.0f * a[2];
>   g += 0.0f * a[17];
>   f += 0.0f * a[22];
>   f += c * a[23];
>   g += d * b;
>   f += e * a[24];
>   f += d * a[20];
>   g += e * a[25];
>   g += f;
> }
> ```
> 
> Compilation command:
> 
> ```shell
> $ clang -target riscv64-unknown-linux \
>   -march=rv64gcv1p0_zfh_zvfh \
>   -std=c99 \
>   -O2 \
>   -c repro.i \
>   -o /tmp/out
> ```
> 
> The compilation takes under 0.1s with the previous `clang` and doesn't finish at this revision.
> 
> Could you please revert to unblock us?

Must be fixed in 0c18def2c18c4b99a5f448496461b60f576992fa

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


More information about the llvm-commits mailing list