LLC Segmentation Fault in Matrix Multiplication


when i used clang for matrix multiplication code with i=j=k=1000351, it successfully generates IR. then i run opt as follows
opt -S -O3 -force-vector-width=64 -force-vector-interleave=32 matn.ll -o pimmatnl_64_u32_o3.ll

it also worked fine. but when i run llc on the optimized .ll file

llc -x86-asm-syntax=intel pimmatnl_64_u32_o3.ll -o matnl-knl4_intel.s

i get the following segmentation fault error:

#0 0x0000000001826ad8 (llc+0x1826ad8)
#1 0x0000000001824aae (llc+0x1824aae)
#2 0x0000000001824bfc (llc+0x1824bfc)
#3 0x00007fa6bdb52d10 __restore_rt (/lib/x86_64-linux-gnu/
#4 0x00000000014d0974 (llc+0x14d0974)
#5 0x000000000169bdb5 (llc+0x169bdb5)
#6 0x00000000016bcfdc (llc+0x16bcfdc)
#7 0x00000000016d8684 (llc+0x16d8684)
#8 0x000000000170a4c0 (llc+0x170a4c0)
#9 0x000000000171199d (llc+0x171199d)
#10 0x0000000001714258 (llc+0x1714258)
#11 0x0000000000e530f4 (llc+0xe530f4)
#12 0x000000000122c931 (llc+0x122c931)
#13 0x0000000001499b2a (llc+0x1499b2a)
#14 0x0000000001499bd3 (llc+0x1499bd3)
#15 0x0000000001499694 (llc+0x1499694)
#16 0x000000000068a68c (llc+0x68a68c)
#17 0x0000000000626a80 (llc+0x626a80)
#18 0x00007fa6bccf3a40 __libc_start_main (/lib/x86_64-linux-gnu/
#19 0x000000000067f8e9 (llc+0x67f8e9)
Stack dump:
0. Program arguments: llc -x86-asm-syntax=intel pimmatnl_64_u32_o3.ll -o matnl-knl4_intel.s

  1. Running pass ‘Function Pass Manager’ on module ‘pimmatnl_64_u32_o3.ll’.
  2. Running pass ‘X86 DAG->DAG Instruction Selection’ on function ‘@multiply
    Segmentation fault (core dumped)

Why does it happen? please correct me.

Thank You

It happens only when i keep my vector width to >=64, why is that so?

I have to keep it >=64. Please suggest some way?

Can you attach your source code or .ll file? Have you tried a debug build of llc which might give a more readable stack dump or even an assertion message.

Files are attached here. No I havent tried debug

matn.c (425 Bytes)

pimmatnl_64_u32_o3.ll (69.4 KB)

I see the problem. I’ll get a fix to you soon.