llvm / llvm/llvm-project

[AArch64] Crash trying to scalarize llvm.vector.partial.reduce.add.v2i128.v4i128

Open
#162,436 6 comments 1 reaction 0 assignees View on GitHub
backend:AArch64 crash crash-on-valid
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

```
target triple = "arm64-apple-macosx"

define <2 x i128> @crash(<2 x i128> %a, <4 x i128> %b) {
%r = call <2 x i128> @llvm.vector.partial.reduce.add.v2i128.v4i128(<2 x i128> %a, <4 x i128> %b)
ret <2 x i128> %r
}
```

Running through `llc` results in
```
ScalarizeVectorResult #0: t79: v1i128 = partial_reduce_umla t72, t75, t77

LLVM ERROR: Do not know how to scalarize the result of this operator!
```

https://llvm.godbolt.org/z/71nWK3qeT

Contributor guide

Open the contributing guide

Research direction

Start by running the supplied IR through llc with the arm64-apple-macosx target and reproduce the ScalarizeVectorResult failure for partial_reduce_umla. Trace the compiler path handling this scalarization result; done means the provided reproducer no longer crashes and appropriate coverage verifies the behavior.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.