[llvm] [DSE] Split memory intrinsics if they are dead in the middle (PR #75478)

Björn Pettersson via llvm-commits llvm-commits at lists.llvm.org
Fri May 3 08:07:04 PDT 2024


================
@@ -531,7 +533,9 @@ define void @test12_memset_other_store_in_between_partial_overlap(ptr %ptr) {
 
 define void @test12_memset_later_store_exceeds_memset(ptr %ptr) {
 ; CHECK-LABEL: @test12_memset_later_store_exceeds_memset(
-; CHECK-NEXT:    call void @llvm.memset.p0.i64(ptr align 1 [[PTR:%.*]], i8 0, i64 8, i1 false)
+; CHECK-NEXT:    [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[PTR:%.*]], i64 5
+; CHECK-NEXT:    call void @llvm.memset.p0.i64(ptr align 1 dereferenceable(5) [[TMP1]], i8 0, i64 5, i1 false)
----------------
bjope wrote:

This looks wrong? We used to have a single memset writing 8 bytes, and now we got two memset writing 5+4=9 bytes.

https://github.com/llvm/llvm-project/pull/75478


More information about the llvm-commits mailing list