@@ -1332,24 +1332,24 @@ namespace IGC
13321332 {
13331333 llvm::Value* ret = val;
13341334 llvm::Type* type = val->getType ();
1335- switch (type->getTypeID ())
1336- {
1337- case llvm::Type::FloatTyID:
1338- break ;
1339- case llvm::Type::IntegerTyID:
1340- // yes, we bitcast here and bitcast back later to use it. add another way, like cast logic, if you prefer.
1335+ assert (type->isSingleValueType () && !type->isVectorTy () && " Only scalar data is supported here!" );
1336+ assert (type->getTypeID () == Type::FloatTyID ||
1337+ type->getTypeID () == Type::HalfTyID ||
1338+ type->getTypeID () == Type::IntegerTyID ||
1339+ type->getTypeID () == Type::DoubleTyID);
1340+
1341+ unsigned dataSize = type->getScalarSizeInBits ();
1342+ if (16 == dataSize){
1343+ ret = builder.CreateFPExt (builder.CreateBitCast (val, builder.getHalfTy ()), builder.getFloatTy ());
1344+ }else if (32 == dataSize){
13411345 ret = builder.CreateBitCast (val, builder.getFloatTy ());
1342- break ;
1343- case llvm::Type::DoubleTyID:
1344- {
1346+ }else if (64 == dataSize){
13451347 llvm::Type* vecType = llvm::VectorType::get (builder.getFloatTy (), 2 );
13461348 ret = builder.CreateBitCast (val, vecType);
1349+ }else {
1350+ llvm_unreachable (" Unsupported type in ConvertToFloat of helper." );
13471351 }
1348- break ;
1349- default :
1350- assert (!" unsupported data type!" );
1351- break ;
1352- }
1352+
13531353 return ret;
13541354 }
13551355
@@ -1409,7 +1409,7 @@ namespace IGC
14091409 }
14101410 break ;
14111411 default :
1412- assert (! " Unsupported data type! Please enhance this function first." );
1412+ llvm_unreachable ( " Unsupported type in ScalarizeAggregateMembers of helper ! Please enhance this function first." );
14131413 break ;
14141414 }
14151415 }
@@ -1454,7 +1454,7 @@ namespace IGC
14541454 }
14551455 break ;
14561456 default :
1457- assert (! " Unsupported data type! Please enhance this function first." );
1457+ llvm_unreachable ( " Unsupported type in ScalarizeAggregateMemberAddresses of helper ! Please enhance this function first." );
14581458 break ;
14591459 }
14601460 }
0 commit comments