@@ -1332,24 +1332,24 @@ namespace IGC
1332
1332
{
1333
1333
llvm::Value* ret = val;
1334
1334
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){
1341
1345
ret = builder.CreateBitCast (val, builder.getFloatTy ());
1342
- break ;
1343
- case llvm::Type::DoubleTyID:
1344
- {
1346
+ }else if (64 == dataSize){
1345
1347
llvm::Type* vecType = llvm::VectorType::get (builder.getFloatTy (), 2 );
1346
1348
ret = builder.CreateBitCast (val, vecType);
1349
+ }else {
1350
+ llvm_unreachable (" Unsupported type in ConvertToFloat of helper." );
1347
1351
}
1348
- break ;
1349
- default :
1350
- assert (!" unsupported data type!" );
1351
- break ;
1352
- }
1352
+
1353
1353
return ret;
1354
1354
}
1355
1355
@@ -1409,7 +1409,7 @@ namespace IGC
1409
1409
}
1410
1410
break ;
1411
1411
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." );
1413
1413
break ;
1414
1414
}
1415
1415
}
@@ -1454,7 +1454,7 @@ namespace IGC
1454
1454
}
1455
1455
break ;
1456
1456
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." );
1458
1458
break ;
1459
1459
}
1460
1460
}
0 commit comments