define dso_local i32 @main() #0 {
entry:
%v = insertelement <4 x i64> undef, i64 0, i32 0
%v0 = insertelement <4 x i64> %v, i64 1, i32 1
%v1 = insertelement <4 x i64> %v0, i64 2, i32 2
%v2 = insertelement <4 x i64> %v1, i64 3, i32 3
%vcmp = call <4 x i64> @vicmp_eq_i64x4(<4 x i64> %v2, <4 x i64> %v2)
%extractel = extractelement <4 x i64> %vcmp, i32 0
call void @write(i64 noundef %extractel)
ret i32 0
}
해당 코드를 실행하면 백엔드에서 Exception이 발생합니다. 관련해서 확인해보니, 백엔드의 emitter.cpp의 emitFromVectorCompIntrinsic에서 호출하는 tryCalculateVectorCompSelectBitWidth 함수에서 vicmp intrinsic을 처리하는 과정에서 다음 line이 문제가 되는 것 같습니다.
if (ret_ty->isVectorTy() && __inst.arg_size() == 3) {
안녕하세요, 백엔드에서 오류가 발생하는 것 같아 이를 제보하고자 합니다.
다음은 제가 임의로 작성한 LLVM IR 코드입니다.
해당 코드를 실행하면 백엔드에서 Exception이 발생합니다. 관련해서 확인해보니, 백엔드의
emitter.cpp
의emitFromVectorCompIntrinsic
에서 호출하는tryCalculateVectorCompSelectBitWidth
함수에서 vicmp intrinsic을 처리하는 과정에서 다음 line이 문제가 되는 것 같습니다.해당 문제를 확인해주셨으면 합니다. 감사합니다.