@@ -3393,8 +3393,13 @@ namespace LCompilers {
33933393 module , key_asr_type, true );
33943394 }
33953395 llvm_utils->start_new_block (mergeBB);
3396- llvm::Value *flag = LLVM::CreateLoad (*builder, flag_ptr);
33973396 llvm::Value *pos = LLVM::CreateLoad (*builder, pos_ptr);
3397+ llvm::Value* pos_mask_value = LLVM::CreateLoad (*builder,
3398+ llvm_utils->create_ptr_gep (key_mask, pos));
3399+ llvm::Value *flag = builder->CreateOr (
3400+ builder->CreateICmpEQ (pos_mask_value,
3401+ llvm::ConstantInt::get (llvm::Type::getInt8Ty (context), llvm::APInt (8 , 0 ))),
3402+ LLVM::CreateLoad (*builder, flag_ptr));
33983403 llvm::AllocaInst *is_key_matching_ptr = builder0.CreateAlloca (llvm::Type::getInt1Ty (context), nullptr );
33993404
34003405 llvm_utils->create_if_else (flag, [&](){
@@ -6783,14 +6788,20 @@ namespace LCompilers {
67836788 module , el_asr_type, true );
67846789 }
67856790 llvm_utils->start_new_block (mergeBB);
6786- llvm::Value *flag = LLVM::CreateLoad (*builder, flag_ptr);
6791+
6792+ llvm::Value* pos = LLVM::CreateLoad (*builder, pos_ptr);
6793+ llvm::Value* pos_mask_value = LLVM::CreateLoad (*builder,
6794+ llvm_utils->create_ptr_gep (el_mask, pos));
6795+ llvm::Value *flag = builder->CreateOr (
6796+ builder->CreateICmpEQ (pos_mask_value,
6797+ llvm::ConstantInt::get (llvm::Type::getInt8Ty (context), llvm::APInt (8 , 0 ))),
6798+ LLVM::CreateLoad (*builder, flag_ptr));
67876799 llvm::AllocaInst *is_el_matching_ptr = builder0.CreateAlloca (llvm::Type::getInt1Ty (context), nullptr );
67886800
67896801 llvm_utils->create_if_else (flag, [&](){
67906802 LLVM::CreateStore (*builder, llvm::ConstantInt::get (llvm::Type::getInt1Ty (context), 0 ), is_el_matching_ptr);
67916803 }, [&](){
67926804 // Check if the actual element is present or not
6793- llvm::Value* pos = LLVM::CreateLoad (*builder, pos_ptr);
67946805 llvm::Value* item = llvm_utils->list_api ->read_item (el_list, pos, false , module ,
67956806 LLVM::is_llvm_struct (el_asr_type)) ;
67966807 llvm::Value *iseq =llvm_utils->is_equal_by_value (el,
0 commit comments