Closed
Description
Consider:
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
define void @caller(ptr %0) {
call void @callee(ptr %0, i64 0, i32 0) #1
ret void
}
define available_externally void @callee(ptr %0, i64 %1, i32 %2) #0 {
%4 = call <16 x float> @llvm.x86.avx512.min.ps.512(<16 x float> zeroinitializer, <16 x float> zeroinitializer, i32 0)
store <16 x float> %4, ptr %0, align 1
ret void
}
declare <16 x float> @llvm.x86.avx512.min.ps.512(<16 x float>, <16 x float>, i32 immarg)
attributes #0 = { "target-features"="+aes,+avx,+avx2,+avx512bw,+avx512dq,+avx512f,+avx512vl,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fsgsbase,+fxsr,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+rdrnd,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt" }
attributes #1 = { alwaysinline }
Compile like so:
$ clang -O3 -S bug.ll
I get:
SplitVectorResult #0: t7: v16f32 = llvm.x86.avx512.min.ps.512 TargetConstant:i64<10845>, t5, t5, TargetConstant:i32<0>
fatal error: error in backend: Do not know how to split the result of this operator!
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:
:
: