<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63345>63345</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[NVPTX][bfloat] vector load support:`Cannot select: t27: bf16 = extract_vector_elt t18, Constant:i64<1>`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
backend:NVPTX
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
qcolombet
</td>
</tr>
</table>
<pre>
The NVPTX backend is lacking `bfloat` support for even basic stuff.
For instance, given the following IR:
```llvm
target datalayout = "e-i64:64-i128:128-v16:16-v32:32-n16:32:64"
target triple = "nvptx64-nvidia-cuda"
; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite)
define void @foo(ptr noalias readonly align 16 %arg, ptr noalias align 16 %arg1) local_unnamed_addr #0 {
bb:
%i = addrspacecast ptr %arg1 to ptr addrspace(1)
%i2 = addrspacecast ptr %arg to ptr addrspace(1)
%i11 = load <4 x bfloat>, ptr addrspace(1) %i2, align 4
store <4 x bfloat> %i11, ptr addrspace(1) %i, align 8
ret void
}
attributes #0 = { mustprogress nofree nosync nounwind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) }
attributes #1 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
!nvvm.annotations = !{!0, !1, !2, !3}
!0 = !{ptr @foo, !"kernel", i32 1}
!1 = !{ptr @foo, !"maxntidx", i32 64}
!2 = !{ptr @foo, !"maxntidy", i32 1}
!3 = !{ptr @foo, !"maxntidz", i32 1}
```
Compiled with:
```
llc -o - <in>.ll -mcpu=sm_80
```
The backend will crash with:
```
LLVM ERROR: Cannot select: t27: bf16 = extract_vector_elt t18, Constant:i64<1>
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8Vd9v4ygQ_mvIy8gRBttxHvKQJhvppL0fqlare6swHjtcMfgAp8399SdsJ02326oPp5MiE2Dmm-FjmE94r1qDuCH5Hcn3CzGEo3Wbv6XVtqswLCpbnzffjgi_ff_j259QCfmIpgblQQv5qEwLpKBVo60IpKDgh763LkBjHeAJDVTCKwk-DE2zJHRP6Hb6HqwDZXwQRiJhO2hVtA5HhMZqbZ8i8i_3hM_mpKDTT-tTNy0F4VoMUIsgtDjbIQDheyCMYaKKjPBtkSUqZSXh25SVySkt4r8iOXFG-JazxIwr46zICGOvYINTvcYLpDn14bnIEnNStRKJHGpxdZi__A4Og5FBWQPbEJwnfAvd4EPvbOvQezC2cYhgrD8bCcYO5kmZGp6U1g7D4Ax02Fl3JqwUru2wiwgORf3kVBhJUkZIid6rSuPb_fWUSY2NMggnq2ogGW2sJazsgwNjhVbCjy7W6DMIrVoDaQGE5cK1McKt3Q_bKWFr0FYK_TAYIzqsH0RdOyCMUyCruyl6VV3vDKKjGimMhr4XEqXwYQwyY0Kw4_RqQFiZXo8yIbAPIT6DkKYjhLaiBsJ3GTzDXLL8y-XUP_pPoePuxEN2AfTBOnwDM8f5EO0FrLyAOQzjTc1FtNrf1pQIwalqCOhnkmMxru7-56qCa1av80mv-ZhYFDq2hvey8T3KQYsgKo0_Tc1Y8zrW_GWpOZ26pTDGBhHflp-fZBorjqU0HoCwiXjCUjaP_C0QvfEcy2d-G6M9YewRnUEdn3XkhDNIXzDYXEHve3fi2QRVP9_4F9ktAPscwPm9BPjn_P_5uf-lfd5ysrNdrzTGWgnHt512mmotIbGQxIJXhvAvS60h6WQ_EL733UNJP4gQdeOiGPHWQTrhjx_G-_r1-6_w5f7-99j7YTdePHjUKENcCGwVh6qJbYnvAZ-DEzI8nFAG6x5QBwhpGQnY2VFdotcoB7s0PvbXIRf1htdrvhYL3KRFWawZzVi-OG6aUrKVKCVd8SqnWLNmVdKclyKvscRSLtSGUcZpkRYppzRlyywT-brBFSvWDHGVkoxiJ5ReRsFaWtculPcDbgrOs3yhRYXaj6LLWDW006XF_xNbhG9HvY3r-X7hNhElqYbWk4xq5YN_wQ0q6FG_J498T_K7uS3le5iImVrfLM6R-oL-59QWdDE4vTmG0EftI-xA2KFV4ThUS2k7wg6jdk9D0jv7VwzMDiMvnrDDSM2_AQAA__8pWohv">