llvm / llvm/llvm-project

[ARM] Legalizer crash on `llvm.{minimum, maximum}.v2f64` if `mve` is enabled

Open
#221,539 1 comment 0 reactions 0 assignees View on GitHub
backend:ARM confirmed crash-on-valid
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

## Reproducer

https://godbolt.org/z/1x68Ybo1z

```ll
define<2 x double> @f(<2 x double> %a, <2 x double> %b) {
%m = call <2 x double> @llvm.maximum.v2f64(<2 x double> %a, <2 x double> %b)
ret <2 x double> %m
}
```

## Command

```
llc -mtriple=thumbv8m.main-none-eabihf -mcpu=cortex-m55 maximum.ll
llc -mtriple=thumbv8m.main-none-eabihf -mcpu=cortex-m55 maximum.ll -mattr=-mve
```

## Note

The first command will hang if assertion is disabled.

`v4f32` works without crash or hang.

Contributor guide

Open the contributing guide

Research direction

Start with the LLVM IR reproducer in the issue or maximum.ll and run the two provided llc commands for thumbv8m.main with and without mve. Compare the v2f64 maximum behavior with the working v4f32 case. Done means the mve-enabled command no longer crashes or hangs while producing output.

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
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.