@@ -2573,8 +2573,8 @@ namespace LFortran {
2573
2573
llvm::Module& module ) {
2574
2574
llvm::AllocaInst *is_equal = builder->CreateAlloca (llvm::Type::getInt1Ty (context), nullptr );
2575
2575
LLVM::CreateStore (*builder, llvm::ConstantInt::get (context, llvm::APInt (1 , 1 )), is_equal);
2576
- llvm::Value *a_len = len (l1);
2577
- llvm::Value *b_len = len (l2);
2576
+ llvm::Value *a_len = llvm_utils-> list_api -> len (l1);
2577
+ llvm::Value *b_len = llvm_utils-> list_api -> len (l2);
2578
2578
llvm::Value *cond = builder->CreateICmpEQ (a_len, b_len);
2579
2579
llvm::Function *fn = builder->GetInsertBlock ()->getParent ();
2580
2580
llvm::BasicBlock *thenBB = llvm::BasicBlock::Create (context, " then" , fn);
@@ -2591,17 +2591,17 @@ namespace LFortran {
2591
2591
llvm_utils->start_new_block (loophead);
2592
2592
{
2593
2593
llvm::Value* i = LLVM::CreateLoad (*builder, idx);
2594
- cond = builder->CreateICmpNE (i, a_len);
2595
- builder->CreateCondBr (cond , loopbody, loopend);
2594
+ llvm::Value* cnd = builder->CreateICmpSLT (i, a_len);
2595
+ builder->CreateCondBr (cnd , loopbody, loopend);
2596
2596
}
2597
2597
2598
2598
// body
2599
2599
llvm_utils->start_new_block (loopbody);
2600
2600
{
2601
2601
llvm::Value* i = LLVM::CreateLoad (*builder, idx);
2602
- llvm::Value* left_arg = read_item (l1, i,
2602
+ llvm::Value* left_arg = llvm_utils-> list_api -> read_item (l1, i,
2603
2603
false , module , LLVM::is_llvm_struct (item_type));
2604
- llvm::Value* right_arg = read_item (l2, i,
2604
+ llvm::Value* right_arg = llvm_utils-> list_api -> read_item (l2, i,
2605
2605
false , module , LLVM::is_llvm_struct (item_type));
2606
2606
llvm::Value* res = llvm_utils->is_equal_by_value (left_arg, right_arg, module ,
2607
2607
item_type);
0 commit comments