<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/100814>100814</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
RISC-V: ILP32E cannot be used with the D ISA extension
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
patrick-rivos
</td>
</tr>
</table>
<pre>
LLVM differs from GCC in its support of the D extension when using -mabi=ilp32e.
Godbolt: https://godbolt.org/z/En7r85Gex
Assert: https://github.com/llvm/llvm-project/blob/069e8bcd82c4420239f95c7e6a09e1f756317cfc/clang/lib/Basic/Targets/RISCV.cpp#L364
>From the original merge request:
>> If I understand correctly, E can't be combined with D in current specification since E must use ILP32E calling convention.
>
>Calling convention and extensions are separated, calling convention are specify the how argument passing and the register convention, so ILP32E *can* use with -march=rv32efd, but it can't pass or return floating point type in FPR.
>
> Just like we can ILP32 for -march=rv32ifd and LP64 with -march=rv64ifd, you may confused about the opposite combination like ILP32D with -march=rv32i and LP64D with -march=rv64i is not work, that's because it require pass or return floating point type in FPR, but FPR isn't existing in such ISA config.
https://reviews.llvm.org/D70401
If I'm reading this comment correctly, D can be allowed with -mabi=ilp32e (GCC currently allows it).
Is the current behavior intentional?
cc @kito-cheng
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVF1v6jgQ_TXmZQRKnEDCQx64palYdaWqd9V3x5kkszV21nag7K9f2SncVu3D3hdAeD7OnJlzhHPUa8SKrX-w9X4hJj8YW43CW5KvS0sn4xaNaS_V4-PLn9BS16F10FlzhIe7OyAN5B24aRyN9WA68APCHvDNo3ZkNJwH1DA50j0sj6Ihlu1JjRnHFUv2LNk9mLYxyrNsB4P3o2PZjvGa8bqfH1bG9ozX_zJe3-vClusHfJszd86h_S6R_DA1K2mOjNdKna5fy9Gav1F6xutGmYbxOtlssWxkW3KZ5zzh2bbbrmWBG5FsMe2K9SZLC9lJxmuphA44FIXEH8JR-PcvYXv0jvH6-fDz7mUlx5Hx7DHb5DPE-bMObAVejKWetFBwRNsjWPxnQhcmeI_O7ll2D4cODjDpFq3zQrcgjbUovbowfgf3IIVmvPDQIEhzbEhjC2fyA-zDNuRkLWoPbkRJHUnhwxIcaYlwD8fJeZgcwuHxKeOhllJhM9LoE-oQuvoF5frj7ksQBFi3FTsQFsHhKKzw2AaUX-vOMRHUJXIxmDMI20_HgHYMd6j7WDc8WuzJebQfCoSyzlyBM76LPOziNHH85VFYObBsb08Zxy7iaCYP5G-UhTZgLFj0k9XQKSN8aDsa0h78ZcRAYf30_A0L8EfgTtErwhlDxRkKdMZ-bk1dG-d4fNrkX5BtcpqRXcwER3EJA3aTwxZEYyY_X8k4Gkf-ut55g7Fx7Lj_Zly6dfz6uskJyIE2Hs7GvobmfhCe8cJBg1IEAsnHYySL_5-jK7_10zOQmwnGN3IxmjS4SQ5w-LmLI1K_-qiIz4K1eCI8u1UQ6bvc90WSJ-nHlKAKxosjWBRtaOEHcoGieECfNLKP62kQhFLmfJXHZ_cBxstgYO96UZc52AF5xrfvYA8uLuSqqQYHcSJjgbSfj1IoltUfUUoJLE9eyZulHFD3sGirrN1mW7HAKi04T3i5ydaLoSpFt05Em3PeZWW57tK8KdqWY7rOMOm2mwVVPOF5UvANT9MiXa94ss6zRpRl2Yp0IwuWJ3gUpG68Lci5Cas0Sco0XyjRoHLR2DnXeIb4yjgPPm-r6IjN1DuWJ4qc_0X_wpNXWAVHW74Ee72ZhQ5H1CDEg42kzm4ftnyzg8VkVfXbjhzBBSN9R3-q-H8BAAD__2b9JwQ">