Skip to content

clang crashed when avx512 bf16 feature enabled #86305

@songdongsheng

Description

@songdongsheng

Here is the testing code:

__bf16 f(__bf16 a, __bf16 b, __bf16 c, __bf16 d) { return a * b + c * d; }

Let's compile:

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:

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: 

********************

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions