diff --git a/IDEHelper/Compiler/BfIRBuilder.cpp b/IDEHelper/Compiler/BfIRBuilder.cpp index 42b4bdd9..547c6b84 100644 --- a/IDEHelper/Compiler/BfIRBuilder.cpp +++ b/IDEHelper/Compiler/BfIRBuilder.cpp @@ -3093,8 +3093,6 @@ void BfIRBuilder::CreateTypeDeclaration(BfType* type, bool forceDbgDefine) { if (underlyingArrayIsVector) { - if (underlyingArrayType == mModule->GetPrimitiveType(BfTypeCode_Boolean)) - underlyingArrayType = mModule->GetPrimitiveType(BfTypeCode_UInt8); irType = GetVectorType(MapType(underlyingArrayType), underlyingArraySize); } else diff --git a/IDEHelper/Compiler/BfIRCodeGen.cpp b/IDEHelper/Compiler/BfIRCodeGen.cpp index 1c0c8efe..5e05a918 100644 --- a/IDEHelper/Compiler/BfIRCodeGen.cpp +++ b/IDEHelper/Compiler/BfIRCodeGen.cpp @@ -2244,9 +2244,15 @@ void BfIRCodeGen::HandleNextCmd() CMD_PARAM(BfIRTypeEx*, elementType); CMD_PARAM(int, length); + auto llvmType = elementType->mLLVMType; + if (llvmType->getScalarSizeInBits() == 1) + { + llvmType = llvm::Type::getInt8Ty(*mLLVMContext); + } + auto typeEx = new BfIRTypeEx(); mIRTypeExs.Add(typeEx); - typeEx->mLLVMType = llvm::FixedVectorType::get(elementType->mLLVMType, length); + typeEx->mLLVMType = llvm::FixedVectorType::get(llvmType, length); typeEx->mMembers.Add(elementType); SetResult(curId, typeEx); }