@@ -4202,6 +4202,8 @@ void GenXKernelBuilder::buildAlloca(CallInst *CI, unsigned IntrinID,
4202
4202
unsigned Mod, const DstOpndDesc &DstDesc) {
4203
4203
VISA_GenVar *Sp = nullptr ;
4204
4204
CISA_CALL (Kernel->GetPredefinedVar (Sp, PreDefined_Vars::PREDEFINED_FE_SP));
4205
+ if (!Subtarget->hasLongLong ())
4206
+ CISA_CALL (Kernel->CreateVISAGenVar (Sp, " Sp" , 1 , ISA_TYPE_UD, ALIGN_DWORD, Sp));
4205
4207
4206
4208
VISA_VectorOpnd *SpSrc = nullptr ;
4207
4209
CISA_CALL (
@@ -5208,6 +5210,11 @@ void GenXKernelBuilder::beginFunction(Function *Func) {
5208
5210
VISA_GenVar *Sp = nullptr , *Fp = nullptr , *Hwtid = nullptr ;
5209
5211
CISA_CALL (Kernel->GetPredefinedVar (Sp, PREDEFINED_FE_SP));
5210
5212
CISA_CALL (Kernel->GetPredefinedVar (Fp, PREDEFINED_FE_FP));
5213
+ // TODO: consider removing the if for local stack
5214
+ if (!Subtarget->hasLongLong ()) {
5215
+ CISA_CALL (Kernel->CreateVISAGenVar (Sp, " Sp" , 1 , ISA_TYPE_UD, ALIGN_DWORD, Sp));
5216
+ CISA_CALL (Kernel->CreateVISAGenVar (Fp, " Fp" , 1 , ISA_TYPE_UD, ALIGN_DWORD, Fp));
5217
+ }
5211
5218
CISA_CALL (Kernel->GetPredefinedVar (Hwtid, PREDEFINED_HW_TID));
5212
5219
5213
5220
VISA_VectorOpnd *SpOpSrc = nullptr ;
@@ -5248,8 +5255,9 @@ void GenXKernelBuilder::beginFunction(Function *Func) {
5248
5255
EXEC_SIZE_1, SpOpDst, HwtidOp, Imm));
5249
5256
} else {
5250
5257
VISA_GenVar *Tmp = nullptr ;
5251
- CISA_CALL (
5252
- Kernel->CreateVISAGenVar (Tmp, " SpOff" , 1 , ISA_TYPE_UQ, ALIGN_DWORD));
5258
+ CISA_CALL (Kernel->CreateVISAGenVar (
5259
+ Tmp, " SpOff" , 1 , Subtarget->hasLongLong () ? ISA_TYPE_UQ : ISA_TYPE_UD,
5260
+ ALIGN_DWORD));
5253
5261
5254
5262
VISA_VectorOpnd *OffOpDst = nullptr ;
5255
5263
VISA_VectorOpnd *OffOpSrc = nullptr ;
@@ -5300,7 +5308,7 @@ void GenXKernelBuilder::beginFunction(Function *Func) {
5300
5308
5301
5309
if (FPMap.count (Func) == 0 ) {
5302
5310
CISA_CALL (
5303
- Kernel->CreateVISAGenVar (FpTmp, " tmp" , 1 , ISA_TYPE_UD , ALIGN_DWORD));
5311
+ Kernel->CreateVISAGenVar (FpTmp, " tmp" , 1 , ISA_TYPE_UQ , ALIGN_DWORD));
5304
5312
FPMap.insert (std::pair<Function *, VISA_GenVar *>(Func, FpTmp));
5305
5313
} else
5306
5314
FpTmp = FPMap[Func];
0 commit comments