<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/86305>86305</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang crashed when avx512 bf16 feature enabled
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
songdongsheng
</td>
</tr>
</table>
<pre>
Here is the testing code:
```c
__bf16 f(__bf16 a, __bf16 b, __bf16 c, __bf16 d) { return a * b + c * d; }
```
Let's compile:
```bash
clang --target=x86_64-linux-gnu -mavx512bf16 -c test_bf16.c
```
No matter target is `x86_64-linux-gnu`, `x86_64-w64-windows-gnu`, or `x86_64-pc-windows-msvc`, clang always crashed:
```bash
fatal error: error in backend: Cannot select: 0x1af0871d9a8: v8bf16 = X86ISD::CVTNEPS2BF16 0x1af0871da18
0x1af0871da18: v4f32 = scalar_to_vector 0x1af0871d238
0x1af0871d238: f32 = fma 0x1af0871c908, 0x1af0871ce48, 0x1af0871d318
0x1af0871c908: f32 = bitcast 0x1af0871d3f8
0x1af0871d3f8: i32 = shl 0x1af0871d7e8, Constant:i8<16>
0x1af0871d7e8: i32,ch = load<(dereferenceable load (s16) from %ir.8), anyext from i16> 0x1af0871c588, FrameIndex:i64<3>, undef:i64
0x1af0871ceb8: i64 = FrameIndex<3>
0x1af0871d858: i64 = undef
0x1af0871cf98: i8 = Constant<16>
0x1af0871ce48: f32 = bitcast 0x1af0871cc88
0x1af0871cc88: i32 = shl 0x1af0871de08, Constant:i8<16>
0x1af0871de08: i32,ch = load<(dereferenceable load (s16) from %ir.7), anyext from i16> 0x1af0871c588, FrameIndex:i64<2>, undef:i64
0x1af0871cdd8: i64 = FrameIndex<2>
0x1af0871d858: i64 = undef
0x1af0871cf98: i8 = Constant<16>
0x1af0871d318: f32 = fmul 0x1af0871cac8, 0x1af0871ccf8
0x1af0871cac8: f32 = bitcast 0x1af0871d468
0x1af0871d468: i32 = shl 0x1af0871dd28, Constant:i8<16>
0x1af0871dd28: i32,ch = load<(dereferenceable load (s16) from %ir.6), anyext from i16> 0x1af0871c588, FrameIndex:i64<1>, undef:i64
0x1af0871c978: i64 = FrameIndex<1>
0x1af0871d858: i64 = undef
0x1af0871cf98: i8 = Constant<16>
0x1af0871ccf8: f32 = bitcast 0x1af0871cc18
0x1af0871cc18: i32 = shl 0x1af0871dc48, Constant:i8<16>
0x1af0871dc48: i32,ch = load<(dereferenceable load (s16) from %ir.5), anyext from i16> 0x1af0871c588, FrameIndex:i64<0>, undef:i64
0x1af0871d938: i64 = FrameIndex<0>
0x1af0871d858: i64 = undef
0x1af0871cf98: i8 = Constant<16>
In function: f
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: \\opt\\clang+llvm-18.1.2-x86_64-pc-windows-msvc\\bin\\clang -mavx512bf16 -c test_bf16.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'test_bf16.c'.
4. Running pass 'X86 DAG->DAG Instruction Selection' on function '@f'
Exception Code: 0xE0000046
#0 0x00007ffcd1a0cf19 (C:\Windows\System32\KERNELBASE.dll+0x2cf19)
#1 0x00007ff617f6594a (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x26c594a)
#2 0x00007ff617f65aa9 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x26c5aa9)
#3 0x00007ff617e71313 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x25d1313)
#4 0x00007ff617f76c59 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x26d6c59)
#5 0x00007ff618655099 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x2db5099)
#6 0x00007ff617916d0e (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x2076d0e)
#7 0x00007ff617907f84 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x2067f84)
#8 0x00007ff617974a2b (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x20d4a2b)
#9 0x00007ff61796f829 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x20cf829)
#10 0x00007ff617a77a36 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x21d7a36)
#11 0x00007ff615c45369 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x3a5369)
#12 0x00007ff6179434be (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x20a34be)
#13 0x00007ff6179642d3 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x20c42d3)
#14 0x00007ff615be0ed1 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x340ed1)
#15 0x00007ff615be099d (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x34099d)
#16 0x00007ff615bda829 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x33a829)
#17 0x00007ff61795f115 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x20bf115)
#18 0x00007ff617d1d478 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x247d478)
#19 0x00007ff615e4cc31 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x5acc31)
#20 0x00007ff615e4c6d2 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x5ac6d2)
#21 0x00007ff615e49404 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x5a9404)
#22 0x00007ff615e46f80 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x5a6f80)
#23 0x00007ff615e4594e (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x5a594e)
#24 0x00007ff616bc928d (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x132928d)
#25 0x00007ff615fd99b5 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x7399b5)
#26 0x00007ff615fd97b8 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x7397b8)
#27 0x00007ff615c8a0c8 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x3ea0c8)
#28 0x00007ff615c89a7e (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x3e9a7e)
#29 0x00007ff615c89597 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x3e9597)
#30 0x00007ff615c83427 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x3e3427)
#31 0x00007ff615c80aa3 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x3e0aa3)
#32 0x00007ff617da3060 (C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin\clang.exe+0x2503060)
#33 0x00007ffcd36e7344 (C:\Windows\System32\KERNEL32.DLL+0x17344)
#34 0x00007ffcd3e626b1 (C:\Windows\SYSTEM32\ntdll.dll+0x526b1)
clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
clang version 18.1.2
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\opt\clang+llvm-18.1.2-x86_64-pc-windows-msvc\bin
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: C:\Users\xyz\AppData\Local\Temp\test_bf16-c7fe6c.c
clang: note: diagnostic msg: C:\Users\xyz\AppData\Local\Temp\test_bf16-c7fe6c.sh
clang: note: diagnostic msg:
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0msty2zgWhp8G3pySigR4XWghU3KSGnfiit3TPasUCBxKnKZAFQA6yjz9FEjZJthR2rkw5cQMLv93gB84hkBzY-qdQlyR-JrEmyve2X2rV6ZVO9mqndmj2l2VrfyyeosaoTZg9wgWja3VDkQrkbA1CTYkePo3CYYvMfz_06eyChOoCM3Oj5zQAs7P5ehZjJ4loTmQ9Bo02k4r4EDoGkog9BpE_ywJuwaSbibUcSi3aAlNDYj2cKybi4GW3OyHItFwtQNYLCzXO7SEbU5Z8imJFk2tutNipzpYHPjjKQ5pH-VC9DPRh7wU34jkfQsHbi1qGJTdPJIkmKq7XrQY1Xx2f2sl289mVN_qUZOjeG5xMI_i3GQYCW8-8y8GhOZmj_Kfx19xyxtArVtN2Hp4gFpBycVfqJwAFFyp1oLBBoV1BcEp5FWQpaHMeeYKHrN-bgjbwJ9Z8u5-47hsXfz74f327p5e34TJqBMPs4E9KXNCUcVor2MEb7j-ZNtPjyhsq0dtKXvqDzApZmt4EqgO_KVS5EHm5uilACO_QLJwpAqTriPdsraCGzvuWXk9YVLF1lA_DWrfjCpT7EMoWmUsV25m64ywIkwI2_qCMOk1SBJaiH2v27RcElYQmknUWKFGJZCXDfY1QGhmwsRtr0q3ByA0rvUyIzR3eK6-4MkONXXPHo09zvoQbzQ_4Dsl8eSCTCLCCuaCpAV0SmJ1Lp3EPJ5ELIeok6gPeCw4SF3uK7PY6zsQJwtIVPnQKOvbvMzp36fTXwPfclaI7JKzfdVFZzH4EWcx-DXOpj_nLP0-Z6W87Cx9Ge-r7PyK_Kt89XexlwS6kS-Ci0kWENXfUlHf6Jv7PUqyyya6yovrQtLXrwuY9PsVKyP5uZURvmZleKkzvbw2wq-OecZ9DxPfv73zw8se95UXPRbRj3ksol_jcfxzHgff6bHM2WWPgx_d_9-bAd4pqDolbN2q3teh9O52u77fgunKQ22BQ9ntQOOx1RZsC3trj8YdVOgNoTe72u67cinaA6E3TfP49G1x1O1_3bmH3tTGdGgIvQGuJNRKNJ3E_mzcn7b6I5PVXKCbv6PGo24FGoMSTNvpodj15Ma0ouYWJehOgRG6PtrlEPK95eIvkN3h-Hx0C5YkyO90u9P8AFzvugMq6wIHEhckLtqjHR76AyCh133YYbYMl3Rx4cTYty9rNer4z8fc0AVCWIFt5VbTkWuDGrgFVBLaCip34O5bUteyaCXCDhVq3vvS1zBX87FTyn2UOHJjgND05mwd3LmC37jiO9SEptAqOLSya9C1GsdD0_N8RV_T-zNLYLN-syBsu1m_gXfKWN0NhPv-EOvCGeSfVo3rRqKgct964e1J4LGvKYYPPBCctoH7EyXn1UooCyA4ubK0qoQMeSCqMHfbsnDuxcUfw5yTuLj_YiweGCVx8a_tx_fb2-v1_XYpm4bQ6-BEXT-3b5-FwxfhJEyrJM4jPhIePP8uwwe3-y5LPOHATYQT9sh0SuY8n4fMuT9m5pExDVnIZiDH0gl75Mgfc-qmZY4xSyfskeMxOUviOMjnIMvSCXvkxBtzHiYywBnIQeqEPXLqk4O0yqI5yIkT9siZT04jTss5yNIJe-TcJydVRufwORBO-JnsEkngkXmacpbMQA6lE_bIXg6LRRSzZIYxM-50PbCfwvKIReUsS5s7YY_MJjZHVM6RwgLhhD2yl8LiEgOU4QyTHTldDxxPwXkuZwHnufTAiQ-WfJYtxRif7qhJ_oqrMIznMLl0wh7Zz18ylFGazUCOUifskb38FWMkBJthecXc6Y7BNJiCE0lnASeSeuBwAs6jYIafUjF3uh6YTsBJlQVzgJ2uB2YTcJxHM6TNmDtdD-zlrqQUOc1mSCEho07YI_vJq5J5Xs6wlVPmdD1wMgWn5Qw7OWVO1wOn_g_ljAdiBjBDp-uBswk45-kMq4uh0_XA-RQc5-ks4DhPx2AWTMAsorOAna4Hnhy8soDzGU4hDJ2uB_YPXpKzIJkhddE4cMIemY0_iLMEUxZFr_sgzuhyc3s7ZAjXy5ONPFlMaFKGX5f9z_3D9rdeVlnZNM8f7WPX5VlzGPvTezb3MNy9VLpVFpUE0R4OXEmoeN2ghM-13QOeatu_doW0n83OICwewbZgEKFWj60Yblg8CjyiNnWrYJjioebh_JJzDRdmfGi118glHFqJjWt7bE19erpoM5Y3DcpN3Yf_c876c6Ja21-0yJrvVGtsLeBg-ponQ37ia_QW9HwtuH54WBdv4eHtFm4-3N5--OPd-zdw8-52ew8PH_ri69_fwMft3YePD8-XcXdfu9bLDKH55au95wYaoXFeoQRunyVfMf7zLP9uULvFdvryPxIX6-Nxwy0ncXHbCt6QuHjAw5HExfNF2UKkFSbi6f5ufpD3Uv1Vlv4qY_038FdyxWTOcn6FqzANw5DGYcqu9ishWcAZCwULkYmySsM0YCLBsgrzhOb0ql7RgEYBozRMGI2DZVrSKk9SxhIWhzEvSRTggdfN0i3yZat3V_218CpLWBBfNbzExvS_WEHpeTtQEm-u9KrfFGW3MyQKmtpY86Jga9vgati15xf38HmPCoYLWRh-mwK57TQCKl42KK863ax-_Aq7D_f_AQAA___UOouo">