diff --git a/bench/abc/optimized/ac_wrapper.cpp.ll b/bench/abc/optimized/ac_wrapper.cpp.ll index feffb9ed27e..4bf400e0c71 100644 --- a/bench/abc/optimized/ac_wrapper.cpp.ll +++ b/bench/abc/optimized/ac_wrapper.cpp.ll @@ -1860,7 +1860,7 @@ define linkonce_odr noundef i32 @_ZNSt17_Function_handlerIFjRKN5kitty18static_tr br i1 %exitcond24.not.i.i.i.i, label %_ZSt10__invoke_rIjRZN3acd21ac_decomposition_impl18find_decompositionERjjEUlRKN5kitty18static_truth_tableILj10EEEE_JS7_EENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESB_E4typeEOSC_DpOSD_.exit, label %.preheader.i.i.i.i, !llvm.loop !32 _ZSt10__invoke_rIjRZN3acd21ac_decomposition_impl18find_decompositionERjjEUlRKN5kitty18static_truth_tableILj10EEEE_JS7_EENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESB_E4typeEOSC_DpOSD_.exit: ; preds = %18 - %21 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %15) + %21 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %15) %22 = trunc nuw nsw i64 %21 to i32 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %3) ret i32 %22 @@ -1935,7 +1935,7 @@ define linkonce_odr noundef i32 @_ZNSt17_Function_handlerIFjRKN5kitty18static_tr br i1 %exitcond24.not.i.i.i.i, label %_ZSt10__invoke_rIjRZN3acd21ac_decomposition_impl18find_decompositionERjjEUlRKN5kitty18static_truth_tableILj10EEEE0_JS7_EENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESB_E4typeEOSC_DpOSD_.exit, label %.preheader.i.i.i.i, !llvm.loop !34 _ZSt10__invoke_rIjRZN3acd21ac_decomposition_impl18find_decompositionERjjEUlRKN5kitty18static_truth_tableILj10EEEE0_JS7_EENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESB_E4typeEOSC_DpOSD_.exit: ; preds = %18 - %21 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %15) + %21 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %15) %22 = trunc nuw nsw i64 %21 to i32 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %3) ret i32 %22 diff --git a/bench/abc/optimized/aigPack.c.ll b/bench/abc/optimized/aigPack.c.ll index 8a24b20da03..34c54544214 100644 --- a/bench/abc/optimized/aigPack.c.ll +++ b/bench/abc/optimized/aigPack.c.ll @@ -797,7 +797,7 @@ define noalias noundef ptr @Aig_ManPackConstNodes(ptr nocapture noundef readonly ] 31: ; preds = %24 - %32 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %30) + %32 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %30) %33 = add nsw i64 %32, -2 %or.cond = icmp ult i64 %33, 61 br i1 %or.cond, label %62, label %34 diff --git a/bench/abc/optimized/dauDsd.c.ll b/bench/abc/optimized/dauDsd.c.ll index 787692a0e74..108890e9d05 100644 --- a/bench/abc/optimized/dauDsd.c.ll +++ b/bench/abc/optimized/dauDsd.c.ll @@ -5053,14 +5053,14 @@ Dau_Dsd6DecomposeTripleVarsOuter.exit: ; preds = %Dau_DsdTranslate.ex %180 = xor i32 %.018.lcssa.i, -1 %181 = lshr i32 %180, 1 %182 = and i32 %94, %181 - %183 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %182) + %183 = call range(i32 1, 17) i32 @llvm.ctpop.i32(i32 %182) %or.cond.not = icmp eq i32 %183, 1 br i1 %or.cond.not, label %184, label %Abc_TtSuppOnlyOne.exit.thread 184: ; preds = %179 %185 = and i32 %180, 1431655765 %186 = and i32 %185, %93 - %187 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %186) + %187 = call range(i32 1, 17) i32 @llvm.ctpop.i32(i32 %186) %or.cond79.not = icmp eq i32 %187, 1 br i1 %or.cond79.not, label %188, label %Abc_TtSuppOnlyOne.exit.thread @@ -10023,14 +10023,14 @@ Dau_DsdDecomposeTripleVarsOuter.exit: ; preds = %.lr.ph18.preheader. %503 = xor i32 %.1.i, -1 %504 = lshr i32 %503, 1 %505 = and i32 %372, %504 - %506 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %505) + %506 = call range(i32 1, 17) i32 @llvm.ctpop.i32(i32 %505) %or.cond239.not = icmp eq i32 %506, 1 br i1 %or.cond239.not, label %507, label %Abc_TtSuppOnlyOne.exit.thread 507: ; preds = %502 %508 = and i32 %503, 1431655765 %509 = and i32 %508, %371 - %510 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %509) + %510 = call range(i32 1, 17) i32 @llvm.ctpop.i32(i32 %509) %or.cond241.not = icmp eq i32 %510, 1 br i1 %or.cond241.not, label %511, label %Abc_TtSuppOnlyOne.exit.thread diff --git a/bench/abc/optimized/giaEra2.c.ll b/bench/abc/optimized/giaEra2.c.ll index 48f9e570260..fed264caad3 100644 --- a/bench/abc/optimized/giaEra2.c.ll +++ b/bench/abc/optimized/giaEra2.c.ll @@ -2085,7 +2085,7 @@ define internal fastcc range(i32 0, 2) i32 @Gia_ManAreCubeCheckList(ptr nocaptur br i1 %82, label %94, label %83 83: ; preds = %.lr.ph.i70 - %84 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %81) + %84 = tail call range(i32 1, 17) i32 @llvm.ctpop.i32(i32 %81) %85 = icmp ugt i32 %84, 1 %86 = icmp sgt i32 %.021.i, -1 %or.cond.i = select i1 %85, i1 true, i1 %86 @@ -3332,7 +3332,7 @@ tailrecurse: ; preds = %tailrecurse.backedg br i1 %102, label %114, label %103 103: ; preds = %.lr.ph.i110 - %104 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %101) + %104 = tail call range(i32 1, 17) i32 @llvm.ctpop.i32(i32 %101) %105 = icmp ugt i32 %104, 1 %106 = icmp sgt i32 %.021.i, -1 %or.cond.i = select i1 %105, i1 true, i1 %106 @@ -3543,7 +3543,7 @@ Gia_StaAreDisjoint.exit: ; preds = %48, %103, %Gia_StaA br i1 %210, label %222, label %211 211: ; preds = %.lr.ph.i143 - %212 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %209) + %212 = tail call range(i32 1, 17) i32 @llvm.ctpop.i32(i32 %209) %213 = icmp ugt i32 %212, 1 %214 = icmp sgt i32 %.021.i146, -1 %or.cond.i147 = select i1 %213, i1 true, i1 %214 diff --git a/bench/cpython/optimized/obmalloc.ll b/bench/cpython/optimized/obmalloc.ll index 249b95cb5be..017dc368957 100644 --- a/bench/cpython/optimized/obmalloc.ll +++ b/bench/cpython/optimized/obmalloc.ll @@ -4669,7 +4669,7 @@ return: ; preds = %mi_malloc.exit.thre define hidden noalias ptr @mi_new_aligned(i64 noundef %size, i64 noundef %alignment) local_unnamed_addr #0 { entry: %0 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_mi_heap_default) - %1 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %1 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %or.cond.not.i.i = icmp eq i64 %1, 1 %sub.i.i.i.i.i.i = add nuw nsw i64 %size, 7 %div1.i.i.i.i.i.i = lshr i64 %sub.i.i.i.i.i.i, 3 @@ -4773,7 +4773,7 @@ define hidden noalias ptr @mi_malloc_aligned(i64 noundef %size, i64 noundef %ali entry: %0 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_mi_heap_default) %1 = load ptr, ptr %0, align 8 - %2 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %2 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %or.cond.not.i = icmp eq i64 %2, 1 br i1 %or.cond.not.i, label %if.end.i, label %mi_heap_malloc_aligned.exit @@ -4824,7 +4824,7 @@ mi_heap_malloc_aligned.exit: ; preds = %entry, %if.then.i.i define hidden noalias ptr @mi_new_aligned_nothrow(i64 noundef %size, i64 noundef %alignment) local_unnamed_addr #0 { entry: %0 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_mi_heap_default) - %1 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %1 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %or.cond.not.i.i = icmp eq i64 %1, 1 %sub.i.i.i.i.i.i = add nuw nsw i64 %size, 7 %div1.i.i.i.i.i.i = lshr i64 %sub.i.i.i.i.i.i, 3 @@ -5023,7 +5023,7 @@ entry: br i1 %cmp, label %return, label %lor.rhs lor.rhs: ; preds = %entry - %0 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %0 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %cmp.i = icmp ugt i64 %0, 1 %cmp3 = icmp slt i64 %size, 0 %or.cond = or i1 %cmp3, %cmp.i @@ -5353,7 +5353,7 @@ return: ; preds = %mi_usable_size.exit ; Function Attrs: nounwind uwtable define hidden noalias ptr @mi_heap_malloc_aligned(ptr noundef %heap, i64 noundef %size, i64 noundef %alignment) local_unnamed_addr #0 { entry: - %0 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %0 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %or.cond.not = icmp eq i64 %0, 1 br i1 %or.cond.not, label %if.end, label %return @@ -6401,11 +6401,15 @@ entry: %0 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) %cmp.i = icmp ult i64 %0, 2 %or.cond14 = select i1 %or.cond8.not16, i1 %cmp.i, i1 false - br i1 %or.cond14, label %if.end.i.i, label %return + br i1 %or.cond14, label %if.end6, label %return -if.end.i.i: ; preds = %entry +if.end6: ; preds = %entry %1 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_mi_heap_default) %2 = load ptr, ptr %1, align 8 + %or.cond.not.i.i = icmp eq i64 %0, 1 + br i1 %or.cond.not.i.i, label %if.end.i.i, label %mi_malloc_aligned.exit + +if.end.i.i: ; preds = %if.end6 %3 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %size) %cmp.i10.i.i = icmp ult i64 %3, 2 %cmp5.not.i.i = icmp uge i64 %size, %alignment @@ -6443,8 +6447,8 @@ if.else.i.i: ; preds = %if.end.i.i %call.i.i.i = tail call fastcc noalias ptr @mi_heap_malloc_zero_aligned_at(ptr noundef %2, i64 noundef %size, i64 noundef %alignment, i64 noundef 0, i1 noundef zeroext false) br label %mi_malloc_aligned.exit -mi_malloc_aligned.exit: ; preds = %if.then.i.i.i.i.i, %if.else.i.i - %retval.0.i.i = phi ptr [ %call.i.i.i, %if.else.i.i ], [ %call.i.i.i.i.i, %if.then.i.i.i.i.i ] +mi_malloc_aligned.exit: ; preds = %if.end6, %if.then.i.i.i.i.i, %if.else.i.i + %retval.0.i.i = phi ptr [ %call.i.i.i, %if.else.i.i ], [ null, %if.end6 ], [ %call.i.i.i.i.i, %if.then.i.i.i.i.i ] %cmp8 = icmp eq ptr %retval.0.i.i, null %cmp9 = icmp ne i64 %size, 0 %or.cond = and i1 %cmp9, %cmp8 @@ -6465,7 +6469,7 @@ define hidden noalias ptr @mi_memalign(i64 noundef %alignment, i64 noundef %size entry: %0 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_mi_heap_default) %1 = load ptr, ptr %0, align 8 - %2 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %2 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %or.cond.not.i.i = icmp eq i64 %2, 1 br i1 %or.cond.not.i.i, label %if.end.i.i, label %mi_malloc_aligned.exit @@ -6518,7 +6522,7 @@ entry: %0 = load i64, ptr @mi_os_mem_config.0, align 8 %1 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_mi_heap_default) %2 = load ptr, ptr %1, align 8 - %3 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %0) + %3 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %0) %or.cond.not.i.i.i = icmp eq i64 %3, 1 br i1 %or.cond.not.i.i.i, label %if.end.i.i.i, label %mi_memalign.exit @@ -6643,7 +6647,7 @@ define hidden noalias ptr @mi_aligned_alloc(i64 noundef %alignment, i64 noundef entry: %0 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_mi_heap_default) %1 = load ptr, ptr %0, align 8 - %2 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %2 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %or.cond.not.i.i = icmp eq i64 %2, 1 br i1 %or.cond.not.i.i, label %if.end.i.i, label %mi_malloc_aligned.exit @@ -22889,7 +22893,7 @@ _mi_segment_page_start.exit.i: ; preds = %if.else.i.i.i, %if. if.then7.i: ; preds = %_mi_segment_page_start.exit.i %6 = ptrtoint ptr %add.ptr.i.i.i to i64 %sub.i.i = add i64 %spec.store.select, -1 - %7 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %spec.store.select) + %7 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %spec.store.select) %cmp.i.i = icmp ult i64 %7, 2 %add.i.i = add i64 %sub.i.i, %6 br i1 %cmp.i.i, label %if.then.i.i, label %if.else.i.i @@ -23002,7 +23006,7 @@ land.lhs.true.i: ; preds = %_mi_segment_page_st if.then7.i51: ; preds = %land.lhs.true.i %15 = ptrtoint ptr %add.ptr.i.i.i45 to i64 %sub.i.i52 = add nsw i64 %page_alignment, -1 - %16 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %page_alignment) + %16 = tail call range(i64 1, 26) i64 @llvm.ctpop.i64(i64 %page_alignment) %cmp.i.i53 = icmp ult i64 %16, 2 %add.i.i54 = add i64 %sub.i.i52, %15 br i1 %cmp.i.i53, label %if.then.i.i63, label %if.else.i.i55 diff --git a/bench/duckdb/optimized/ub_duckdb_func_string.cpp.ll b/bench/duckdb/optimized/ub_duckdb_func_string.cpp.ll index a536434b667..1adf2214462 100644 --- a/bench/duckdb/optimized/ub_duckdb_func_string.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_func_string.cpp.ll @@ -56219,10 +56219,10 @@ for.body.i29.i.i.i.epil: ; preds = %"_ZZN6duckdbL15Jacc %24 = load <4 x i64>, ptr %ref.tmp10.i.i.i, align 8 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp10.i.i.i) #22 %25 = and <4 x i64> %24, %16 - %26 = tail call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %25), !range !1381 + %26 = tail call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %25), !range !1381 %27 = tail call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %26) %28 = or <4 x i64> %24, %16 - %29 = tail call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %28), !range !1381 + %29 = tail call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %28), !range !1381 %30 = tail call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %29) %conv.i.i.i = uitofp i64 %27 to double %conv15.i.i.i = uitofp i64 %30 to double @@ -59433,7 +59433,7 @@ _ZNK19duckdb_jaro_winkler6common23BlockPatternMatchVector3getIcEEmT_.exit106.i: _ZN19duckdb_jaro_winkler6detailL28flag_similar_characters_wordINS_6common23BlockPatternMatchVectorEN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEES7_EENS0_16FlaggedCharsWordERKT_T0_SJ_T1_SK_i.exit: ; preds = %_ZNK19duckdb_jaro_winkler6common23BlockPatternMatchVector3getIcEEmT_.exit106.i, %for.cond17.preheader.i %retval.sroa.8.1.lcssa.i = phi i64 [ %retval.sroa.8.0.lcssa.i, %for.cond17.preheader.i ], [ %or34.i, %_ZNK19duckdb_jaro_winkler6common23BlockPatternMatchVector3getIcEEmT_.exit106.i ] %retval.sroa.0.1.lcssa.i = phi i64 [ %retval.sroa.0.0.lcssa.i, %for.cond17.preheader.i ], [ %or29.i, %_ZNK19duckdb_jaro_winkler6common23BlockPatternMatchVector3getIcEEmT_.exit106.i ] - %24 = tail call noundef i64 @llvm.ctpop.i64(i64 %retval.sroa.0.1.lcssa.i), !range !1381 + %24 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %retval.sroa.0.1.lcssa.i), !range !1381 %tobool.not.i = icmp eq i64 %retval.sroa.0.1.lcssa.i, 0 br i1 %tobool.not.i, label %cleanup69, label %_ZN19duckdb_jaro_winkler6detailL23jaro_common_char_filterEllld.exit @@ -59751,8 +59751,8 @@ vector.body: ; preds = %vector.body, %vecto %48 = getelementptr i8, ptr %next.gep, i64 16 %wide.load = load <2 x i64>, ptr %next.gep, align 8, !tbaa !68 %wide.load355 = load <2 x i64>, ptr %48, align 8, !tbaa !68 - %49 = tail call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load), !range !1381 - %50 = tail call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load355), !range !1381 + %49 = tail call range(i64 0, 65) <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load), !range !1381 + %50 = tail call range(i64 0, 65) <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load355), !range !1381 %51 = add <2 x i64> %49, %vec.phi %52 = add <2 x i64> %50, %vec.phi353 %index.next = add nuw i64 %index, 4 @@ -59791,8 +59791,8 @@ vector.body365: ; preds = %vector.body365, %ve %59 = getelementptr i8, ptr %next.gep370, i64 16 %wide.load372 = load <2 x i64>, ptr %next.gep370, align 8, !tbaa !68 %wide.load373 = load <2 x i64>, ptr %59, align 8, !tbaa !68 - %60 = tail call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load372), !range !1381 - %61 = tail call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load373), !range !1381 + %60 = tail call range(i64 0, 65) <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load372), !range !1381 + %61 = tail call range(i64 0, 65) <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load373), !range !1381 %62 = add <2 x i64> %60, %vec.phi367 %63 = add <2 x i64> %61, %vec.phi368 %index.next374 = add nuw i64 %index366, 4 @@ -59815,7 +59815,7 @@ for.body.i211: ; preds = %for.body.i211.prehe %CommonChars.055.i = phi i64 [ %add.i212, %for.body.i211 ], [ %CommonChars.055.i.ph, %for.body.i211.preheader42 ] %__begin3.sroa.0.054.i = phi ptr [ %incdec.ptr.i.i, %for.body.i211 ], [ %__begin3.sroa.0.054.i.ph, %for.body.i211.preheader42 ] %66 = load i64, ptr %__begin3.sroa.0.054.i, align 8, !tbaa !68 - %67 = tail call noundef i64 @llvm.ctpop.i64(i64 %66), !range !1381 + %67 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %66), !range !1381 %add.i212 = add nuw nsw i64 %67, %CommonChars.055.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__begin3.sroa.0.054.i, i64 8 %cmp.i.not.i = icmp eq ptr %incdec.ptr.i.i, %.pre @@ -59825,7 +59825,7 @@ for.body21.i: ; preds = %for.body21.i.prehea %CommonChars.152.i = phi i64 [ %add25.i, %for.body21.i ], [ %CommonChars.152.i.ph, %for.body21.i.preheader45 ] %__begin312.sroa.0.051.i = phi ptr [ %incdec.ptr.i44.i, %for.body21.i ], [ %__begin312.sroa.0.051.i.ph, %for.body21.i.preheader45 ] %68 = load i64, ptr %__begin312.sroa.0.051.i, align 8, !tbaa !68 - %69 = tail call noundef i64 @llvm.ctpop.i64(i64 %68), !range !1381 + %69 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %68), !range !1381 %add25.i = add nuw nsw i64 %69, %CommonChars.152.i %incdec.ptr.i44.i = getelementptr inbounds i8, ptr %__begin312.sroa.0.051.i, i64 8 %cmp.i43.not.i = icmp eq ptr %incdec.ptr.i44.i, %.pre344 @@ -60906,7 +60906,7 @@ _ZNK19duckdb_jaro_winkler6common18PatternMatchVector3getIcEEmT_.exit105.i: ; pre _ZN19duckdb_jaro_winkler6detailL28flag_similar_characters_wordINS_6common18PatternMatchVectorEPKcS5_EENS0_16FlaggedCharsWordERKT_T0_SA_T1_SB_i.exit: ; preds = %_ZNK19duckdb_jaro_winkler6common18PatternMatchVector3getIcEEmT_.exit105.i, %for.cond13.preheader.i %retval.sroa.8.1.lcssa.i = phi i64 [ %retval.sroa.8.0.lcssa.i, %for.cond13.preheader.i ], [ %or30.i, %_ZNK19duckdb_jaro_winkler6common18PatternMatchVector3getIcEEmT_.exit105.i ] %retval.sroa.0.1.lcssa.i = phi i64 [ %retval.sroa.0.0.lcssa.i, %for.cond13.preheader.i ], [ %or25.i, %_ZNK19duckdb_jaro_winkler6common18PatternMatchVector3getIcEEmT_.exit105.i ] - %27 = tail call noundef i64 @llvm.ctpop.i64(i64 %retval.sroa.0.1.lcssa.i), !range !1381 + %27 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %retval.sroa.0.1.lcssa.i), !range !1381 %add = add nuw nsw i64 %27, %prefix.0.lcssa.i %tobool.not.i = icmp eq i64 %add, 0 br i1 %tobool.not.i, label %cleanup.thread, label %_ZN19duckdb_jaro_winkler6detailL23jaro_common_char_filterEllld.exit @@ -61262,8 +61262,8 @@ vector.body: ; preds = %vector.body, %vecto %49 = getelementptr i8, ptr %next.gep, i64 16 %wide.load = load <2 x i64>, ptr %next.gep, align 8, !tbaa !68 %wide.load441 = load <2 x i64>, ptr %49, align 8, !tbaa !68 - %50 = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load), !range !1381 - %51 = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load441), !range !1381 + %50 = call range(i64 0, 65) <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load), !range !1381 + %51 = call range(i64 0, 65) <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load441), !range !1381 %52 = add <2 x i64> %50, %vec.phi %53 = add <2 x i64> %51, %vec.phi439 %index.next = add nuw i64 %index, 4 @@ -61302,8 +61302,8 @@ vector.body451: ; preds = %vector.body451, %ve %60 = getelementptr i8, ptr %next.gep456, i64 16 %wide.load458 = load <2 x i64>, ptr %next.gep456, align 8, !tbaa !68 %wide.load459 = load <2 x i64>, ptr %60, align 8, !tbaa !68 - %61 = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load458), !range !1381 - %62 = call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load459), !range !1381 + %61 = call range(i64 0, 65) <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load458), !range !1381 + %62 = call range(i64 0, 65) <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %wide.load459), !range !1381 %63 = add <2 x i64> %61, %vec.phi453 %64 = add <2 x i64> %62, %vec.phi454 %index.next460 = add nuw i64 %index452, 4 @@ -61326,7 +61326,7 @@ for.body.i236: ; preds = %for.body.i236.prehe %CommonChars.055.i = phi i64 [ %add.i237, %for.body.i236 ], [ %CommonChars.055.i.ph, %for.body.i236.preheader51 ] %__begin3.sroa.0.054.i = phi ptr [ %incdec.ptr.i.i, %for.body.i236 ], [ %__begin3.sroa.0.054.i.ph, %for.body.i236.preheader51 ] %67 = load i64, ptr %__begin3.sroa.0.054.i, align 8, !tbaa !68 - %68 = call noundef i64 @llvm.ctpop.i64(i64 %67), !range !1381 + %68 = call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %67), !range !1381 %add.i237 = add nuw nsw i64 %68, %CommonChars.055.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__begin3.sroa.0.054.i, i64 8 %cmp.i.not.i = icmp eq ptr %incdec.ptr.i.i, %.pre @@ -61336,7 +61336,7 @@ for.body21.i: ; preds = %for.body21.i.prehea %CommonChars.152.i = phi i64 [ %add25.i, %for.body21.i ], [ %CommonChars.152.i.ph, %for.body21.i.preheader54 ] %__begin312.sroa.0.051.i = phi ptr [ %incdec.ptr.i44.i, %for.body21.i ], [ %__begin312.sroa.0.051.i.ph, %for.body21.i.preheader54 ] %69 = load i64, ptr %__begin312.sroa.0.051.i, align 8, !tbaa !68 - %70 = call noundef i64 @llvm.ctpop.i64(i64 %69), !range !1381 + %70 = call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %69), !range !1381 %add25.i = add nuw nsw i64 %70, %CommonChars.152.i %incdec.ptr.i44.i = getelementptr inbounds i8, ptr %__begin312.sroa.0.051.i, i64 8 %cmp.i43.not.i = icmp eq ptr %incdec.ptr.i44.i, %.pre429 diff --git a/bench/harfbuzz/optimized/harfbuzz.cc.ll b/bench/harfbuzz/optimized/harfbuzz.cc.ll index a50b8d75436..edcae456a3f 100644 --- a/bench/harfbuzz/optimized/harfbuzz.cc.ll +++ b/bench/harfbuzz/optimized/harfbuzz.cc.ll @@ -170935,14 +170935,14 @@ _ZNK2OT7ArrayOfINS_8OffsetToINS_6Layout9GPOS_impl7PairSetINS2_10SmallTypesEEENS_ %10 = load i8, ptr %arrayidx3.i.i.i.i.i15, align 1 %conv4.i.i.i.i.i16 = zext i8 %10 to i32 %add.i.i.i.i.i17 = or disjoint i32 %shl.i.i.i.i.i14, %conv4.i.i.i.i.i16 - %11 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i17) + %11 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i17) %12 = load i8, ptr %arrayidx1.i.i, align 1 %conv.i.i.i2.i.i = zext i8 %12 to i32 %shl.i.i.i3.i.i = shl nuw nsw i32 %conv.i.i.i2.i.i, 8 %13 = load i8, ptr %arrayidx3.i.i.i4.i.i, align 1 %conv4.i.i.i5.i.i = zext i8 %13 to i32 %add.i.i.i6.i.i = or disjoint i32 %shl.i.i.i3.i.i, %conv4.i.i.i5.i.i - %14 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i6.i.i) + %14 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i6.i.i) %add.i.i.i18 = add nuw nsw i32 %14, %11 %mul.i.i.i = shl nuw nsw i32 %add.i.i.i18, 1 %add1.i.i.i = add nuw nsw i32 %mul.i.i.i, 2 @@ -196343,7 +196343,7 @@ land.rhs: ; preds = %_ZNK2OT6Layout6Comm %21 = load i8, ptr %arrayidx3.i.i.i.i.i30, align 1 %conv4.i.i.i.i.i31 = zext i8 %21 to i32 %add.i.i.i.i.i32 = or disjoint i32 %shl.i.i.i.i.i29, %conv4.i.i.i.i.i31 - %22 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i32) + %22 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i32) %mul.i.i = shl nuw nsw i32 %22, 1 %23 = load ptr, ptr %start.i.i, align 8 %sub.ptr.rhs.cast.i.i35 = ptrtoint ptr %23 to i64 @@ -197017,7 +197017,7 @@ land.rhs: ; preds = %land.lhs.true.i, %l %9 = load i8, ptr %arrayidx3.i.i.i.i.i, align 1 %conv4.i.i.i.i.i = zext i8 %9 to i32 %add.i.i.i.i.i = or disjoint i32 %shl.i.i.i.i.i, %conv4.i.i.i.i.i - %10 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i) + %10 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i) %mul.i.i = shl nuw nsw i32 %10, 1 %11 = mul nuw nsw i32 %mul.i.i, %add.i.i17 %12 = load ptr, ptr %start.i.i, align 8 @@ -197104,7 +197104,7 @@ if.end: ; preds = %entry %3 = load i8, ptr %arrayidx3.i.i.i, align 1 %conv4.i.i.i = zext i8 %3 to i32 %add.i.i.i = or disjoint i32 %shl.i.i.i, %conv4.i.i.i - %4 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i) + %4 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i) %arrayidx6 = getelementptr inbounds i8, ptr %this, i64 6 %5 = load i8, ptr %arrayidx6, align 1 %conv.i.i.i13 = zext i8 %5 to i32 @@ -197113,7 +197113,7 @@ if.end: ; preds = %entry %6 = load i8, ptr %arrayidx3.i.i.i15, align 1 %conv4.i.i.i16 = zext i8 %6 to i32 %add.i.i.i17 = or disjoint i32 %shl.i.i.i14, %conv4.i.i.i16 - %7 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i17) + %7 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i17) store ptr %valueFormat, ptr %closure, align 8 %len19 = getelementptr inbounds i8, ptr %closure, i64 8 store i32 %4, ptr %len19, align 8 @@ -197588,7 +197588,7 @@ if.end: ; preds = %land.lhs.true.i, %l %19 = load i8, ptr %arrayidx3.i.i.i98, align 1 %conv4.i.i.i99 = zext i8 %19 to i32 %add.i.i.i100 = or disjoint i32 %shl.i.i.i97, %conv4.i.i.i99 - %20 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i100) + %20 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i100) %valueFormat2 = getelementptr inbounds i8, ptr %this, i64 6 %21 = load i8, ptr %valueFormat2, align 1 %conv.i.i.i101 = zext i8 %21 to i32 @@ -197597,7 +197597,7 @@ if.end: ; preds = %land.lhs.true.i, %l %22 = load i8, ptr %arrayidx3.i.i.i103, align 1 %conv4.i.i.i104 = zext i8 %22 to i32 %add.i.i.i105 = or disjoint i32 %shl.i.i.i102, %conv4.i.i.i104 - %23 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i105) + %23 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i105) %add = add nuw nsw i32 %23, %20 %mul = shl nuw nsw i32 %add, 1 %24 = load i8, ptr %add.ptr.i.i61, align 1 @@ -294977,7 +294977,7 @@ if.end19: ; preds = %if.then15, %if.end1 %13 = load i8, ptr %arrayidx3.i.i.i, align 1 %conv4.i.i.i = zext i8 %13 to i32 %add.i.i.i = or disjoint i32 %shl.i.i.i, %conv4.i.i.i - %14 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i) + %14 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i) %mul = mul nuw nsw i32 %14, %call4 %idxprom.i16 = zext nneg i32 %mul to i64 %arrayidx.i17 = getelementptr inbounds [1 x %"struct.OT::IntType"], ptr %values, i64 0, i64 %idxprom.i16 @@ -295330,7 +295330,7 @@ entry: %2 = load i8, ptr %arrayidx3.i.i.i, align 1 %conv4.i.i.i = zext i8 %2 to i32 %add.i.i.i = or disjoint i32 %shl.i.i.i, %conv4.i.i.i - %3 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i) + %3 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i) %arrayidx3 = getelementptr inbounds i8, ptr %valueFormats, i64 2 %4 = load i8, ptr %arrayidx3, align 1 %conv.i.i.i45 = zext i8 %4 to i32 @@ -295339,7 +295339,7 @@ entry: %5 = load i8, ptr %arrayidx3.i.i.i47, align 1 %conv4.i.i.i48 = zext i8 %5 to i32 %add.i.i.i49 = or disjoint i32 %shl.i.i.i46, %conv4.i.i.i48 - %6 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i49) + %6 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i49) %add.i = add nuw nsw i32 %6, %3 %mul.i = shl nuw nsw i32 %add.i, 1 %add1.i = add nuw nsw i32 %mul.i, 2 @@ -296212,7 +296212,7 @@ if.end39: ; preds = %lor.lhs.false %105 = load i8, ptr %arrayidx3.i.i.i261, align 1 %conv4.i.i.i262 = zext i8 %105 to i32 %add.i.i.i263 = or disjoint i32 %shl.i.i.i260, %conv4.i.i.i262 - %106 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i263) + %106 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i263) %valueFormat2 = getelementptr inbounds i8, ptr %this, i64 6 %107 = load i8, ptr %valueFormat2, align 1 %conv.i.i.i264 = zext i8 %107 to i32 @@ -296221,7 +296221,7 @@ if.end39: ; preds = %lor.lhs.false %108 = load i8, ptr %arrayidx3.i.i.i266, align 1 %conv4.i.i.i267 = zext i8 %108 to i32 %add.i.i.i268 = or disjoint i32 %shl.i.i.i265, %conv4.i.i.i267 - %109 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i268) + %109 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i268) %add42 = add nuw nsw i32 %109, %106 %values = getelementptr inbounds i8, ptr %this, i64 16 %mul = mul nuw i32 %add.i.i238, %retval.0.i197 @@ -303453,7 +303453,7 @@ if.end6.i: ; preds = %if.end.i %9 = load i8, ptr %arrayidx3.i.i.i.i, align 1 %conv4.i.i.i.i = zext i8 %9 to i32 %add.i.i.i.i = or disjoint i32 %shl.i.i.i.i, %conv4.i.i.i.i - %10 = call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i) + %10 = call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i) %mul.i = mul nuw nsw i32 %10, %call2.i %idxprom.i.i = zext nneg i32 %mul.i to i64 %arrayidx.i.i = getelementptr inbounds [1 x %"struct.OT::IntType"], ptr %values.i, i64 0, i64 %idxprom.i.i diff --git a/bench/harfbuzz/optimized/hb-subset.cc.ll b/bench/harfbuzz/optimized/hb-subset.cc.ll index af9f04c2e77..160af6e1db4 100644 --- a/bench/harfbuzz/optimized/hb-subset.cc.ll +++ b/bench/harfbuzz/optimized/hb-subset.cc.ll @@ -44107,7 +44107,7 @@ if.end.i5: ; preds = %sw.bb8 %17 = load i8, ptr %arrayidx3.i.i.i.i.i.i, align 1 %conv4.i.i.i.i.i.i = zext i8 %17 to i32 %add.i.i.i.i.i.i = or disjoint i32 %shl.i.i.i.i.i.i, %conv4.i.i.i.i.i.i - %18 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i.i) + %18 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i.i) %valueFormat2.i.i = getelementptr inbounds i8, ptr %this, i64 6 %19 = load i8, ptr %valueFormat2.i.i, align 1 %conv.i.i.i.i1.i.i = zext i8 %19 to i32 @@ -44116,7 +44116,7 @@ if.end.i5: ; preds = %sw.bb8 %20 = load i8, ptr %arrayidx3.i.i.i.i3.i.i, align 1 %conv4.i.i.i.i4.i.i = zext i8 %20 to i32 %add.i.i.i.i5.i.i = or disjoint i32 %shl.i.i.i.i2.i.i, %conv4.i.i.i.i4.i.i - %21 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i5.i.i) + %21 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i5.i.i) %mul.i7.i.i = add nuw nsw i32 %21, %18 %add.i.i9 = shl nuw nsw i32 %mul.i7.i.i, 1 %conv4.i.i10 = zext nneg i32 %add.i.i9 to i64 @@ -44797,7 +44797,7 @@ _ZN2OT6Layout6Common8Coverage6iter_tC2ERKS2_.exit: ; preds = %_ZNK5graph14PairPo %31 = load i8, ptr %arrayidx3.i.i.i.i.i, align 1 %conv4.i.i.i.i.i = zext i8 %31 to i32 %add.i.i.i.i.i = or disjoint i32 %shl.i.i.i.i.i, %conv4.i.i.i.i.i - %32 = call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i) + %32 = call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i) %valueFormat2.i = getelementptr inbounds i8, ptr %this, i64 6 %33 = load i8, ptr %valueFormat2.i, align 1 %conv.i.i.i.i1.i = zext i8 %33 to i32 @@ -44806,7 +44806,7 @@ _ZN2OT6Layout6Common8Coverage6iter_tC2ERKS2_.exit: ; preds = %_ZNK5graph14PairPo %34 = load i8, ptr %arrayidx3.i.i.i.i3.i, align 1 %conv4.i.i.i.i4.i = zext i8 %34 to i32 %add.i.i.i.i5.i = or disjoint i32 %shl.i.i.i.i2.i, %conv4.i.i.i.i4.i - %35 = call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i5.i) + %35 = call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i5.i) %mul.i7.i = add nuw nsw i32 %35, %32 %add.i = shl nuw nsw i32 %mul.i7.i, 1 %mul.i = mul nuw nsw i32 %add.i, %add.i.i29 @@ -234504,7 +234504,7 @@ land.rhs: ; preds = %_ZNK2OT6Layout6Comm %21 = load i8, ptr %arrayidx3.i.i.i.i.i30, align 1 %conv4.i.i.i.i.i31 = zext i8 %21 to i32 %add.i.i.i.i.i32 = or disjoint i32 %shl.i.i.i.i.i29, %conv4.i.i.i.i.i31 - %22 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i32) + %22 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i32) %mul.i.i = shl nuw nsw i32 %22, 1 %23 = load ptr, ptr %start.i.i, align 8 %sub.ptr.rhs.cast.i.i35 = ptrtoint ptr %23 to i64 @@ -235178,7 +235178,7 @@ land.rhs: ; preds = %land.lhs.true.i, %l %9 = load i8, ptr %arrayidx3.i.i.i.i.i, align 1 %conv4.i.i.i.i.i = zext i8 %9 to i32 %add.i.i.i.i.i = or disjoint i32 %shl.i.i.i.i.i, %conv4.i.i.i.i.i - %10 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i) + %10 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i.i) %mul.i.i = shl nuw nsw i32 %10, 1 %11 = mul nuw nsw i32 %mul.i.i, %add.i.i17 %12 = load ptr, ptr %start.i.i, align 8 @@ -235265,7 +235265,7 @@ if.end: ; preds = %entry %3 = load i8, ptr %arrayidx3.i.i.i, align 1 %conv4.i.i.i = zext i8 %3 to i32 %add.i.i.i = or disjoint i32 %shl.i.i.i, %conv4.i.i.i - %4 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i) + %4 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i) %arrayidx6 = getelementptr inbounds i8, ptr %this, i64 6 %5 = load i8, ptr %arrayidx6, align 1 %conv.i.i.i13 = zext i8 %5 to i32 @@ -235274,7 +235274,7 @@ if.end: ; preds = %entry %6 = load i8, ptr %arrayidx3.i.i.i15, align 1 %conv4.i.i.i16 = zext i8 %6 to i32 %add.i.i.i17 = or disjoint i32 %shl.i.i.i14, %conv4.i.i.i16 - %7 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i17) + %7 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i17) store ptr %valueFormat, ptr %closure, align 8 %len19 = getelementptr inbounds i8, ptr %closure, i64 8 store i32 %4, ptr %len19, align 8 @@ -235749,7 +235749,7 @@ if.end: ; preds = %land.lhs.true.i36, %19 = load i8, ptr %arrayidx3.i.i.i97, align 1 %conv4.i.i.i98 = zext i8 %19 to i32 %add.i.i.i99 = or disjoint i32 %shl.i.i.i96, %conv4.i.i.i98 - %20 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i99) + %20 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i99) %valueFormat2 = getelementptr inbounds i8, ptr %this, i64 6 %21 = load i8, ptr %valueFormat2, align 1 %conv.i.i.i100 = zext i8 %21 to i32 @@ -235758,7 +235758,7 @@ if.end: ; preds = %land.lhs.true.i36, %22 = load i8, ptr %arrayidx3.i.i.i102, align 1 %conv4.i.i.i103 = zext i8 %22 to i32 %add.i.i.i104 = or disjoint i32 %shl.i.i.i101, %conv4.i.i.i103 - %23 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i104) + %23 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i104) %add = add nuw nsw i32 %23, %20 %mul = shl nuw nsw i32 %add, 1 %24 = load i8, ptr %add.ptr.i.i60, align 1 @@ -239675,7 +239675,7 @@ if.end29: ; preds = %for.inc.us.us.us.i, %19 = load i8, ptr %arrayidx3.i.i, align 1 %conv4.i.i.i23 = zext i8 %19 to i32 %add.i.i.i24 = or disjoint i32 %shl.i.i.i21, %conv4.i.i.i23 - %20 = call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i24) + %20 = call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i24) %retval.sroa.2.8.insert.ext.i.i = zext nneg i32 %20 to i64 %serializer = getelementptr inbounds i8, ptr %c, i64 24 %21 = load ptr, ptr %serializer, align 8 @@ -242151,7 +242151,7 @@ entry: %3 = load i8, ptr %arrayidx3.i.i.i, align 1 %conv4.i.i.i = zext i8 %3 to i32 %add.i.i.i = or disjoint i32 %shl.i.i.i, %conv4.i.i.i - %4 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i) + %4 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i) store i32 %4, ptr %sub_length, align 4 %values = getelementptr inbounds i8, ptr %this, i64 8 %valueCount = getelementptr inbounds i8, ptr %this, i64 6 @@ -245692,7 +245692,7 @@ entry: %1 = load i8, ptr %arrayidx3.i.i.i.i, align 1 %conv4.i.i.i.i = zext i8 %1 to i32 %add.i.i.i.i = or disjoint i32 %shl.i.i.i.i, %conv4.i.i.i.i - %2 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i) + %2 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i) %arrayidx1.i = getelementptr inbounds i8, ptr %this, i64 6 %3 = load i8, ptr %arrayidx1.i, align 1 %conv.i.i.i2.i = zext i8 %3 to i32 @@ -245701,7 +245701,7 @@ entry: %4 = load i8, ptr %arrayidx3.i.i.i4.i, align 1 %conv4.i.i.i5.i = zext i8 %4 to i32 %add.i.i.i6.i = or disjoint i32 %shl.i.i.i3.i, %conv4.i.i.i5.i - %5 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i6.i) + %5 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i6.i) %add.i.i = add nuw nsw i32 %5, %2 %mul.i.i = shl nuw nsw i32 %add.i.i, 1 %add1.i.i = add nuw nsw i32 %mul.i.i, 2 @@ -247152,7 +247152,7 @@ if.end: ; preds = %if.end9.i.i.i %11 = load i8, ptr %arrayidx3.i.i.i, align 1 %conv4.i.i.i = zext i8 %11 to i32 %add.i.i.i = or disjoint i32 %shl.i.i.i, %conv4.i.i.i - %12 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i) + %12 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i) %arrayidx11 = getelementptr inbounds i8, ptr %valueFormats, i64 2 %13 = load i8, ptr %arrayidx11, align 1 %arrayidx3.i.i.i19 = getelementptr inbounds i8, ptr %valueFormats, i64 3 @@ -247189,7 +247189,7 @@ for.body.lr.ph: ; preds = %if.end %shl.i.i.i18 = shl nuw nsw i32 %conv.i.i.i17, 8 %conv4.i.i.i20 = zext i8 %14 to i32 %add.i.i.i21 = or disjoint i32 %shl.i.i.i18, %conv4.i.i.i20 - %17 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i21) + %17 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i21) %add.i = add nuw nsw i32 %17, %12 %mul.i = shl nuw nsw i32 %add.i, 1 %add1.i = add nuw nsw i32 %mul.i, 2 @@ -247599,7 +247599,7 @@ if.end: ; preds = %if.end9.i.i.i %11 = load i8, ptr %arrayidx3.i.i.i, align 1 %conv4.i.i.i = zext i8 %11 to i32 %add.i.i.i = or disjoint i32 %shl.i.i.i, %conv4.i.i.i - %12 = call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i) + %12 = call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i) %valueFormat2 = getelementptr inbounds i8, ptr %this, i64 6 %13 = load i8, ptr %valueFormat2, align 1 %conv.i.i.i57 = zext i8 %13 to i32 @@ -247608,7 +247608,7 @@ if.end: ; preds = %if.end9.i.i.i %14 = load i8, ptr %arrayidx3.i.i.i59, align 1 %conv4.i.i.i60 = zext i8 %14 to i32 %add.i.i.i61 = or disjoint i32 %shl.i.i.i58, %conv4.i.i.i60 - %15 = call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i61) + %15 = call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i61) %plan = getelementptr inbounds i8, ptr %c, i64 16 %16 = load ptr, ptr %plan, align 8 %length.i = getelementptr inbounds i8, ptr %16, i64 2076 @@ -248616,7 +248616,7 @@ entry: %1 = load i8, ptr %arrayidx3.i.i.i, align 1 %conv4.i.i.i = zext i8 %1 to i32 %add.i.i.i = or disjoint i32 %shl.i.i.i, %conv4.i.i.i - %2 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i) + %2 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i) %valueFormat2 = getelementptr inbounds i8, ptr %this, i64 6 %3 = load i8, ptr %valueFormat2, align 1 %conv.i.i.i14 = zext i8 %3 to i32 @@ -248625,7 +248625,7 @@ entry: %4 = load i8, ptr %arrayidx3.i.i.i16, align 1 %conv4.i.i.i17 = zext i8 %4 to i32 %add.i.i.i18 = or disjoint i32 %shl.i.i.i15, %conv4.i.i.i17 - %5 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i18) + %5 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i18) %add = add nuw nsw i32 %5, %2 %class1Count = getelementptr inbounds i8, ptr %this, i64 12 %6 = load i8, ptr %class1Count, align 1 @@ -263017,7 +263017,7 @@ for.body.lr.ph: ; preds = %entry %3 = load i8, ptr %arrayidx3.i.i.i4.i, align 1 %conv4.i.i.i5.i = zext i8 %3 to i32 %add.i.i.i6.i = or disjoint i32 %shl.i.i.i3.i, %conv4.i.i.i5.i - %4 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i6.i) + %4 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i6.i) %5 = load i8, ptr %valueFormats, align 1 %conv.i.i.i.i = zext i8 %5 to i32 %shl.i.i.i.i = shl nuw nsw i32 %conv.i.i.i.i, 8 @@ -263025,7 +263025,7 @@ for.body.lr.ph: ; preds = %entry %6 = load i8, ptr %arrayidx3.i.i.i.i, align 1 %conv4.i.i.i.i = zext i8 %6 to i32 %add.i.i.i.i = or disjoint i32 %shl.i.i.i.i, %conv4.i.i.i.i - %7 = tail call noundef range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i) + %7 = tail call noundef range(i32 0, 17) i32 @llvm.ctpop.i32(i32 %add.i.i.i.i) %add.i.i = add nuw nsw i32 %4, %7 %mul.i.i = shl nuw nsw i32 %add.i.i, 1 %add1.i.i = add nuw nsw i32 %mul.i.i, 2 diff --git a/bench/hyperscan/optimized/ng_corpus_generator.cpp.ll b/bench/hyperscan/optimized/ng_corpus_generator.cpp.ll index 52b15e4db53..0029adb23ea 100644 --- a/bench/hyperscan/optimized/ng_corpus_generator.cpp.ll +++ b/bench/hyperscan/optimized/ng_corpus_generator.cpp.ll @@ -8211,7 +8211,7 @@ sw.bb.i.i.i: ; preds = %call2.i.noexc.i.i %arrayidx.i.i99.i.i.i = getelementptr inbounds i8, ptr %agg.tmp.sroa.0.0.copyload.i.i, i64 32 %arrayidx.i.i100.i.i.i = getelementptr inbounds i8, ptr %agg.tmp.sroa.0.0.copyload.i.i, i64 40 %41 = load <4 x i64>, ptr %props.i.i.i.i, align 8 - %42 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %41), !range !16 + %42 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %41), !range !16 %43 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %42) %conv.i = trunc i64 %43 to i32 switch i32 %conv.i, label %if.else11.i [ @@ -8264,7 +8264,7 @@ if.else11.i: ; preds = %sw.bb.i.i.i call13.i.noexc: ; preds = %if.else11.i %conv14.i = zext i32 %call13.i46 to i64 %50 = load i64, ptr %props.i.i.i.i, align 8 - %51 = call i64 @llvm.ctpop.i64(i64 %50), !range !16 + %51 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %50), !range !16 %cmp5.not.i.i.i = icmp ugt i64 %51, %conv14.i br i1 %cmp5.not.i.i.i, label %for.cond6.preheader.i.i.i, label %for.inc13.i.i.i @@ -8327,21 +8327,21 @@ for.body8.i.i.i: ; preds = %for.body8.i.i.prol. for.inc13.i.i.i: ; preds = %call13.i.noexc %56 = load i64, ptr %arrayidx.i.i98.i.i.i, align 8 - %57 = call i64 @llvm.ctpop.i64(i64 %56), !range !16 + %57 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %56), !range !16 %add.1.i.i.i = add nuw nsw i64 %57, %51 %cmp5.not.1.i.i.i = icmp ugt i64 %add.1.i.i.i, %conv14.i br i1 %cmp5.not.1.i.i.i, label %for.cond6.preheader.i.i.i, label %for.inc13.1.i.i.i for.inc13.1.i.i.i: ; preds = %for.inc13.i.i.i %58 = load i64, ptr %arrayidx.i.i99.i.i.i, align 8 - %59 = call i64 @llvm.ctpop.i64(i64 %58), !range !16 + %59 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %58), !range !16 %add.2.i.i.i = add nuw nsw i64 %59, %add.1.i.i.i %cmp5.not.2.i.i.i = icmp ugt i64 %add.2.i.i.i, %conv14.i br i1 %cmp5.not.2.i.i.i, label %for.cond6.preheader.i.i.i, label %for.inc13.2.i.i.i for.inc13.2.i.i.i: ; preds = %for.inc13.1.i.i.i %60 = load i64, ptr %arrayidx.i.i100.i.i.i, align 8 - %61 = call i64 @llvm.ctpop.i64(i64 %60), !range !16 + %61 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %60), !range !16 %add.3.i.i.i = add nuw nsw i64 %61, %add.2.i.i.i %cmp5.not.3.i.i.i = icmp ugt i64 %add.3.i.i.i, %conv14.i br i1 %cmp5.not.3.i.i.i, label %for.cond6.preheader.i.i.i, label %invoke.cont13.i.i @@ -8364,7 +8364,7 @@ sw.bb4.i.i.i: ; preds = %call2.i.noexc.i.i %ref.tmp.i.i.i.i.sroa.0.16.vec.expand = shufflevector <2 x i64> %65, <2 x i64> poison, <4 x i32> %ref.tmp.i.i.i.i.sroa.0.16.vecblend = shufflevector <4 x i64> %ref.tmp.i.i.i.i.sroa.0.0.vecblend, <4 x i64> %ref.tmp.i.i.i.i.sroa.0.16.vec.expand, <4 x i32> %this.val33 = load ptr, ptr %cProps.i, align 8 - %66 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %ref.tmp.i.i.i.i.sroa.0.16.vecblend), !range !16 + %66 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %ref.tmp.i.i.i.i.sroa.0.16.vecblend), !range !16 %67 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %66) %conv.i50 = trunc i64 %67 to i32 switch i32 %conv.i50, label %if.else11.i67 [ @@ -8417,7 +8417,7 @@ if.else11.i67: ; preds = %sw.bb4.i.i.i call13.i.noexc126: ; preds = %if.else11.i67 %conv14.i69 = zext i32 %call13.i127 to i64 %ref.tmp.i.i.i.i.sroa.0.0.vec.extract202 = extractelement <2 x i64> %64, i64 0 - %74 = call i64 @llvm.ctpop.i64(i64 %ref.tmp.i.i.i.i.sroa.0.0.vec.extract202), !range !16 + %74 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %ref.tmp.i.i.i.i.sroa.0.0.vec.extract202), !range !16 %cmp5.not.i.i.i70 = icmp ugt i64 %74, %conv14.i69 br i1 %cmp5.not.i.i.i70, label %for.cond6.preheader.i.i.i80, label %for.inc13.i.i.i71 @@ -8480,21 +8480,21 @@ for.body8.i.i.i103: ; preds = %for.body8.i.i.prol. for.inc13.i.i.i71: ; preds = %call13.i.noexc126 %ref.tmp.i.i.i.i.sroa.0.8.vec.extract = extractelement <2 x i64> %64, i64 1 - %79 = call i64 @llvm.ctpop.i64(i64 %ref.tmp.i.i.i.i.sroa.0.8.vec.extract), !range !16 + %79 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %ref.tmp.i.i.i.i.sroa.0.8.vec.extract), !range !16 %add.1.i.i.i72 = add nuw nsw i64 %79, %74 %cmp5.not.1.i.i.i73 = icmp ugt i64 %add.1.i.i.i72, %conv14.i69 br i1 %cmp5.not.1.i.i.i73, label %for.cond6.preheader.i.i.i80, label %for.inc13.1.i.i.i74 for.inc13.1.i.i.i74: ; preds = %for.inc13.i.i.i71 %ref.tmp.i.i.i.i.sroa.0.16.vec.extract205 = extractelement <2 x i64> %65, i64 0 - %80 = call i64 @llvm.ctpop.i64(i64 %ref.tmp.i.i.i.i.sroa.0.16.vec.extract205), !range !16 + %80 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %ref.tmp.i.i.i.i.sroa.0.16.vec.extract205), !range !16 %add.2.i.i.i75 = add nuw nsw i64 %80, %add.1.i.i.i72 %cmp5.not.2.i.i.i76 = icmp ugt i64 %add.2.i.i.i75, %conv14.i69 br i1 %cmp5.not.2.i.i.i76, label %for.cond6.preheader.i.i.i80, label %for.inc13.2.i.i.i77 for.inc13.2.i.i.i77: ; preds = %for.inc13.1.i.i.i74 %ref.tmp.i.i.i.i.sroa.0.24.vec.extract = extractelement <2 x i64> %65, i64 1 - %81 = call i64 @llvm.ctpop.i64(i64 %ref.tmp.i.i.i.i.sroa.0.24.vec.extract), !range !16 + %81 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %ref.tmp.i.i.i.i.sroa.0.24.vec.extract), !range !16 %add.3.i.i.i78 = add nuw nsw i64 %add.2.i.i.i75, %81 %cmp5.not.3.i.i.i79 = icmp ugt i64 %add.3.i.i.i78, %conv14.i69 br i1 %cmp5.not.3.i.i.i79, label %for.cond6.preheader.i.i.i80, label %invoke.cont13.i.i diff --git a/bench/hyperscan/optimized/ng_violet.cpp.ll b/bench/hyperscan/optimized/ng_violet.cpp.ll index e224522d6bf..85dd60e35d1 100644 --- a/bench/hyperscan/optimized/ng_violet.cpp.ll +++ b/bench/hyperscan/optimized/ng_violet.cpp.ll @@ -20487,7 +20487,7 @@ invoke.cont51.i: ; preds = %for.inc84.i, %invok %arrayidx.i.i99.i.i.i = getelementptr inbounds i8, ptr %v.sroa.0.2268.i, i64 32 %arrayidx.i.i100.i.i.i = getelementptr inbounds i8, ptr %v.sroa.0.2268.i, i64 40 %20 = load <4 x i64>, ptr %props.i.i, align 8, !noalias !725 - %21 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %20), !range !738 + %21 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %20), !range !738 %22 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %21) %cmp53.i = icmp eq i64 %22, 1 %23 = extractelement <4 x i64> %20, i64 0 @@ -31151,7 +31151,7 @@ for.body.i.i: ; preds = %cleanup36.i.i, %for %agg.tmp.sroa.0.0.copyload.i266.i = load ptr, ptr %u.i.i, align 8 %props.i.i.i = getelementptr inbounds i8, ptr %agg.tmp.sroa.0.0.copyload.i266.i, i64 16 %46 = load <4 x i64>, ptr %props.i.i.i, align 8 - %47 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %46), !range !738 + %47 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %46), !range !738 %48 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %47) %cmp.i267.i = icmp ugt i64 %48, 40 br i1 %cmp.i267.i, label %cleanup36.i.i, label %if.end.i.i @@ -31186,7 +31186,7 @@ land.lhs.true18.i.i: ; preds = %land.lhs.true.i.i if.then22.i.i: ; preds = %land.lhs.true18.i.i %props.i62.i.i = getelementptr inbounds i8, ptr %49, i64 16 %52 = load <4 x i64>, ptr %props.i62.i.i, align 8 - %53 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %52), !range !738 + %53 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %52), !range !738 %54 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %53) %cmp28.i.i = icmp eq i64 %54, 1 br i1 %cmp28.i.i, label %cleanup36.i.i, label %lor.lhs.false.i.i @@ -58325,7 +58325,7 @@ if.end40.i: ; preds = %for.body28.i.i206.i %arrayidx.i.i99.i.i.i = getelementptr inbounds i8, ptr %v.sroa.0.2.ph.i, i64 32 %arrayidx.i.i100.i.i.i = getelementptr inbounds i8, ptr %v.sroa.0.2.ph.i, i64 40 %16 = load <4 x i64>, ptr %props.i229.i, align 8 - %17 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %16), !range !738 + %17 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %16), !range !738 %18 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %17) %cmp46.not.i = icmp eq i64 %18, 1 br i1 %cmp46.not.i, label %if.end53.i, label %land.lhs.true.i @@ -58408,7 +58408,7 @@ invoke.cont81.i: ; preds = %invoke.cont67.prehe %arrayidx.i.i99.i.i248.i = getelementptr inbounds i8, ptr %28, i64 32 %arrayidx.i.i100.i.i250.i = getelementptr inbounds i8, ptr %28, i64 40 %30 = load <4 x i64>, ptr %props.i245.i, align 8 - %31 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %30), !range !738 + %31 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %30), !range !738 %32 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %31) %cmp83.not.i = icmp eq i64 %32, 1 %33 = extractelement <4 x i64> %30, i64 0 @@ -59033,7 +59033,7 @@ invoke.cont: %arrayidx.i.i99.i.i = getelementptr inbounds i8, ptr %v.coerce0, i64 32 %arrayidx.i.i100.i.i = getelementptr inbounds i8, ptr %v.coerce0, i64 40 %1 = load <4 x i64>, ptr %props.i, align 8 - %2 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %1), !range !738 + %2 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %1), !range !738 %3 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %2) %cmp.not = icmp eq i64 %3, 1 %4 = extractelement <4 x i64> %1, i64 0 @@ -59144,7 +59144,7 @@ invoke.cont36: ; preds = %invoke.cont23.prehe %arrayidx.i.i99.i.i90 = getelementptr inbounds i8, ptr %19, i64 32 %arrayidx.i.i100.i.i92 = getelementptr inbounds i8, ptr %19, i64 40 %21 = load <4 x i64>, ptr %props.i87, align 8 - %22 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %21), !range !738 + %22 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %21), !range !738 %23 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %22) %cmp38.not = icmp eq i64 %23, 1 %24 = extractelement <4 x i64> %21, i64 0 diff --git a/bench/hyperscan/optimized/rose_build_merge.cpp.ll b/bench/hyperscan/optimized/rose_build_merge.cpp.ll index 5cb491c2a2e..ee7638fdb8d 100644 --- a/bench/hyperscan/optimized/rose_build_merge.cpp.ll +++ b/bench/hyperscan/optimized/rose_build_merge.cpp.ll @@ -7175,7 +7175,7 @@ if.end.i.i: ; preds = %if.then.i409 for.cond.cleanup.i.i: ; preds = %cleanup.i.i, %if.end.i.i %64 = phi <4 x i64> [ zeroinitializer, %if.end.i.i ], [ %72, %cleanup.i.i ] - %65 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %64), !range !236 + %65 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %64), !range !236 %66 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %65) %cmp16.i.i = icmp ult i64 %66, 11 %67 = zext i1 %cmp16.i.i to i8 @@ -9870,7 +9870,7 @@ if.then.i557: ; preds = %invoke.cont210 %426 = load <4 x i64>, ptr %stop1.i, align 8 %427 = load <4 x i64>, ptr %stop2.i, align 8, !noalias !260 %428 = xor <4 x i64> %427, %426 - %429 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %428), !range !236 + %429 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %428), !range !236 %430 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %429) %conv.i = trunc i64 %430 to i32 %add.ptr.i.i558 = getelementptr inbounds i8, ptr %ref.tmp212.sroa.0.0.copyload767, i64 8 @@ -11293,30 +11293,30 @@ if.then3.i: ; preds = %if.end.i654 %632 = load <4 x i64>, ptr %stop2.i651, align 8 %633 = load <4 x i64>, ptr %stop1.i650, align 8 %634 = and <4 x i64> %633, %632 - %635 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %634), !range !236 + %635 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %634), !range !236 %636 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %635) %cmp.i659 = icmp ult i64 %636, 10 %637 = extractelement <4 x i64> %633, i64 0 - %638 = call i64 @llvm.ctpop.i64(i64 %637), !range !236 + %638 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %637), !range !236 %639 = extractelement <4 x i64> %633, i64 1 - %640 = call i64 @llvm.ctpop.i64(i64 %639), !range !236 + %640 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %639), !range !236 %add9.i.i62.i = add nuw nsw i64 %640, %638 %641 = extractelement <4 x i64> %633, i64 2 - %642 = call i64 @llvm.ctpop.i64(i64 %641), !range !236 + %642 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %641), !range !236 %add15.i.i64.i = add nuw nsw i64 %add9.i.i62.i, %642 %643 = extractelement <4 x i64> %633, i64 3 - %644 = call i64 @llvm.ctpop.i64(i64 %643), !range !236 + %644 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %643), !range !236 %add21.i.i66.i = add nuw nsw i64 %add15.i.i64.i, %644 br i1 %cmp.i659, label %land.lhs.true.i696, label %if.then3.if.end16_crit_edge.i if.then3.if.end16_crit_edge.i: ; preds = %.noexc698 - %645 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %632), !range !236 + %645 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %632), !range !236 %646 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %645) br label %if.end16.i land.lhs.true.i696: ; preds = %.noexc698 %cmp8.i = icmp ugt i64 %add21.i.i66.i, 10 - %647 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %632), !range !236 + %647 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %632), !range !236 %648 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %647) %cmp11.i = icmp ugt i64 %648, 10 %or.cond1383 = select i1 %cmp8.i, i1 true, i1 %cmp11.i diff --git a/bench/hyperscan/optimized/rose_build_program.cpp.ll b/bench/hyperscan/optimized/rose_build_program.cpp.ll index d66720eb2ee..3500ced1719 100644 --- a/bench/hyperscan/optimized/rose_build_program.cpp.ll +++ b/bench/hyperscan/optimized/rose_build_program.cpp.ll @@ -21323,9 +21323,9 @@ if.then.i: ; preds = %entry call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %cmpmask_u8.i) #27 %reach.i = getelementptr inbounds i8, ptr %1, i64 8 %2 = load <4 x i64>, ptr %reach.i, align 8 - %3 = tail call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %2), !range !202 + %3 = tail call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %2), !range !202 %4 = tail call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %3) - %5 = tail call i64 @llvm.ctpop.i64(i64 %4), !range !202 + %5 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %4), !range !202 %tobool.not.i.i = icmp ult i64 %5, 2 br i1 %tobool.not.i.i, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit.i, label %if.end.i19 @@ -21361,9 +21361,9 @@ if.end.i19: ; preds = %_ZN3ue2L14checkReac store <2 x i64> %9, ptr %ref.tmp.i, align 16, !alias.scope !496 %10 = shufflevector <4 x i64> %8, <4 x i64> poison, <2 x i32> store <2 x i64> %10, ptr %__begin0.0.ptr.2.i.i.i.i, align 16, !alias.scope !496 - %11 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %8), !range !202 + %11 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %8), !range !202 %12 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %11) - %13 = call i64 @llvm.ctpop.i64(i64 %12), !range !202 + %13 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %12), !range !202 %tobool.not.i14.i = icmp ult i64 %13, 2 br i1 %tobool.not.i14.i, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit34.i, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit34.thread.i @@ -21675,9 +21675,9 @@ for.body.i: ; preds = %for.body.i.preheade call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %cmpmask_u8.i71) #27 %reach.i76 = getelementptr inbounds i8, ptr %__begin2.sroa.0.093.i, i64 8 %53 = load <4 x i64>, ptr %reach.i76, align 8 - %54 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %53), !range !202 + %54 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %53), !range !202 %55 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %54) - %56 = call i64 @llvm.ctpop.i64(i64 %55), !range !202 + %56 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %55), !range !202 %tobool.not.i.i71 = icmp ult i64 %56, 2 br i1 %tobool.not.i.i71, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit.i98, label %if.end.i72 @@ -21712,9 +21712,9 @@ if.end.i72: ; preds = %_ZN3ue2L14checkReac store <2 x i64> %60, ptr %ref.tmp.i70, align 16, !alias.scope !505 %61 = shufflevector <4 x i64> %59, <4 x i64> poison, <2 x i32> store <2 x i64> %61, ptr %__begin0.0.ptr.2.i.i.i.i74, align 16, !alias.scope !505 - %62 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %59), !range !202 + %62 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %59), !range !202 %63 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %62) - %64 = call i64 @llvm.ctpop.i64(i64 %63), !range !202 + %64 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %63), !range !202 %tobool.not.i14.i76 = icmp ult i64 %64, 2 br i1 %tobool.not.i14.i76, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit34.i79, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit34.thread.i77 @@ -21923,9 +21923,9 @@ for.body.i108: ; preds = %for.body.i108.prehe call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %cmpmask_u8.i97) #27 %reach.i109 = getelementptr inbounds i8, ptr %__begin1.sroa.0.092.i, i64 8 %86 = load <4 x i64>, ptr %reach.i109, align 8 - %87 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %86), !range !202 + %87 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %86), !range !202 %88 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %87) - %89 = call i64 @llvm.ctpop.i64(i64 %88), !range !202 + %89 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %88), !range !202 %tobool.not.i.i161 = icmp ult i64 %89, 2 br i1 %tobool.not.i.i161, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit.i188, label %if.end.i162 @@ -21960,9 +21960,9 @@ if.end.i162: ; preds = %_ZN3ue2L14checkReac store <2 x i64> %93, ptr %ref.tmp.i160, align 16, !alias.scope !511 %94 = shufflevector <4 x i64> %92, <4 x i64> poison, <2 x i32> store <2 x i64> %94, ptr %__begin0.0.ptr.2.i.i.i.i164, align 16, !alias.scope !511 - %95 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %92), !range !202 + %95 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %92), !range !202 %96 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %95) - %97 = call i64 @llvm.ctpop.i64(i64 %96), !range !202 + %97 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %96), !range !202 %tobool.not.i14.i166 = icmp ult i64 %97, 2 br i1 %tobool.not.i14.i166, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit34.i169, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit34.thread.i167 @@ -22188,9 +22188,9 @@ for.body.i152: ; preds = %for.body.i152.prehe call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %cmpmask_u8.i142) #27 %reach.i153 = getelementptr inbounds i8, ptr %__begin1.sroa.0.095.i, i64 8 %125 = load <4 x i64>, ptr %reach.i153, align 8 - %126 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %125), !range !202 + %126 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %125), !range !202 %127 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %126) - %128 = call i64 @llvm.ctpop.i64(i64 %127), !range !202 + %128 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %127), !range !202 %tobool.not.i.i251 = icmp ult i64 %128, 2 br i1 %tobool.not.i.i251, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit.i278, label %if.end.i252 @@ -22225,9 +22225,9 @@ if.end.i252: ; preds = %_ZN3ue2L14checkReac store <2 x i64> %132, ptr %ref.tmp.i250, align 16, !alias.scope !517 %133 = shufflevector <4 x i64> %131, <4 x i64> poison, <2 x i32> store <2 x i64> %133, ptr %__begin0.0.ptr.2.i.i.i.i254, align 16, !alias.scope !517 - %134 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %131), !range !202 + %134 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %131), !range !202 %135 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %134) - %136 = call i64 @llvm.ctpop.i64(i64 %135), !range !202 + %136 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %135), !range !202 %tobool.not.i14.i256 = icmp ult i64 %136, 2 br i1 %tobool.not.i14.i256, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit34.i259, label %_ZN3ue2L14checkReachMaskERKNS_9CharReachERhS3_.exit34.thread.i257 @@ -23495,7 +23495,7 @@ call8.i.noexc: ; preds = %_ZNSt3mapIttSt4less %reach.i = getelementptr inbounds i8, ptr %__begin1.i.sroa.0.0519, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %cr.i, ptr noundef nonnull align 8 dereferenceable(32) %reach.i, i64 32, i1 false) %8 = load <4 x i64>, ptr %cr.i, align 16 - %9 = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %8), !range !202 + %9 = call range(i64 0, 65) <4 x i64> @llvm.ctpop.v4i64(<4 x i64> %8), !range !202 %10 = call i64 @llvm.vector.reduce.add.v4i64(<4 x i64> %9) %cmp.i = icmp ugt i64 %10, 128 br i1 %cmp.i, label %.noexc, label %if.else.i diff --git a/bench/jemalloc/optimized/jemalloc.ll b/bench/jemalloc/optimized/jemalloc.ll index da93c293827..4ad08a2f166 100644 --- a/bench/jemalloc/optimized/jemalloc.ll +++ b/bench/jemalloc/optimized/jemalloc.ll @@ -1873,7 +1873,7 @@ if.end.i61: ; preds = %entry, %tsd_fetch_i lor.rhs.i: ; preds = %if.end.i61 %sub.i = add i64 %alignment, -1 - %2 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %2 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %cmp6.i.not = icmp ult i64 %2, 2 br i1 %cmp6.i.not, label %if.else.i144.i, label %do.end4 @@ -2021,7 +2021,7 @@ if.end.i146: ; preds = %land.lhs.true8.i, % lor.rhs.i150: ; preds = %if.end.i146 %sub.i153 = add i64 %alignment, -1 - %12 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %12 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %cmp6.i155.not = icmp ult i64 %12, 2 br i1 %cmp6.i155.not, label %land.lhs.true.i.i343, label %if.then @@ -2286,7 +2286,7 @@ if.end.i61: ; preds = %entry, %tsd_fetch_i lor.rhs.i: ; preds = %if.end.i61 %sub.i = add i64 %alignment, -1 - %2 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %2 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %cmp6.i.not = icmp ult i64 %2, 2 br i1 %cmp6.i.not, label %if.else.i144.i, label %if.then121.i @@ -2439,7 +2439,7 @@ if.end.i146: ; preds = %land.lhs.true8.i, % lor.rhs.i150: ; preds = %if.end.i146 %sub.i153 = add i64 %alignment, -1 - %12 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %12 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %cmp6.i155.not = icmp ult i64 %12, 2 br i1 %cmp6.i155.not, label %land.lhs.true.i.i343, label %if.then121.i361 @@ -3938,7 +3938,7 @@ if.end.i61: ; preds = %entry, %tsd_fetch_i lor.rhs.i: ; preds = %if.end.i61 %sub.i = add i64 %alignment, -1 - %2 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %2 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %cmp6.i.not = icmp ult i64 %2, 2 br i1 %cmp6.i.not, label %if.else.i144.i, label %do.end4 @@ -4080,7 +4080,7 @@ if.end.i146: ; preds = %land.lhs.true8.i, % lor.rhs.i150: ; preds = %if.end.i146 %sub.i153 = add i64 %alignment, -1 - %12 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) + %12 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %alignment) %cmp6.i155.not = icmp ult i64 %12, 2 br i1 %cmp6.i155.not, label %land.lhs.true.i.i343, label %if.then diff --git a/bench/linux/optimized/pcm_lib.ll b/bench/linux/optimized/pcm_lib.ll index d8c06abf895..4fe2228ee5d 100644 --- a/bench/linux/optimized/pcm_lib.ll +++ b/bench/linux/optimized/pcm_lib.ll @@ -3222,7 +3222,7 @@ define dso_local i32 @snd_pcm_hw_param_value(ptr nocapture noundef readonly %0, br i1 %15, label %21, label %16 16: ; preds = %9 - %17 = tail call i32 @llvm.ctpop.i32(i32 %14), !range !25 + %17 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %14), !range !25 %18 = icmp ult i32 %17, 2 %19 = icmp eq i32 %12, 0 %20 = select i1 %18, i1 %19, i1 false @@ -3380,7 +3380,7 @@ define dso_local i32 @snd_pcm_hw_param_first(ptr noundef %0, ptr noundef %1, i32 br i1 %16, label %22, label %17 17: ; preds = %10 - %18 = tail call i32 @llvm.ctpop.i32(i32 %15), !range !25 + %18 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %15), !range !25 %19 = icmp ult i32 %18, 2 %20 = icmp eq i32 %13, 0 %21 = select i1 %19, i1 %20, i1 false @@ -3510,7 +3510,7 @@ define dso_local i32 @snd_pcm_hw_param_first(ptr noundef %0, ptr noundef %1, i32 br i1 %102, label %108, label %103 103: ; preds = %96 - %104 = tail call i32 @llvm.ctpop.i32(i32 %101), !range !25 + %104 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %101), !range !25 %105 = icmp ult i32 %104, 2 %106 = icmp eq i32 %99, 0 %107 = select i1 %105, i1 %106, i1 false @@ -3629,7 +3629,7 @@ define dso_local i32 @snd_pcm_hw_param_last(ptr noundef %0, ptr noundef %1, i32 br i1 %16, label %22, label %17 17: ; preds = %10 - %18 = tail call i32 @llvm.ctpop.i32(i32 %15), !range !25 + %18 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %15), !range !25 %19 = icmp ult i32 %18, 2 %20 = icmp eq i32 %13, 0 %21 = select i1 %19, i1 %20, i1 false @@ -3761,7 +3761,7 @@ define dso_local i32 @snd_pcm_hw_param_last(ptr noundef %0, ptr noundef %1, i32 br i1 %104, label %110, label %105 105: ; preds = %98 - %106 = tail call i32 @llvm.ctpop.i32(i32 %103), !range !25 + %106 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %103), !range !25 %107 = icmp ult i32 %106, 2 %108 = icmp eq i32 %101, 0 %109 = select i1 %107, i1 %108, i1 false diff --git a/bench/mitsuba3/optimized/xml.cpp.ll b/bench/mitsuba3/optimized/xml.cpp.ll index e64a91365fd..8c1c9a62b03 100644 --- a/bench/mitsuba3/optimized/xml.cpp.ll +++ b/bench/mitsuba3/optimized/xml.cpp.ll @@ -23120,7 +23120,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %21 21: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_PKN7mitsuba5ClassEEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %22 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %20) + %22 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %20) %.not.i = icmp ult i64 %22, 2 br i1 %.not.i, label %23, label %26 @@ -25829,7 +25829,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %21 21: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_N7mitsuba3xml6detail9XMLObjectEEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %22 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %20) + %22 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %20) %.not.i = icmp ult i64 %22, 2 br i1 %.not.i, label %23, label %26 @@ -26280,7 +26280,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %25 25: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_N7mitsuba3xml6detail9XMLObjectEEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %26 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %26 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i = icmp ult i64 %26, 2 br i1 %.not.i, label %27, label %30 @@ -26514,7 +26514,7 @@ _ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_trai 119: ; preds = %_ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7mitsuba3xml6detail9XMLObjectEEENS_22__unordered_map_hasherIS7_SC_NS_4hashIS7_EENS_8equal_toIS7_EELb1EEENS_21__unordered_map_equalIS7_SC_SH_SF_Lb1EEENS5_ISC_EEE21__construct_node_hashIRKNS_21piecewise_construct_tEJNS_5tupleIJRKS7_EEENSR_IJEEEEEENS_10unique_ptrINS_11__hash_nodeISC_PvEENS_22__hash_node_destructorINS5_ISZ_EEEEEEmOT_DpOT0_.exit %120 = shl i64 %24, 1 %121 = icmp ult i64 %24, 3 - %122 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %122 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i57 = icmp ugt i64 %122, 1 %.not76 = select i1 %121, i1 true, i1 %.not.i57 %123 = zext i1 %.not76 to i64 @@ -26547,7 +26547,7 @@ _ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_trai 137: ; preds = %135 %138 = icmp ugt i64 %133, 2 - %139 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %133) + %139 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %133) %.not.i.i.i58 = icmp ult i64 %139, 2 %140 = select i1 %138, i1 %.not.i.i.i58, i1 false %141 = load i64, ptr %110, align 8 @@ -26731,7 +26731,7 @@ _ZNSt3__110unique_ptrIA_PNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_val 18: ; preds = %15 %19 = getelementptr inbounds i8, ptr %17, i64 8 %20 = load i64, ptr %19, align 8 - %21 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %1) + %21 = tail call range(i64 1, 62) i64 @llvm.ctpop.i64(i64 %1) %.not.i47 = icmp ult i64 %21, 2 br i1 %.not.i47, label %_ZNSt3__116__constrain_hashB8ne190000Emm.exit.thread, label %22 @@ -27217,7 +27217,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %25 25: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_N7mitsuba3xml6detail9XMLObjectEEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %26 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %26 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i = icmp ult i64 %26, 2 br i1 %.not.i, label %27, label %30 @@ -27444,7 +27444,7 @@ _ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_trai 116: ; preds = %_ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7mitsuba3xml6detail9XMLObjectEEENS_22__unordered_map_hasherIS7_SC_NS_4hashIS7_EENS_8equal_toIS7_EELb1EEENS_21__unordered_map_equalIS7_SC_SH_SF_Lb1EEENS5_ISC_EEE21__construct_node_hashIRKNS_21piecewise_construct_tEJNS_5tupleIJOS7_EEENSR_IJEEEEEENS_10unique_ptrINS_11__hash_nodeISC_PvEENS_22__hash_node_destructorINS5_ISY_EEEEEEmOT_DpOT0_.exit %117 = shl i64 %24, 1 %118 = icmp ult i64 %24, 3 - %119 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %119 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i57 = icmp ugt i64 %119, 1 %.not76 = select i1 %118, i1 true, i1 %.not.i57 %120 = zext i1 %.not76 to i64 @@ -27477,7 +27477,7 @@ _ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_trai 134: ; preds = %132 %135 = icmp ugt i64 %130, 2 - %136 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %130) + %136 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %130) %.not.i.i.i58 = icmp ult i64 %136, 2 %137 = select i1 %135, i1 %.not.i.i.i58, i1 false %138 = load i64, ptr %107, align 8 @@ -30306,7 +30306,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %21 21: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_P4TaskEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %22 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %20) + %22 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %20) %.not.i = icmp ult i64 %22, 2 br i1 %.not.i, label %23, label %26 @@ -30517,7 +30517,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %23 23: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_P4TaskEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %24 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %22) + %24 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %22) %.not.i = icmp ult i64 %24, 2 br i1 %.not.i, label %25, label %28 @@ -30736,7 +30736,7 @@ _ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_trai 114: ; preds = %_ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEP4TaskEENS_22__unordered_map_hasherIS7_SA_NS_4hashIS7_EENS_8equal_toIS7_EELb1EEENS_21__unordered_map_equalIS7_SA_SF_SD_Lb1EEENS5_ISA_EEE21__construct_node_hashINS_4pairIKS7_S9_EEJEEENS_10unique_ptrINS_11__hash_nodeISA_PvEENS_22__hash_node_destructorINS5_ISS_EEEEEEmOT_DpOT0_.exit %115 = shl i64 %22, 1 %116 = icmp ult i64 %22, 3 - %117 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %22) + %117 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %22) %.not.i55 = icmp ugt i64 %117, 1 %.not75 = select i1 %116, i1 true, i1 %.not.i55 %118 = zext i1 %.not75 to i64 @@ -30769,7 +30769,7 @@ _ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_trai 132: ; preds = %130 %133 = icmp ugt i64 %128, 2 - %134 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %128) + %134 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %128) %.not.i.i.i56 = icmp ult i64 %134, 2 %135 = select i1 %133, i1 %.not.i.i.i56, i1 false %136 = load i64, ptr %105, align 8 @@ -30975,7 +30975,7 @@ _ZNSt3__110unique_ptrIA_PNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_val 18: ; preds = %15 %19 = getelementptr inbounds i8, ptr %17, i64 8 %20 = load i64, ptr %19, align 8 - %21 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %1) + %21 = tail call range(i64 1, 62) i64 @llvm.ctpop.i64(i64 %1) %.not.i47 = icmp ult i64 %21, 2 br i1 %.not.i47, label %_ZNSt3__116__constrain_hashB8ne190000Emm.exit.thread, label %22 @@ -31861,7 +31861,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %25 25: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_N7mitsuba3xml3TagEEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %26 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %26 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i = icmp ult i64 %26, 2 br i1 %.not.i, label %27, label %30 @@ -32066,7 +32066,7 @@ _ZNKSt3__121__unordered_map_equalINS_12basic_stringIcNS_11char_traitsIcEENS_9all 112: ; preds = %.critedge %113 = shl i64 %24, 1 %114 = icmp ult i64 %24, 3 - %115 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %115 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i57 = icmp ugt i64 %115, 1 %.not77 = select i1 %114, i1 true, i1 %.not.i57 %116 = zext i1 %.not77 to i64 @@ -32099,7 +32099,7 @@ _ZNKSt3__121__unordered_map_equalINS_12basic_stringIcNS_11char_traitsIcEENS_9all 130: ; preds = %128 %131 = icmp ugt i64 %126, 2 - %132 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %126) + %132 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %126) %.not.i.i.i58 = icmp ult i64 %132, 2 %133 = select i1 %131, i1 %.not.i.i.i58, i1 false %134 = load i64, ptr %103, align 8 @@ -32301,7 +32301,7 @@ _ZNSt3__110unique_ptrIA_PNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_val 18: ; preds = %15 %19 = getelementptr inbounds i8, ptr %17, i64 8 %20 = load i64, ptr %19, align 8 - %21 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %1) + %21 = tail call range(i64 1, 62) i64 @llvm.ctpop.i64(i64 %1) %.not.i47 = icmp ult i64 %21, 2 br i1 %.not.i47, label %_ZNSt3__116__constrain_hashB8ne190000Emm.exit.thread, label %22 @@ -32486,7 +32486,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %21 21: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_N7mitsuba3xml3TagEEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %22 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %20) + %22 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %20) %.not.i = icmp ult i64 %22, 2 br i1 %.not.i, label %23, label %26 @@ -32697,7 +32697,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %25 25: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_N7mitsuba3xml3TagEEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %26 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %26 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i = icmp ult i64 %26, 2 br i1 %.not.i, label %27, label %30 @@ -32915,7 +32915,7 @@ _ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_trai 114: ; preds = %_ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEN7mitsuba3xml3TagEEENS_22__unordered_map_hasherIS7_SB_NS_4hashIS7_EENS_8equal_toIS7_EELb1EEENS_21__unordered_map_equalIS7_SB_SG_SE_Lb1EEENS5_ISB_EEE21__construct_node_hashIRKNS_21piecewise_construct_tEJNS_5tupleIJRKS7_EEENSQ_IJEEEEEENS_10unique_ptrINS_11__hash_nodeISB_PvEENS_22__hash_node_destructorINS5_ISY_EEEEEEmOT_DpOT0_.exit %115 = shl i64 %24, 1 %116 = icmp ult i64 %24, 3 - %117 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %117 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i57 = icmp ugt i64 %117, 1 %.not77 = select i1 %116, i1 true, i1 %.not.i57 %118 = zext i1 %.not77 to i64 @@ -32948,7 +32948,7 @@ _ZNSt3__112__hash_tableINS_17__hash_value_typeINS_12basic_stringIcNS_11char_trai 132: ; preds = %130 %133 = icmp ugt i64 %128, 2 - %134 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %128) + %134 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %128) %.not.i.i.i58 = icmp ult i64 %134, 2 %135 = select i1 %133, i1 %.not.i.i.i58, i1 false %136 = load i64, ptr %105, align 8 @@ -33115,7 +33115,7 @@ _ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9al br i1 %.not, label %.critedge, label %25 25: ; preds = %_ZNKSt3__122__unordered_map_hasherINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEENS_17__hash_value_typeIS6_PKN7mitsuba5ClassEEENS_4hashIS6_EENS_8equal_toIS6_EELb1EEclB8ne190000ERKS6_.exit - %26 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %26 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i = icmp ult i64 %26, 2 br i1 %.not.i, label %27, label %30 @@ -33320,7 +33320,7 @@ _ZNKSt3__121__unordered_map_equalINS_12basic_stringIcNS_11char_traitsIcEENS_9all 112: ; preds = %.critedge %113 = shl i64 %24, 1 %114 = icmp ult i64 %24, 3 - %115 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %24) + %115 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %24) %.not.i57 = icmp ugt i64 %115, 1 %.not77 = select i1 %114, i1 true, i1 %.not.i57 %116 = zext i1 %.not77 to i64 @@ -33353,7 +33353,7 @@ _ZNKSt3__121__unordered_map_equalINS_12basic_stringIcNS_11char_traitsIcEENS_9all 130: ; preds = %128 %131 = icmp ugt i64 %126, 2 - %132 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %126) + %132 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %126) %.not.i.i.i58 = icmp ult i64 %132, 2 %133 = select i1 %131, i1 %.not.i.i.i58, i1 false %134 = load i64, ptr %103, align 8 @@ -33555,7 +33555,7 @@ _ZNSt3__110unique_ptrIA_PNS_16__hash_node_baseIPNS_11__hash_nodeINS_17__hash_val 18: ; preds = %15 %19 = getelementptr inbounds i8, ptr %17, i64 8 %20 = load i64, ptr %19, align 8 - %21 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %1) + %21 = tail call range(i64 1, 62) i64 @llvm.ctpop.i64(i64 %1) %.not.i47 = icmp ult i64 %21, 2 br i1 %.not.i47, label %_ZNSt3__116__constrain_hashB8ne190000Emm.exit.thread, label %22 diff --git a/bench/node/optimized/simdutf.ll b/bench/node/optimized/simdutf.ll index 233a914b6b5..354c25da2b6 100644 --- a/bench/node/optimized/simdutf.ll +++ b/bench/node/optimized/simdutf.ll @@ -10815,7 +10815,7 @@ for.body.i: ; preds = %entry, %_ZN7simdutf br i1 %tobool.not.i.i, label %if.else.i.i, label %if.then.i.i if.then.i.i: ; preds = %for.body.i - %4 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %3) + %4 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %3) %add.i.i.i = add nuw nsw i64 %4, 64 %5 = icmp ugt <64 x i8> %1, %not.i.i.i = xor i64 %3, -1 @@ -14147,7 +14147,7 @@ if.end.i2129.i: ; preds = %if.then34.i %51 = icmp ne <32 x i16> %50, zeroinitializer %52 = or <32 x i1> %51, %53 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %50, <32 x i16> zeroinitializer, <32 x i1> %52) - %54 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %43) + %54 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %43) %cast.i.i2199.i = zext nneg i16 %54 to i32 %add.i2201.i = add nuw nsw i32 %add.i, %cast.i.i2199.i %notmask2146.i = shl nsw i32 -1, %add.i2201.i @@ -14210,7 +14210,7 @@ if.end.i1969.i: ; preds = %if.else.i %91 = icmp ne <32 x i16> %90, zeroinitializer %92 = or <32 x i1> %91, %93 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %90, <32 x i16> zeroinitializer, <32 x i1> %92) - %94 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %83) + %94 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %83) %narrow2140.i = add nuw nsw i16 %94, %16 %add.i2041.i = zext nneg i16 %narrow2140.i to i32 %notmask2141.i = shl nsw i32 -1, %add.i2041.i @@ -14244,7 +14244,7 @@ if.end.i1809.i: ; preds = %_ZN7simdutf7icelake %105 = icmp ne <32 x i16> %104, zeroinitializer %106 = or <32 x i1> %105, %107 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %104, <32 x i16> zeroinitializer, <32 x i1> %106) - %108 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %97) + %108 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %97) %narrow2142.i = add nuw nsw i16 %108, %25 %add.i1881.i = zext nneg i16 %narrow2142.i to i32 %notmask2143.i = shl nsw i32 -1, %add.i1881.i @@ -14329,7 +14329,7 @@ if.end.i1649.i: ; preds = %if.then71.i %152 = icmp ne <32 x i16> %151, zeroinitializer %153 = or <32 x i1> %152, %154 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %151, <32 x i16> zeroinitializer, <32 x i1> %153) - %155 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %144) + %155 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %144) %cast.i.i1719.i = zext nneg i16 %155 to i32 %add.i1721.i = add nuw nsw i32 %add69.i, %cast.i.i1719.i %notmask2153.i = shl nsw i32 -1, %add.i1721.i @@ -14392,7 +14392,7 @@ if.end.i1489.i: ; preds = %if.else86.i %192 = icmp ne <32 x i16> %191, zeroinitializer %193 = or <32 x i1> %192, %194 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %191, <32 x i16> zeroinitializer, <32 x i1> %193) - %195 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %184) + %195 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %184) %narrow2147.i = add nuw nsw i16 %195, %117 %add.i1561.i = zext nneg i16 %narrow2147.i to i32 %notmask2148.i = shl nsw i32 -1, %add.i1561.i @@ -14426,7 +14426,7 @@ if.end.i.i: ; preds = %_ZN7simdutf7icelake %206 = icmp ne <32 x i16> %205, zeroinitializer %207 = or <32 x i1> %206, %208 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %205, <32 x i16> zeroinitializer, <32 x i1> %207) - %209 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %198) + %209 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %198) %narrow2149.i = add nuw nsw i16 %209, %126 %add.i.i = zext nneg i16 %narrow2149.i to i32 %notmask2150.i = shl nsw i32 -1, %add.i.i @@ -14551,7 +14551,7 @@ if.end.i2690.i: ; preds = %if.then152.i %268 = bitcast i32 %conv21.i2762.i to <32 x i1> %269 = and <32 x i1> %266, %268 %270 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %264, <32 x i16> zeroinitializer, <32 x i1> %269) - %271 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %257) + %271 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %257) %cast.i.i2766.i = zext nneg i16 %271 to i32 %add.i2768.i = add nuw nsw i32 %add150.i, %cast.i.i2766.i %notmask2135.i = shl nsw i32 -1, %add.i2768.i @@ -14626,7 +14626,7 @@ if.end.i2523.i: ; preds = %if.else167.i %314 = bitcast i32 %conv21.i2595.i to <32 x i1> %315 = and <32 x i1> %312, %314 %316 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %310, <32 x i16> zeroinitializer, <32 x i1> %315) - %317 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %303) + %317 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %303) %narrow.i = add nuw nsw i16 %317, %227 %add.i2601.i = zext nneg i16 %narrow.i to i32 %notmask2127.i = shl nsw i32 -1, %add.i2601.i @@ -14672,7 +14672,7 @@ if.end.i2356.i: ; preds = %_ZN7simdutf7icelake %334 = bitcast i32 %conv21.i2428.i to <32 x i1> %335 = and <32 x i1> %332, %334 %336 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %330, <32 x i16> zeroinitializer, <32 x i1> %335) - %337 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %323) + %337 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %323) %narrow2130.i = add nuw nsw i16 %337, %236 %add.i2434.i = zext nneg i16 %narrow2130.i to i32 %notmask2131.i = shl nsw i32 -1, %add.i2434.i @@ -14744,7 +14744,7 @@ if.end.i2257.i: ; preds = %if.end180.i %375 = bitcast i32 %conv21.i.i to <32 x i1> %376 = and <32 x i1> %373, %375 %377 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %371, <32 x i16> zeroinitializer, <32 x i1> %376) - %378 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %364) + %378 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %364) %narrow2138.i = add nuw nsw i16 %378, %348 %add.i2277.i = zext nneg i16 %narrow2138.i to i32 %notmask2139.i = shl nsw i32 -1, %add.i2277.i @@ -14915,7 +14915,7 @@ if.end.i4040.i: ; preds = %if.then40.i %60 = shufflevector <64 x i8> %59, <64 x i8> poison, <64 x i32> %61 = bitcast <64 x i8> %60 to <32 x i16> %62 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %61, <32 x i16> zeroinitializer, <32 x i1> %58) - %63 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %47) + %63 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %47) %cast.i.i4115.i = zext nneg i16 %63 to i32 %add.i4117.i = add nuw nsw i32 %add.i, %cast.i.i4115.i %notmask2180.i = shl nsw i32 -1, %add.i4117.i @@ -14983,7 +14983,7 @@ if.end.i3838.i: ; preds = %if.else.i %105 = shufflevector <64 x i8> %104, <64 x i8> poison, <64 x i32> %106 = bitcast <64 x i8> %105 to <32 x i16> %107 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %106, <32 x i16> zeroinitializer, <32 x i1> %103) - %108 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %92) + %108 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %92) %narrow2174.i = add nuw nsw i16 %108, %20 %add.i3915.i = zext nneg i16 %narrow2174.i to i32 %notmask2175.i = shl nsw i32 -1, %add.i3915.i @@ -15022,7 +15022,7 @@ if.end.i3636.i: ; preds = %_ZN7simdutf7icelake %124 = shufflevector <64 x i8> %123, <64 x i8> poison, <64 x i32> %125 = bitcast <64 x i8> %124 to <32 x i16> %126 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %125, <32 x i16> zeroinitializer, <32 x i1> %122) - %127 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %111) + %127 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %111) %narrow2176.i = add nuw nsw i16 %127, %29 %add.i3713.i = zext nneg i16 %narrow2176.i to i32 %notmask2177.i = shl nsw i32 -1, %add.i3713.i @@ -15112,7 +15112,7 @@ if.end.i3434.i: ; preds = %if.then77.i %176 = shufflevector <64 x i8> %175, <64 x i8> poison, <64 x i32> %177 = bitcast <64 x i8> %176 to <32 x i16> %178 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %177, <32 x i16> zeroinitializer, <32 x i1> %174) - %179 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %163) + %179 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %163) %cast.i.i3509.i = zext nneg i16 %179 to i32 %add.i3511.i = add nuw nsw i32 %add75.i, %cast.i.i3509.i %notmask2187.i = shl nsw i32 -1, %add.i3511.i @@ -15180,7 +15180,7 @@ if.end.i3232.i: ; preds = %if.else92.i %221 = shufflevector <64 x i8> %220, <64 x i8> poison, <64 x i32> %222 = bitcast <64 x i8> %221 to <32 x i16> %223 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %222, <32 x i16> zeroinitializer, <32 x i1> %219) - %224 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %208) + %224 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %208) %narrow2181.i = add nuw nsw i16 %224, %136 %add.i3309.i = zext nneg i16 %narrow2181.i to i32 %notmask2182.i = shl nsw i32 -1, %add.i3309.i @@ -15219,7 +15219,7 @@ if.end.i.i: ; preds = %_ZN7simdutf7icelake %240 = shufflevector <64 x i8> %239, <64 x i8> poison, <64 x i32> %241 = bitcast <64 x i8> %240 to <32 x i16> %242 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %241, <32 x i16> zeroinitializer, <32 x i1> %238) - %243 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %227) + %243 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %227) %narrow2183.i = add nuw nsw i16 %243, %145 %add.i.i = zext nneg i16 %narrow2183.i to i32 %notmask2184.i = shl nsw i32 -1, %add.i.i @@ -15354,7 +15354,7 @@ if.end.i4762.i: ; preds = %if.then164.i %312 = shufflevector <64 x i8> %311, <64 x i8> poison, <64 x i32> %313 = bitcast <64 x i8> %312 to <32 x i16> %314 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %313, <32 x i16> zeroinitializer, <32 x i1> %310) - %315 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %295) + %315 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %295) %cast.i.i4842.i = zext nneg i16 %315 to i32 %add.i4844.i = add nuw nsw i32 %add162.i, %cast.i.i4842.i %notmask2169.i = shl nsw i32 -1, %add.i4844.i @@ -15435,7 +15435,7 @@ if.end.i4547.i: ; preds = %if.else179.i %364 = shufflevector <64 x i8> %363, <64 x i8> poison, <64 x i32> %365 = bitcast <64 x i8> %364 to <32 x i16> %366 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %365, <32 x i16> zeroinitializer, <32 x i1> %362) - %367 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %347) + %367 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %347) %narrow.i = add nuw nsw i16 %367, %265 %add.i4629.i = zext nneg i16 %narrow.i to i32 %notmask2161.i = shl nsw i32 -1, %add.i4629.i @@ -15487,7 +15487,7 @@ if.end.i4332.i: ; preds = %_ZN7simdutf7icelake %390 = shufflevector <64 x i8> %389, <64 x i8> poison, <64 x i32> %391 = bitcast <64 x i8> %390 to <32 x i16> %392 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %391, <32 x i16> zeroinitializer, <32 x i1> %388) - %393 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %373) + %393 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %373) %narrow2164.i = add nuw nsw i16 %393, %274 %add.i4414.i = zext nneg i16 %narrow2164.i to i32 %notmask2165.i = shl nsw i32 -1, %add.i4414.i @@ -15565,7 +15565,7 @@ if.end.i4188.i: ; preds = %if.end192.i %437 = shufflevector <64 x i8> %436, <64 x i8> poison, <64 x i32> %438 = bitcast <64 x i8> %437 to <32 x i16> %439 = tail call <32 x i16> @llvm.x86.avx512.mask.compress.v32i16(<32 x i16> %438, <32 x i16> zeroinitializer, <32 x i1> %435) - %440 = tail call range(i16 0, 17) i16 @llvm.ctpop.i16(i16 %420) + %440 = tail call range(i16 1, 17) i16 @llvm.ctpop.i16(i16 %420) %narrow2172.i = add nuw nsw i16 %440, %404 %add.i4212.i = zext nneg i16 %narrow2172.i to i32 %notmask2173.i = shl nsw i32 -1, %add.i4212.i diff --git a/bench/openjdk/optimized/node.ll b/bench/openjdk/optimized/node.ll index 3ca8c949ba1..8209e6ac3cf 100644 --- a/bench/openjdk/optimized/node.ll +++ b/bench/openjdk/optimized/node.ll @@ -263,7 +263,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %37, 39: ; preds = %17 %40 = add i32 %13, 1 - %41 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %40) + %41 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %40) %or.cond.i.i.i.i = icmp eq i32 %41, 1 %42 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %40, i1 true) %43 = sub nuw nsw i32 32, %42 @@ -358,7 +358,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %38, 40: ; preds = %18 %41 = add i32 %14, 1 - %42 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %41) + %42 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %41) %or.cond.i.i.i.i = icmp eq i32 %42, 1 %43 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %41, i1 true) %44 = sub nuw nsw i32 32, %43 @@ -444,7 +444,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i13: ; preds = %8 90: ; preds = %68 %91 = add i32 %64, 1 - %92 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %91) + %92 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %91) %or.cond.i.i.i.i10 = icmp eq i32 %92, 1 %93 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %91, i1 true) %94 = sub nuw nsw i32 32, %93 @@ -539,7 +539,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %39, 41: ; preds = %19 %42 = add i32 %15, 1 - %43 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %42) + %43 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %42) %or.cond.i.i.i.i = icmp eq i32 %43, 1 %44 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %42, i1 true) %45 = sub nuw nsw i32 32, %44 @@ -625,7 +625,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i18: ; preds = %8 91: ; preds = %69 %92 = add i32 %65, 1 - %93 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %92) + %93 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %92) %or.cond.i.i.i.i15 = icmp eq i32 %93, 1 %94 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %92, i1 true) %95 = sub nuw nsw i32 32, %94 @@ -711,7 +711,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i25: ; preds = %1 141: ; preds = %119 %142 = add i32 %115, 1 - %143 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %142) + %143 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %142) %or.cond.i.i.i.i22 = icmp eq i32 %143, 1 %144 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %142, i1 true) %145 = sub nuw nsw i32 32, %144 @@ -806,7 +806,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %40, 42: ; preds = %20 %43 = add i32 %16, 1 - %44 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %43) + %44 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %43) %or.cond.i.i.i.i = icmp eq i32 %44, 1 %45 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %43, i1 true) %46 = sub nuw nsw i32 32, %45 @@ -892,7 +892,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i23: ; preds = %9 92: ; preds = %70 %93 = add i32 %66, 1 - %94 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %93) + %94 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %93) %or.cond.i.i.i.i20 = icmp eq i32 %94, 1 %95 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %93, i1 true) %96 = sub nuw nsw i32 32, %95 @@ -978,7 +978,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i30: ; preds = %1 142: ; preds = %120 %143 = add i32 %116, 1 - %144 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %143) + %144 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %143) %or.cond.i.i.i.i27 = icmp eq i32 %144, 1 %145 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %143, i1 true) %146 = sub nuw nsw i32 32, %145 @@ -1064,7 +1064,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i37: ; preds = %1 192: ; preds = %170 %193 = add i32 %166, 1 - %194 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %193) + %194 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %193) %or.cond.i.i.i.i34 = icmp eq i32 %194, 1 %195 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %193, i1 true) %196 = sub nuw nsw i32 32, %195 @@ -1159,7 +1159,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %41, 43: ; preds = %21 %44 = add i32 %17, 1 - %45 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %44) + %45 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %44) %or.cond.i.i.i.i = icmp eq i32 %45, 1 %46 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %44, i1 true) %47 = sub nuw nsw i32 32, %46 @@ -1245,7 +1245,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i28: ; preds = %9 93: ; preds = %71 %94 = add i32 %67, 1 - %95 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %94) + %95 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %94) %or.cond.i.i.i.i25 = icmp eq i32 %95, 1 %96 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %94, i1 true) %97 = sub nuw nsw i32 32, %96 @@ -1331,7 +1331,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i35: ; preds = %1 143: ; preds = %121 %144 = add i32 %117, 1 - %145 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %144) + %145 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %144) %or.cond.i.i.i.i32 = icmp eq i32 %145, 1 %146 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %144, i1 true) %147 = sub nuw nsw i32 32, %146 @@ -1417,7 +1417,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i42: ; preds = %1 193: ; preds = %171 %194 = add i32 %167, 1 - %195 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %194) + %195 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %194) %or.cond.i.i.i.i39 = icmp eq i32 %195, 1 %196 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %194, i1 true) %197 = sub nuw nsw i32 32, %196 @@ -1503,7 +1503,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i49: ; preds = %2 243: ; preds = %221 %244 = add i32 %217, 1 - %245 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %244) + %245 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %244) %or.cond.i.i.i.i46 = icmp eq i32 %245, 1 %246 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %244, i1 true) %247 = sub nuw nsw i32 32, %246 @@ -1598,7 +1598,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %42, 44: ; preds = %22 %45 = add i32 %18, 1 - %46 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %45) + %46 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %45) %or.cond.i.i.i.i = icmp eq i32 %46, 1 %47 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %45, i1 true) %48 = sub nuw nsw i32 32, %47 @@ -1684,7 +1684,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i33: ; preds = %9 94: ; preds = %72 %95 = add i32 %68, 1 - %96 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %95) + %96 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %95) %or.cond.i.i.i.i30 = icmp eq i32 %96, 1 %97 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %95, i1 true) %98 = sub nuw nsw i32 32, %97 @@ -1770,7 +1770,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i40: ; preds = %1 144: ; preds = %122 %145 = add i32 %118, 1 - %146 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %145) + %146 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %145) %or.cond.i.i.i.i37 = icmp eq i32 %146, 1 %147 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %145, i1 true) %148 = sub nuw nsw i32 32, %147 @@ -1856,7 +1856,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i47: ; preds = %1 194: ; preds = %172 %195 = add i32 %168, 1 - %196 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %195) + %196 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %195) %or.cond.i.i.i.i44 = icmp eq i32 %196, 1 %197 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %195, i1 true) %198 = sub nuw nsw i32 32, %197 @@ -1942,7 +1942,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i54: ; preds = %2 244: ; preds = %222 %245 = add i32 %218, 1 - %246 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %245) + %246 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %245) %or.cond.i.i.i.i51 = icmp eq i32 %246, 1 %247 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %245, i1 true) %248 = sub nuw nsw i32 32, %247 @@ -2028,7 +2028,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i61: ; preds = %2 294: ; preds = %272 %295 = add i32 %268, 1 - %296 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %295) + %296 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %295) %or.cond.i.i.i.i58 = icmp eq i32 %296, 1 %297 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %295, i1 true) %298 = sub nuw nsw i32 32, %297 @@ -2123,7 +2123,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %43, 45: ; preds = %23 %46 = add i32 %19, 1 - %47 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %46) + %47 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %46) %or.cond.i.i.i.i = icmp eq i32 %47, 1 %48 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %46, i1 true) %49 = sub nuw nsw i32 32, %48 @@ -2209,7 +2209,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i38: ; preds = %9 95: ; preds = %73 %96 = add i32 %69, 1 - %97 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %96) + %97 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %96) %or.cond.i.i.i.i35 = icmp eq i32 %97, 1 %98 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %96, i1 true) %99 = sub nuw nsw i32 32, %98 @@ -2295,7 +2295,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i45: ; preds = %1 145: ; preds = %123 %146 = add i32 %119, 1 - %147 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %146) + %147 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %146) %or.cond.i.i.i.i42 = icmp eq i32 %147, 1 %148 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %146, i1 true) %149 = sub nuw nsw i32 32, %148 @@ -2381,7 +2381,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i52: ; preds = %1 195: ; preds = %173 %196 = add i32 %169, 1 - %197 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %196) + %197 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %196) %or.cond.i.i.i.i49 = icmp eq i32 %197, 1 %198 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %196, i1 true) %199 = sub nuw nsw i32 32, %198 @@ -2467,7 +2467,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i59: ; preds = %2 245: ; preds = %223 %246 = add i32 %219, 1 - %247 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %246) + %247 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %246) %or.cond.i.i.i.i56 = icmp eq i32 %247, 1 %248 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %246, i1 true) %249 = sub nuw nsw i32 32, %248 @@ -2553,7 +2553,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i66: ; preds = %2 295: ; preds = %273 %296 = add i32 %269, 1 - %297 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %296) + %297 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %296) %or.cond.i.i.i.i63 = icmp eq i32 %297, 1 %298 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %296, i1 true) %299 = sub nuw nsw i32 32, %298 @@ -2639,7 +2639,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i73: ; preds = %3 345: ; preds = %323 %346 = add i32 %319, 1 - %347 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %346) + %347 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %346) %or.cond.i.i.i.i70 = icmp eq i32 %347, 1 %348 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %346, i1 true) %349 = sub nuw nsw i32 32, %348 @@ -2816,7 +2816,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %84, 86: ; preds = %65 %87 = add i32 %61, 1 - %88 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %87) + %88 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %87) %or.cond.i.i.i.i = icmp eq i32 %88, 1 %89 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %87, i1 true) %90 = sub nuw nsw i32 32, %89 @@ -3749,7 +3749,7 @@ _ZNK9VectorSet4testEj.exit: ; preds = %2 32: ; preds = %24 %33 = add nuw i32 %25, 1 - %34 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %33) + %34 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %33) %or.cond.i.i.i.i = icmp eq i32 %34, 1 %35 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %33, i1 true) %36 = sub nuw nsw i32 32, %35 @@ -3907,7 +3907,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %56, 58: ; preds = %36 %59 = add i32 %32, 1 - %60 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %59) + %60 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %59) %or.cond.i.i.i.i = icmp eq i32 %60, 1 %61 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %59, i1 true) %62 = sub nuw nsw i32 32, %61 @@ -3985,7 +3985,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit: ; preds = %22, %24 27: ; preds = %2 %28 = add i32 %1, 1 - %29 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %28) + %29 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %28) %or.cond.i.i = icmp eq i32 %29, 1 %30 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %28, i1 true) %31 = sub nuw nsw i32 32, %30 @@ -4059,7 +4059,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit: ; preds = %22, %24 27: ; preds = %2 %28 = add i32 %1, 1 - %29 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %28) + %29 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %28) %or.cond.i.i = icmp eq i32 %29, 1 %30 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %28, i1 true) %31 = sub nuw nsw i32 32, %30 @@ -4198,7 +4198,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i: ; preds = %42, % %46 = phi ptr [ %10, %.thread ], [ %.pre, %._crit_edge16 ] %47 = phi ptr [ %21, %.thread ], [ %30, %._crit_edge16 ] %48 = add i32 %6, 2 - %49 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %48) + %49 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %48) %or.cond.i.i.i = icmp eq i32 %49, 1 %50 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %48, i1 true) %51 = sub nuw nsw i32 32, %50 @@ -4330,7 +4330,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %113 115: ; preds = %93 %116 = add i32 %89, 1 - %117 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %116) + %117 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %116) %or.cond.i.i.i.i = icmp eq i32 %117, 1 %118 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %116, i1 true) %119 = sub nuw nsw i32 32, %118 @@ -4434,7 +4434,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i: ; preds = %41, % 44: ; preds = %21 %45 = add nuw i32 %2, 1 %46 = add i32 %45, %12 - %47 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %46) + %47 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %46) %or.cond.i.i.i = icmp eq i32 %47, 1 %48 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %46, i1 true) %49 = sub nuw nsw i32 32, %48 @@ -4598,7 +4598,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %131 133: ; preds = %112 %134 = add i32 %109, 1 - %135 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %134) + %135 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %134) %or.cond.i.i.i.i = icmp eq i32 %135, 1 %136 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %134, i1 true) %137 = sub nuw nsw i32 32, %136 @@ -4956,7 +4956,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %56, 58: ; preds = %36 %59 = add i32 %32, 1 - %60 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %59) + %60 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %59) %or.cond.i.i.i.i = icmp eq i32 %60, 1 %61 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %59, i1 true) %62 = sub nuw nsw i32 32, %61 @@ -5334,7 +5334,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %110 112: ; preds = %90 %113 = add i32 %86, 1 - %114 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %113) + %114 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %113) %or.cond.i.i.i.i = icmp eq i32 %114, 1 %115 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %113, i1 true) %116 = sub nuw nsw i32 32, %115 @@ -5990,7 +5990,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i: ; preds = %42, % %46 = phi ptr [ %10, %.thread ], [ %.pre, %._crit_edge19 ] %47 = phi ptr [ %21, %.thread ], [ %30, %._crit_edge19 ] %48 = add i32 %6, 2 - %49 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %48) + %49 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %48) %or.cond.i.i.i = icmp eq i32 %49, 1 %50 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %48, i1 true) %51 = sub nuw nsw i32 32, %50 @@ -6098,7 +6098,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i: ; preds = %109 111: ; preds = %89 %112 = add i32 %85, 1 - %113 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %112) + %113 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %112) %or.cond.i.i.i.i = icmp eq i32 %113, 1 %114 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %112, i1 true) %115 = sub nuw nsw i32 32, %114 @@ -6701,7 +6701,7 @@ _ZN9Node_List6removeEj.exit: ; preds = %112, %_ZN4Copy23con br i1 %.not.i.i, label %_ZN9Node_List4pushEP4Node.exit, label %150 150: ; preds = %._crit_edge - %151 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %148) + %151 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %148) %or.cond.i.i.i.i.i = icmp eq i32 %151, 1 %152 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %148, i1 true) %153 = sub nuw nsw i32 32, %152 @@ -6900,7 +6900,7 @@ _ZN9VectorSet8test_setEj.exit.i: ; preds = %64, %55 br i1 %.not.i.i94.i, label %_ZN9Node_List4pushEP4Node.exit97.i, label %84 84: ; preds = %83 - %85 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %.sroa.47.0203.i) + %85 = call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %.sroa.47.0203.i) %or.cond.i.i.i.i.i95.i = icmp eq i32 %85, 1 %86 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %.sroa.47.0203.i, i1 true) %87 = sub nuw nsw i32 32, %86 @@ -7029,7 +7029,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i.i.i: ; preds = 156: ; preds = %135 %157 = add i32 %132, 1 - %158 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %157) + %158 = call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %157) %or.cond.i.i.i.i.i100.i = icmp eq i32 %158, 1 %159 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %157, i1 true) %160 = sub nuw nsw i32 32, %159 @@ -7060,7 +7060,7 @@ _ZN4Node7set_reqEjPS_.exit.i: ; preds = %_ZN4Node8out_growEj br i1 %.not.i.i102.i, label %_ZN16Unique_Node_List4pushEP4Node.exit.sink.split.i, label %173 173: ; preds = %_ZN4Node7set_reqEjPS_.exit.i - %174 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %172) + %174 = call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %172) %or.cond.i.i.i.i.i103.i = icmp eq i32 %174, 1 %175 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %172, i1 true) %176 = sub nuw nsw i32 32, %175 @@ -7109,7 +7109,7 @@ _ZN4Node7set_reqEjPS_.exit.i: ; preds = %_ZN4Node8out_growEj br i1 %.not.i.i106.i, label %_ZN16Unique_Node_List4pushEP4Node.exit.sink.split.i, label %199 199: ; preds = %197 - %200 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %198) + %200 = call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %198) %or.cond.i.i.i.i.i107.i = icmp eq i32 %200, 1 %201 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %198, i1 true) %202 = sub nuw nsw i32 32, %201 @@ -7227,7 +7227,7 @@ _ZN5Arena7AmallocEmN17AllocFailStrategy13AllocFailEnumE.exit.i.i.i119.i: ; preds 267: ; preds = %246 %268 = add i32 %243, 1 - %269 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %268) + %269 = call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %268) %or.cond.i.i.i.i.i116.i = icmp eq i32 %269, 1 %270 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %268, i1 true) %271 = sub nuw nsw i32 32, %270 @@ -7291,7 +7291,7 @@ _ZN4Node7set_reqEjPS_.exit121.i: ; preds = %284, %283, %_ZN4Nod br i1 %.not.i.i122.i, label %_ZN16Unique_Node_List4pushEP4Node.exit.sink.split.i, label %298 298: ; preds = %296 - %299 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %297) + %299 = call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %297) %or.cond.i.i.i.i.i123.i = icmp eq i32 %299, 1 %300 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %297, i1 true) %301 = sub nuw nsw i32 32, %300 @@ -7348,7 +7348,7 @@ _ZN9VectorSet8test_setEj.exit.i.i: ; preds = %319, %312 br i1 %.not.i.i.i.i, label %_ZN9Node_List4pushEP4Node.exit.i.i, label %335 335: ; preds = %329 - %336 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %332) + %336 = call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %332) %or.cond.i.i.i.i.i.i.i = icmp eq i32 %336, 1 %337 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %332, i1 true) %338 = sub nuw nsw i32 32, %337 @@ -7472,7 +7472,7 @@ _ZN11PhaseValues8set_typeEPK4NodePK4Type.exit.i: ; preds = %370, %361 br i1 %.not.i.i129.i, label %_ZN9Node_List4pushEP4Node.exit132.i, label %396 396: ; preds = %394 - %397 = call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %395) + %397 = call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %395) %or.cond.i.i.i.i.i130.i = icmp eq i32 %397, 1 %398 = call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %395, i1 true) %399 = sub nuw nsw i32 32, %398 @@ -7950,7 +7950,7 @@ define hidden void @_ZN10Node_Array4growEj(ptr nocapture noundef nonnull align 8 %3 = getelementptr inbounds i8, ptr %0, i64 8 %4 = load i32, ptr %3, align 8 %5 = add i32 %1, 1 - %6 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %5) + %6 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %5) %or.cond.i.i = icmp eq i32 %6, 1 %7 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %5, i1 true) %8 = sub nuw nsw i32 32, %7 @@ -7990,7 +7990,7 @@ define hidden void @_ZN10Node_Array6insertEjP4Node(ptr nocapture noundef nonnull 12: ; preds = %3 %13 = add i32 %7, 1 - %14 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %13) + %14 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %13) %or.cond.i.i.i = icmp eq i32 %14, 1 %15 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %13, i1 true) %16 = sub nuw nsw i32 32, %15 @@ -8571,7 +8571,7 @@ _ZN9VectorSet6removeEj.exit: ; preds = %_ZNK9VectorSet4test 44: ; preds = %_ZN9VectorSet6removeEj.exit %45 = add nuw i32 %.011, 1 - %46 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %45) + %46 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %45) %or.cond.i.i.i.i = icmp eq i32 %46, 1 %47 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %45, i1 true) %48 = sub nuw nsw i32 32, %47 diff --git a/bench/postgres/optimized/list.ll b/bench/postgres/optimized/list.ll index 5dc05502776..f27cf627765 100644 --- a/bench/postgres/optimized/list.ll +++ b/bench/postgres/optimized/list.ll @@ -131,7 +131,7 @@ define dso_local noundef ptr @lappend(ptr noundef %0, ptr noundef %1) local_unna 15: ; preds = %10 %16 = add i32 %12, 1 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 16) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -213,7 +213,7 @@ define dso_local noundef ptr @lappend_int(ptr noundef %0, i32 noundef %1) local_ 15: ; preds = %10 %16 = add i32 %12, 1 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 16) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -295,7 +295,7 @@ define dso_local noundef ptr @lappend_oid(ptr noundef %0, i32 noundef %1) local_ 15: ; preds = %10 %16 = add i32 %12, 1 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 16) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -377,7 +377,7 @@ define dso_local noundef ptr @lappend_xid(ptr noundef %0, i32 noundef %1) local_ 15: ; preds = %10 %16 = add i32 %12, 1 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 16) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -471,7 +471,7 @@ define internal fastcc ptr @insert_new_cell(ptr noundef %0, i32 noundef %1) unna 7: ; preds = %2 %8 = add i32 %4, 1 %9 = tail call i32 @llvm.smax.i32(i32 %8, i32 16) - %10 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %9) + %10 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %9) %11 = icmp ult i32 %10, 2 %12 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %9, i1 true) %13 = xor i32 %12, 31 @@ -628,7 +628,7 @@ define dso_local noundef ptr @lcons(ptr noundef %0, ptr noundef %1) local_unname 15: ; preds = %10 %16 = add i32 %12, 1 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 16) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -713,7 +713,7 @@ define dso_local noundef ptr @lcons_int(i32 noundef %0, ptr noundef %1) local_un 15: ; preds = %10 %16 = add i32 %12, 1 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 16) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -798,7 +798,7 @@ define dso_local noundef ptr @lcons_oid(i32 noundef %0, ptr noundef %1) local_un 15: ; preds = %10 %16 = add i32 %12, 1 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 16) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -870,7 +870,7 @@ define dso_local noundef ptr @list_concat(ptr noundef %0, ptr noundef readonly % %9 = load i32, ptr %8, align 4 %10 = add i32 %9, 3 %11 = tail call i32 @llvm.smax.i32(i32 %10, i32 8) - %12 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %11) + %12 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %11) %13 = icmp ult i32 %12, 2 %14 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %11, i1 true) %15 = xor i32 %14, 31 @@ -912,7 +912,7 @@ define dso_local noundef ptr @list_concat(ptr noundef %0, ptr noundef readonly % 40: ; preds = %31 %41 = tail call i32 @llvm.smax.i32(i32 %36, i32 16) - %42 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %41) + %42 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %41) %43 = icmp ult i32 %42, 2 %44 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %41, i1 true) %45 = xor i32 %44, 31 @@ -980,7 +980,7 @@ define dso_local noundef ptr @list_copy(ptr noundef readonly %0) local_unnamed_a %6 = load i32, ptr %5, align 4 %7 = add i32 %6, 3 %8 = tail call i32 @llvm.smax.i32(i32 %7, i32 8) - %9 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %8) + %9 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %8) %10 = icmp ult i32 %9, 2 %11 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %8, i1 true) %12 = xor i32 %11, 31 @@ -1026,7 +1026,7 @@ define dso_local noundef ptr @list_concat_copy(ptr noundef readonly %0, ptr noun %9 = load i32, ptr %8, align 4 %10 = add i32 %9, 3 %11 = tail call i32 @llvm.smax.i32(i32 %10, i32 8) - %12 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %11) + %12 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %11) %13 = icmp ult i32 %12, 2 %14 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %11, i1 true) %15 = xor i32 %14, 31 @@ -1061,7 +1061,7 @@ list_copy.exit20: ; preds = %30 %33 = load i32, ptr %32, align 4 %34 = add i32 %33, 3 %35 = tail call i32 @llvm.smax.i32(i32 %34, i32 8) - %36 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %35) + %36 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %35) %37 = icmp ult i32 %36, 2 %38 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %35, i1 true) %39 = xor i32 %38, 31 @@ -1096,7 +1096,7 @@ list_copy.exit20: ; preds = %30 %60 = load i32, ptr %0, align 8 %61 = add i32 %59, 3 %62 = tail call i32 @llvm.smax.i32(i32 %61, i32 8) - %63 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %62) + %63 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %62) %64 = icmp ult i32 %63, 2 %65 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %62, i1 true) %66 = xor i32 %65, 31 @@ -1863,7 +1863,7 @@ define dso_local ptr @list_union(ptr noundef readonly %0, ptr noundef readonly % %7 = load i32, ptr %6, align 4 %8 = add i32 %7, 3 %9 = tail call i32 @llvm.smax.i32(i32 %8, i32 8) - %10 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %9) + %10 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %9) %11 = icmp ult i32 %10, 2 %12 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %9, i1 true) %13 = xor i32 %12, 31 @@ -1965,7 +1965,7 @@ define dso_local ptr @list_union_ptr(ptr noundef readonly %0, ptr noundef readon %7 = load i32, ptr %6, align 4 %8 = add i32 %7, 3 %9 = tail call i32 @llvm.smax.i32(i32 %8, i32 8) - %10 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %9) + %10 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %9) %11 = icmp ult i32 %10, 2 %12 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %9, i1 true) %13 = xor i32 %12, 31 @@ -2066,7 +2066,7 @@ define dso_local ptr @list_union_int(ptr noundef readonly %0, ptr noundef readon %7 = load i32, ptr %6, align 4 %8 = add i32 %7, 3 %9 = tail call i32 @llvm.smax.i32(i32 %8, i32 8) - %10 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %9) + %10 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %9) %11 = icmp ult i32 %10, 2 %12 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %9, i1 true) %13 = xor i32 %12, 31 @@ -2167,7 +2167,7 @@ define dso_local ptr @list_union_oid(ptr noundef readonly %0, ptr noundef readon %7 = load i32, ptr %6, align 4 %8 = add i32 %7, 3 %9 = tail call i32 @llvm.smax.i32(i32 %8, i32 8) - %10 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %9) + %10 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %9) %11 = icmp ult i32 %10, 2 %12 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %9, i1 true) %13 = xor i32 %12, 31 @@ -2424,7 +2424,7 @@ define dso_local ptr @list_difference(ptr noundef readonly %0, ptr noundef reado %15 = load i32, ptr %14, align 4 %16 = add i32 %15, 3 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 8) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -2525,7 +2525,7 @@ define dso_local ptr @list_difference_ptr(ptr noundef readonly %0, ptr noundef r %15 = load i32, ptr %14, align 4 %16 = add i32 %15, 3 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 8) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -2625,7 +2625,7 @@ define dso_local ptr @list_difference_int(ptr noundef readonly %0, ptr noundef r %15 = load i32, ptr %14, align 4 %16 = add i32 %15, 3 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 8) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -2725,7 +2725,7 @@ define dso_local ptr @list_difference_oid(ptr noundef readonly %0, ptr noundef r %15 = load i32, ptr %14, align 4 %16 = add i32 %15, 3 %17 = tail call i32 @llvm.smax.i32(i32 %16, i32 8) - %18 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %17) + %18 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %17) %19 = icmp ult i32 %18, 2 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %17, i1 true) %21 = xor i32 %20, 31 @@ -3314,7 +3314,7 @@ define dso_local noundef ptr @list_copy_head(ptr noundef readonly %0, i32 nounde %8 = load i32, ptr %0, align 8 %9 = add i32 %., 3 %10 = tail call i32 @llvm.smax.i32(i32 %9, i32 8) - %11 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %10) + %11 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %10) %12 = icmp ult i32 %11, 2 %13 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %10, i1 true) %14 = xor i32 %13, 31 @@ -3362,7 +3362,7 @@ define dso_local noundef ptr @list_copy_tail(ptr noundef readonly %0, i32 nounde %9 = sub nsw i32 %6, %spec.store.select %10 = add i32 %9, 3 %11 = tail call i32 @llvm.smax.i32(i32 %10, i32 8) - %12 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %11) + %12 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %11) %13 = icmp ult i32 %12, 2 %14 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %11, i1 true) %15 = xor i32 %14, 31 @@ -3406,7 +3406,7 @@ define dso_local noundef ptr @list_copy_deep(ptr noundef readonly %0) local_unna %6 = load i32, ptr %5, align 4 %7 = add i32 %6, 3 %8 = tail call i32 @llvm.smax.i32(i32 %7, i32 8) - %9 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %8) + %9 = tail call range(i32 1, 32) i32 @llvm.ctpop.i32(i32 %8) %10 = icmp ult i32 %9, 2 %11 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %8, i1 true) %12 = xor i32 %11, 31 diff --git a/bench/qemu/optimized/target_riscv_pmu.c.ll b/bench/qemu/optimized/target_riscv_pmu.c.ll index edc1437b812..c402683c87d 100644 --- a/bench/qemu/optimized/target_riscv_pmu.c.ll +++ b/bench/qemu/optimized/target_riscv_pmu.c.ll @@ -9,7 +9,6 @@ target triple = "x86_64-unknown-linux-gnu" @.str.1 = private unnamed_addr constant [27 x i8] c"../qemu/target/riscv/pmu.c\00", align 1 @__func__.riscv_pmu_init = private unnamed_addr constant [15 x i8] c"riscv_pmu_init\00", align 1 @.str.2 = private unnamed_addr constant [43 x i8] c"\22pmu-mask\22 contains invalid bits (0-2) set\00", align 1 -@.str.3 = private unnamed_addr constant [45 x i8] c"Number of counters exceeds maximum available\00", align 1 @.str.4 = private unnamed_addr constant [40 x i8] c"Unable to allocate PMU event hash table\00", align 1 @use_icount = external local_unnamed_addr global i32, align 4 @@ -643,22 +642,13 @@ entry: %0 = load i32, ptr %pmu_mask, align 4 %and = and i32 %0, 7 %tobool.not = icmp eq i32 %and, 0 - br i1 %tobool.not, label %if.end, label %if.then + br i1 %tobool.not, label %if.end4, label %if.then if.then: ; preds = %entry tail call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef %errp, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef nonnull @__func__.riscv_pmu_init, ptr noundef nonnull @.str.2) #6 br label %return -if.end: ; preds = %entry - %1 = tail call range(i32 0, 33) i32 @llvm.ctpop.i32(i32 %0) - %cmp = icmp ugt i32 %1, 29 - br i1 %cmp, label %if.then3, label %if.end4 - -if.then3: ; preds = %if.end - tail call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef %errp, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef nonnull @__func__.riscv_pmu_init, ptr noundef nonnull @.str.3) #6 - br label %return - -if.end4: ; preds = %if.end +if.end4: ; preds = %entry %call5 = tail call ptr @g_hash_table_new(ptr noundef nonnull @g_direct_hash, ptr noundef nonnull @g_direct_equal) #6 %pmu_event_ctr_map = getelementptr inbounds i8, ptr %cpu, i64 19184 store ptr %call5, ptr %pmu_event_ctr_map, align 16 @@ -670,12 +660,12 @@ if.then8: ; preds = %if.end4 br label %return if.end9: ; preds = %if.end4 - %2 = load i32, ptr %pmu_mask, align 4 + %1 = load i32, ptr %pmu_mask, align 4 %pmu_avail_ctrs = getelementptr inbounds i8, ptr %cpu, i64 19176 - store i32 %2, ptr %pmu_avail_ctrs, align 8 + store i32 %1, ptr %pmu_avail_ctrs, align 8 br label %return -return: ; preds = %if.end9, %if.then8, %if.then3, %if.then +return: ; preds = %if.end9, %if.then8, %if.then ret void } @@ -696,9 +686,6 @@ declare i64 @riscv_cpu_update_mip(ptr noundef, i64 noundef, i64 noundef) local_u declare i64 @icount_to_ns(i64 noundef) local_unnamed_addr #2 -; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.ctpop.i32(i32) #5 - attributes #0 = { nounwind sspstrong uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #2 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx16,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/rust-analyzer-rs/optimized/a1gz87jxvbvnc32.ll b/bench/rust-analyzer-rs/optimized/a1gz87jxvbvnc32.ll index d06f04067c5..a0ffafbbc2d 100644 --- a/bench/rust-analyzer-rs/optimized/a1gz87jxvbvnc32.ll +++ b/bench/rust-analyzer-rs/optimized/a1gz87jxvbvnc32.ll @@ -14812,7 +14812,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -14870,7 +14870,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -14928,7 +14928,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -14986,7 +14986,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15044,7 +15044,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15102,7 +15102,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15160,7 +15160,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15218,7 +15218,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15276,7 +15276,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15334,7 +15334,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15392,7 +15392,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15450,7 +15450,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15508,7 +15508,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15566,7 +15566,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -15624,7 +15624,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 diff --git a/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll b/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll index 77e42cced5c..f400ca8b987 100644 --- a/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll +++ b/bench/rust-analyzer-rs/optimized/mucn4qgqdg2891h.ll @@ -16201,7 +16201,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -16259,7 +16259,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -16317,7 +16317,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -16375,7 +16375,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -16433,7 +16433,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -16491,7 +16491,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -16549,7 +16549,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 @@ -16607,7 +16607,7 @@ define hidden void @"_ZN7dashmap24DashMap$LT$K$C$V$C$S$GT$41with_capacity_and_ha unreachable 10: ; preds = %3 - %11 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %2) + %11 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %2) %12 = icmp eq i64 %11, 1 br i1 %12, label %13, label %27 diff --git a/bench/simdjson/optimized/simdjson.cpp.ll b/bench/simdjson/optimized/simdjson.cpp.ll index e3193bd2b22..f5778dbbe48 100644 --- a/bench/simdjson/optimized/simdjson.cpp.ll +++ b/bench/simdjson/optimized/simdjson.cpp.ll @@ -6958,7 +6958,7 @@ if.end.i.i.i: ; preds = %_ZNK8simdjson7icela %14 = tail call <64 x i8> @llvm.x86.avx512.mask.compress.v64i8(<64 x i8> , <64 x i8> zeroinitializer, <64 x i1> %13) %vecinit.i66.i.i.i = insertelement <16 x i32> poison, i32 %conv.i.i, i64 0 %vecinit15.i81.i.i.i = shufflevector <16 x i32> %vecinit.i66.i.i.i, <16 x i32> poison, <16 x i32> zeroinitializer - %15 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %11) + %15 = tail call noundef range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %11) %16 = shufflevector <64 x i8> %14, <64 x i8> poison, <16 x i32> %conv.i88.i.i.i = zext <16 x i8> %16 to <16 x i32> %17 = load ptr, ptr %indexer.i.i, align 64 @@ -8902,7 +8902,7 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage112json_scanner4nextERKNS1_4simd8simd8x %shr.i.i.i.i = lshr i64 %and.i.i.i.i.i.i, 16 %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %minifier.sroa.14.0251.i, i64 16 %and.i.i.i.i = and i64 %and.i.i.i.i.i.i, 65535 - %25 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %and.i.i.i.i) + %25 = tail call noundef range(i64 0, 17) i64 @llvm.ctpop.i64(i64 %and.i.i.i.i) %idx.neg.i.i.i.i = sub nsw i64 0, %25 %add.ptr5.i.i.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i.i, i64 %idx.neg.i.i.i.i %26 = lshr i64 %and.i.i.i.i.i.i, 24 @@ -8928,7 +8928,7 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage112json_scanner4nextERKNS1_4simd8simd8x %shr8.i.i.i.i = lshr i64 %and.i.i.i.i.i.i, 32 %add.ptr10.i.i.i.i = getelementptr inbounds i8, ptr %minifier.sroa.14.0251.i, i64 32 %and11.i.i.i.i = and i64 %and.i.i.i.i.i.i, 4294967295 - %34 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %and11.i.i.i.i) + %34 = tail call noundef range(i64 0, 33) i64 @llvm.ctpop.i64(i64 %and11.i.i.i.i) %idx.neg13.i.i.i.i = sub nsw i64 0, %34 %add.ptr14.i.i.i.i = getelementptr inbounds i8, ptr %add.ptr10.i.i.i.i, i64 %idx.neg13.i.i.i.i %35 = lshr i64 %and.i.i.i.i.i.i, 40 @@ -8954,7 +8954,7 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage112json_scanner4nextERKNS1_4simd8simd8x %shr17.i.i.i.i = lshr i64 %and.i.i.i.i.i.i, 48 %add.ptr19.i.i.i.i = getelementptr inbounds i8, ptr %minifier.sroa.14.0251.i, i64 48 %and20.i.i.i.i = and i64 %or15.i.i.i.i.i, %not.i.i.i.i.i.i - %43 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %and20.i.i.i.i) + %43 = tail call noundef range(i64 0, 49) i64 @llvm.ctpop.i64(i64 %and20.i.i.i.i) %idx.neg22.i.i.i.i = sub nsw i64 0, %43 %add.ptr23.i.i.i.i = getelementptr inbounds i8, ptr %add.ptr19.i.i.i.i, i64 %idx.neg22.i.i.i.i %conv3.i33.i.i.i.i = lshr i64 %and.i.i.i.i.i.i, 56 @@ -9109,7 +9109,7 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage112json_scanner4nextERKNS1_4simd8simd8x %shr.i.i.i46.i = lshr i64 %and.i.i.i.i.i33.i, 16 %add.ptr.i.i.i47.i = getelementptr inbounds i8, ptr %out_block.i, i64 16 %and.i.i.i48.i = and i64 %and.i.i.i.i.i33.i, 65535 - %78 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %and.i.i.i48.i) + %78 = tail call noundef range(i64 0, 17) i64 @llvm.ctpop.i64(i64 %and.i.i.i48.i) %idx.neg.i.i.i49.i = sub nsw i64 0, %78 %add.ptr5.i.i.i50.i = getelementptr inbounds i8, ptr %add.ptr.i.i.i47.i, i64 %idx.neg.i.i.i49.i %79 = lshr i64 %and.i.i.i.i.i33.i, 24 @@ -9135,7 +9135,7 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage112json_scanner4nextERKNS1_4simd8simd8x %shr8.i.i.i62.i = lshr i64 %and.i.i.i.i.i33.i, 32 %add.ptr10.i.i.i63.i = getelementptr inbounds i8, ptr %out_block.i, i64 32 %and11.i.i.i64.i = and i64 %and.i.i.i.i.i33.i, 4294967295 - %87 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %and11.i.i.i64.i) + %87 = tail call noundef range(i64 0, 33) i64 @llvm.ctpop.i64(i64 %and11.i.i.i64.i) %idx.neg13.i.i.i65.i = sub nsw i64 0, %87 %add.ptr14.i.i.i66.i = getelementptr inbounds i8, ptr %add.ptr10.i.i.i63.i, i64 %idx.neg13.i.i.i65.i %88 = lshr i64 %and.i.i.i.i.i33.i, 40 @@ -9161,7 +9161,7 @@ _ZN8simdjson8westmere12_GLOBAL__N_16stage112json_scanner4nextERKNS1_4simd8simd8x %shr17.i.i.i78.i = lshr i64 %and.i.i.i.i.i33.i, 48 %add.ptr19.i.i.i79.i = getelementptr inbounds i8, ptr %out_block.i, i64 48 %and20.i.i.i80.i = and i64 %or15.i.i.i.i171.i, %not.i.i.i.i.i32.i - %96 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %and20.i.i.i80.i) + %96 = tail call noundef range(i64 0, 49) i64 @llvm.ctpop.i64(i64 %and20.i.i.i80.i) %idx.neg22.i.i.i81.i = sub nsw i64 0, %96 %add.ptr23.i.i.i82.i = getelementptr inbounds i8, ptr %add.ptr19.i.i.i79.i, i64 %idx.neg22.i.i.i81.i %conv3.i33.i.i.i83.i = lshr i64 %and.i.i.i.i.i33.i, 56 @@ -14242,7 +14242,7 @@ invoke.cont7: ; preds = %if.end.i.i18, %invo store <4 x i32> %extract.i.i.i, ptr %add.ptr40.i.i.i, align 1 %add.ptr.i.i = getelementptr inbounds i8, ptr %24, i64 32 %conv5.i.i = and i64 %and.i.i.i.i, 4294967295 - %41 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %conv5.i.i) + %41 = tail call noundef range(i64 0, 33) i64 @llvm.ctpop.i64(i64 %conv5.i.i) %idx.neg.i.i = sub nsw i64 0, %41 %add.ptr6.i.i = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 %idx.neg.i.i %shr.i5.i.i = lshr i64 %and.i.i.i.i, 40 @@ -14354,7 +14354,7 @@ invoke.cont7: ; preds = %if.end.i.i18, %invo store <4 x i32> %extract.i.i.i108, ptr %add.ptr40.i.i.i112, align 1 %add.ptr.i.i114 = getelementptr inbounds i8, ptr %add.ptr.i72, i64 32 %conv5.i.i115 = and i64 %and.i.i.i.i74, 4294967295 - %76 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %conv5.i.i115) + %76 = tail call noundef range(i64 0, 33) i64 @llvm.ctpop.i64(i64 %conv5.i.i115) %idx.neg.i.i116 = sub nsw i64 0, %76 %add.ptr6.i.i117 = getelementptr inbounds i8, ptr %add.ptr.i.i114, i64 %idx.neg.i.i116 %shr.i5.i.i119 = lshr i64 %and.i.i.i.i74, 40 @@ -14815,7 +14815,7 @@ entry: br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %0 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %bits) + %0 = tail call noundef range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %bits) %this.val.i.i = load ptr, ptr %this, align 8 %1 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %bits, i1 true) %cast.i.i.i.i = trunc nuw nsw i64 %1 to i32 @@ -16223,7 +16223,7 @@ if.end.i.i42: ; preds = %_ZN8simdjson7icelak %47 = tail call <64 x i8> @llvm.x86.avx512.mask.compress.v64i8(<64 x i8> , <64 x i8> zeroinitializer, <64 x i1> %46) %vecinit.i66.i.i = insertelement <16 x i32> poison, i32 %conv.i, i64 0 %vecinit15.i81.i.i = shufflevector <16 x i32> %vecinit.i66.i.i, <16 x i32> poison, <16 x i32> zeroinitializer - %48 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %44) + %48 = tail call noundef range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %44) %49 = shufflevector <64 x i8> %47, <64 x i8> poison, <16 x i32> %conv.i88.i.i = zext <16 x i8> %49 to <16 x i32> %50 = load ptr, ptr %indexer.i, align 64 @@ -16346,7 +16346,7 @@ if.end.i.i73: ; preds = %_ZN8simdjson7icelak %82 = tail call <64 x i8> @llvm.x86.avx512.mask.compress.v64i8(<64 x i8> , <64 x i8> zeroinitializer, <64 x i1> %81) %vecinit.i66.i.i75 = insertelement <16 x i32> poison, i32 %80, i64 0 %vecinit15.i81.i.i76 = shufflevector <16 x i32> %vecinit.i66.i.i75, <16 x i32> poison, <16 x i32> zeroinitializer - %83 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %and.i.i44) + %83 = tail call noundef range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %and.i.i44) %84 = shufflevector <64 x i8> %82, <64 x i8> poison, <16 x i32> %conv.i88.i.i78 = zext <16 x i8> %84 to <16 x i32> %85 = load ptr, ptr %indexer.i, align 64 @@ -17730,7 +17730,7 @@ entry: br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry - %0 = tail call noundef range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %bits) + %0 = tail call noundef range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %bits) %this.val.i.i = load ptr, ptr %this, align 8 %1 = tail call range(i64 0, 65) i64 @llvm.cttz.i64(i64 %bits, i1 true) %cast.i.i.i.i = trunc nuw nsw i64 %1 to i32 diff --git a/bench/tev/optimized/main.cpp.ll b/bench/tev/optimized/main.cpp.ll index 49765809936..c1d4e5cef6c 100644 --- a/bench/tev/optimized/main.cpp.ll +++ b/bench/tev/optimized/main.cpp.ll @@ -17240,7 +17240,7 @@ define linkonce_odr dso_local { ptr, i8 } @_ZNSt3__112__hash_tableIcNS_4hashIcEE br i1 %.not, label %.critedge, label %8 8: ; preds = %3 - %9 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %7) + %9 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %7) %.not.i = icmp ult i64 %9, 2 br i1 %.not.i, label %10, label %13 @@ -17355,7 +17355,7 @@ _ZNSt3__116__constrain_hashB8ne190000Emm.exit53: ; preds = %34, %36 br i1 %59, label %60, label %63 60: ; preds = %57 - %61 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %7) + %61 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %7) %.not.i54 = icmp ugt i64 %61, 1 %62 = zext i1 %.not.i54 to i64 br label %63 @@ -17395,7 +17395,7 @@ _ZNSt3__116__constrain_hashB8ne190000Emm.exit53: ; preds = %34, %36 78: ; preds = %76 %79 = icmp ugt i64 %74, 2 - %80 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %74) + %80 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %74) %.not.i.i.i = icmp ult i64 %80, 2 %or.cond.i.i = select i1 %79, i1 %.not.i.i.i, i1 false %81 = load i64, ptr %48, align 8 @@ -17574,7 +17574,7 @@ _ZNSt3__110unique_ptrIA_PNS_16__hash_node_baseIPNS_11__hash_nodeIcPvEEEENS_25__b 18: ; preds = %15 %19 = getelementptr inbounds i8, ptr %17, i64 8 %20 = load i64, ptr %19, align 8 - %21 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %1) + %21 = tail call range(i64 1, 62) i64 @llvm.ctpop.i64(i64 %1) %.not.i47 = icmp ult i64 %21, 2 br i1 %.not.i47, label %_ZNSt3__116__constrain_hashB8ne190000Emm.exit.thread, label %22 @@ -17766,7 +17766,7 @@ _ZNKSt3__113__string_hashIcNS_9allocatorIcEEEclB8ne190000ERKNS_12basic_stringIcN br i1 %.not, label %.critedge, label %23 23: ; preds = %_ZNKSt3__113__string_hashIcNS_9allocatorIcEEEclB8ne190000ERKNS_12basic_stringIcNS_11char_traitsIcEES2_EE.exit - %24 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %22) + %24 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %22) %.not.i = icmp ult i64 %24, 2 br i1 %.not.i, label %25, label %28 @@ -17984,7 +17984,7 @@ _ZNSt3__112__hash_tableINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEE br i1 %113, label %114, label %117 114: ; preds = %111 - %115 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %22) + %115 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %22) %.not.i55 = icmp ugt i64 %115, 1 %116 = zext i1 %.not.i55 to i64 br label %117 @@ -18020,7 +18020,7 @@ _ZNSt3__112__hash_tableINS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEE 132: ; preds = %130 %133 = icmp ugt i64 %128, 2 - %134 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %128) + %134 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %128) %.not.i.i.i57 = icmp ult i64 %134, 2 %or.cond.i.i = select i1 %133, i1 %.not.i.i.i57, i1 false %135 = load i64, ptr %102, align 8 @@ -18571,7 +18571,7 @@ _ZNSt3__110unique_ptrIA_PNS_16__hash_node_baseIPNS_11__hash_nodeINS_12basic_stri 18: ; preds = %15 %19 = getelementptr inbounds i8, ptr %17, i64 8 %20 = load i64, ptr %19, align 8 - %21 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %1) + %21 = tail call range(i64 1, 62) i64 @llvm.ctpop.i64(i64 %1) %.not.i47 = icmp ult i64 %21, 2 br i1 %.not.i47, label %_ZNSt3__116__constrain_hashB8ne190000Emm.exit.thread, label %22 @@ -20937,7 +20937,7 @@ define linkonce_odr hidden void @_ZNSt3__113unordered_setIcNS_4hashIcEENS_8equal 17: ; preds = %15 %18 = icmp ugt i64 %13, 2 - %19 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %13) + %19 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %13) %.not.i.i.i = icmp ult i64 %19, 2 %or.cond.i.i = select i1 %18, i1 %.not.i.i.i, i1 false %20 = getelementptr inbounds i8, ptr %0, i64 24 @@ -21047,7 +21047,7 @@ define linkonce_odr hidden void @_ZNSt3__113unordered_setINS_12basic_stringIcNS_ 17: ; preds = %15 %18 = icmp ugt i64 %13, 2 - %19 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %13) + %19 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %13) %.not.i.i.i = icmp ult i64 %19, 2 %or.cond.i.i = select i1 %18, i1 %.not.i.i.i, i1 false %20 = getelementptr inbounds i8, ptr %0, i64 24 @@ -21522,7 +21522,7 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZNK4args7Matcher5MatchERKNS_1 br i1 %.not.i.i.i, label %_ZNK4args7Matcher5MatchEc.exit, label %11 11: ; preds = %5 - %12 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %10) + %12 = tail call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %10) %.not.i.i.i.i = icmp ult i64 %12, 2 br i1 %.not.i.i.i.i, label %13, label %16 @@ -21683,7 +21683,7 @@ _ZNKSt3__113__string_hashIcNS_9allocatorIcEEEclB8ne190000ERKNS_12basic_stringIcN br i1 %.not, label %.critedge, label %21 21: ; preds = %_ZNKSt3__113__string_hashIcNS_9allocatorIcEEEclB8ne190000ERKNS_12basic_stringIcNS_11char_traitsIcEES2_EE.exit - %22 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %20) + %22 = call range(i64 1, 65) i64 @llvm.ctpop.i64(i64 %20) %.not.i = icmp ult i64 %22, 2 br i1 %.not.i, label %23, label %26 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index d8d993d1b31..40206df8348 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID="llvm/llvm-project/pull/100899" # Please rebase manually # git fetch origin