Просмотр исходного кода

Fixed LLVM cast intrinsic for vectors

Brian Fiete 3 лет назад
Родитель
Сommit
202d21734c
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      IDEHelper/Compiler/BfIRCodeGen.cpp

+ 4 - 2
IDEHelper/Compiler/BfIRCodeGen.cpp

@@ -3657,10 +3657,12 @@ void BfIRCodeGen::HandleNextCmd()
 								SetResult(curId, mIRBuilder->CreateAlignedLoad(castedRes, llvm::MaybeAlign(1)));
 								SetResult(curId, mIRBuilder->CreateAlignedLoad(castedRes, llvm::MaybeAlign(1)));
 							}
 							}
 						}
 						}
-						else
+						else if ((arg0Type->isVectorTy()) && (intrinsicData->mReturnType->isVectorTy()))
 						{
 						{
-							FatalError("Expected address");
+							SetResult(curId, mIRBuilder->CreateBitCast(args[0], intrinsicData->mReturnType));
 						}
 						}
+						else
+							FatalError("Invalid cast intrinsic values");
 					}
 					}
 					break;
 					break;
 				case BfIRIntrinsic_VAArg:
 				case BfIRIntrinsic_VAArg: