<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/70061>70061</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[RISC-V] `llvm.*maximum`/`llvm.*minimum` can't be lowered to soft floats
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
backend:RISC-V
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dcaballe
</td>
</tr>
</table>
<pre>
Hi there,
It looks like `llvm.maximum` and `llvm.vector.reduce.fmaximum` (and I assume the minimum counterparts as well) can't be lowered to soft floats.
Repro:
```
define float @test(<4 x float> %in, float %in2, float %in3) {
%mr = tail call float @llvm.vector.reduce.fmaximum.v4f32(<4 x float> %in)
%m = tail call float @llvm.maximum.f32(float %in2, float %in3)
%res = fadd float %m, %mr
ret float %res
}
declare float @llvm.vector.reduce.fmaximum.v4f32(<4 x float>)
declare float @llvm.maximum.f32(float, float)
```
```
llc -mattr=+m -mtriple=riscv32-pc-linux-elf -target-abi=ilp32 test.ll
SoftenFloatResult #0: t46: f32 = fmaximum t35, t34
LLVM ERROR: Do not know how to soften the result of this operator!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llc -mattr=+m -mtriple=riscv32-pc-linux-elf -target-abi=ilp32 test.ll
1. Running pass 'Function Pass Manager' on module 'test.ll'.
2. Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on function '@test'
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VVFv4jgQ_jXmZQRKbEjggQfalL1KXV1FpX134knw4diRPW57__7khAK36nWlOx1CSTwef_N9Y49HhqA7i7hlqzu2qmYy0tH5rWpkLY3BWe3Un9vfNNARPTJ-z7KKZbvp-UhgnDsFMPqEwIrMmNd-0ct33ceeFRlIqy7mV2zI-YVHFRtctDdejK-T4yPIEGKPKRT02qZpaFy0hH6QngLIAG9oDOMbaKRlvCSoEYx7Q48KyEFwLUFrnKSwuCV6wME7Jna3NlZk5_84VNhqi9NiYMuMMBDjaybul_A-mZl4AMZX2jJ-_-GYhvynsUgEWXk3AUMy9h6YqICkNtBIY65xvsjN4nXZCv7PJDa3Ab7E_wCc4H5B_QbVYxhxW6nU1a1Pi0ZRZ1ePdJ31GM4JLqvbfCtsjPT4n5Rf2H0F-YnYi8orwN93_1OjMQ3Me0nkmagYv-th3pPXg0EmKq9D8yr4fGjmRtv4PkfTwpyk75DmstZMVNoMgkM6SAtjbuO8uJbQ7hOhA4ZoUt5ExsQOaFmkVyv4lPezFiCxShpILG9xnp5-fIeHw-H3Q1pUObCO4GTdGxzd20c9oB0Lyk-BXAt01AHcgF6S84znE9bz08Pu5QFCrHtNIKGOHXgcnKcEdCQaQiogvmd832k6xnrRuJ7xfcr5-TUfvPsDG2J8r0OIGBjfj3eAto2JaqrsxstwhFo2J_KywXOdvpBsTqBiP1zKNFvA-Hv2rvOyB-m72KOlxAP-h73JF3CI1mrbwSBDAMbLfbQNaWfhORm-Sys79IyX4Cz0TkWDyesDhZdnMfzM_Ge4w-PL_fwHVLtvcyYeqt03eJZE6C082kA-TrFe0OD4dQ7UfpBgvLxcTOWnJ3amtkJtxEbOcJsXm3VeFNkymx23UhWy4XKJ2WbN12tVqHxT5u1qI9tG5Lma6S3PuMgzvsyLZcmzhSjrLJfrTNVZrTgWbJlhL7VZjDXmfDcbt3hbZlmRz4ys0YSxh3Bex47xdLOkb9mc0ComdpP4NLGqZn47npc6diGVrQ4UrsCkyYz96LxkVV2aCOO7a-NIh_HGPnWM1FB-2Rxm0Zvtvz_To-a_AgAA___G2zXv">