@@ -1653,8 +1653,11 @@ class ASRToLLVMVisitor : public ASR::BaseVisitor<ASRToLLVMVisitor>
16531653        this ->visit_expr (*x.m_left );
16541654        llvm::Value *left = tmp;
16551655        ptr_loads = ptr_loads_copy;
1656+         llvm::Value *capacity = LLVM::CreateLoad (*builder,
1657+             llvm_utils->dict_api ->get_pointer_to_capacity (right));
1658+         llvm::Value *key_hash = llvm_utils->dict_api ->get_key_hash (capacity, left, dict_type->m_key_type , *module );
16561659
1657-         tmp = llvm_utils->dict_api ->is_key_present (right, left, dict_type , *module );
1660+         tmp = llvm_utils->dict_api ->resolve_collision_for_read_with_bound_check (right, key_hash, left , *module , dict_type-> m_key_type , dict_type-> m_value_type ,  true );
16581661    }
16591662
16601663    void  visit_SetContains (const  ASR::SetContains_t &x) {
@@ -1672,8 +1675,11 @@ class ASRToLLVMVisitor : public ASR::BaseVisitor<ASRToLLVMVisitor>
16721675        this ->visit_expr (*x.m_left );
16731676        llvm::Value *left = tmp;
16741677        ptr_loads = ptr_loads_copy;
1678+         llvm::Value *capacity = LLVM::CreateLoad (*builder,
1679+             llvm_utils->set_api ->get_pointer_to_capacity (right));
1680+         llvm::Value *el_hash = llvm_utils->set_api ->get_el_hash (capacity, left, el_type, *module );
16751681
1676-         tmp = llvm_utils->set_api ->is_el_present (right, left, *module , el_type);
1682+         tmp = llvm_utils->set_api ->resolve_collision_for_read_with_bound_check (right, el_hash,  left, *module , el_type,  false ,  true );
16771683    }
16781684
16791685    void  visit_DictLen (const  ASR::DictLen_t& x) {
0 commit comments