diff --git a/llvm/test/Transforms/InstCombine/memcpy-from-global.ll b/llvm/test/Transforms/InstCombine/memcpy-from-global.ll index 4790139eea0def..67fb0596e1a9e7 100644 --- a/llvm/test/Transforms/InstCombine/memcpy-from-global.ll +++ b/llvm/test/Transforms/InstCombine/memcpy-from-global.ll @@ -366,4 +366,16 @@ define void @memcpy_from_just_readonly(ptr readonly align 8 dereferenceable(124) ret void } +; FIXME: Test that we incorrectly elide a volatile memcpy. +define void @volatile_memcpy() { +; CHECK-LABEL: @volatile_memcpy( +; CHECK-NEXT: call void @bar(ptr nonnull @H) #[[ATTR3]] +; CHECK-NEXT: ret void +; + %A = alloca %U, align 16 + call void @llvm.memcpy.p0.p0.i64(ptr align 4 %A, ptr align 4 @H, i64 20, i1 true) + call void @bar(ptr %A) readonly + ret void +} + attributes #0 = { null_pointer_is_valid }