; RUN: analyze %s -datastructure-gc -dsgc-check-flags=Xn:SMR
; RUN: analyze %s -datastructure-gc -dsgc-check-flags=X:SM

declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint)
declare void %llvm.memmove.i32(sbyte*, sbyte*, uint, uint)

void %test() {
	%X = alloca int
	%Y = alloca int
	%x = cast int* %X to sbyte*
	%y = cast int* %Y to sbyte*
	store int 4, int* %X
	call void %llvm.memcpy.i32(sbyte* %x, sbyte* %y, uint 4, uint 4)
	ret void
}

void %test2() {
	%Xn = alloca int
	%Yn = alloca int
	%xn = cast int* %Xn to sbyte*
	%yn = cast int* %Yn to sbyte*
	store int 4, int* %Xn
	call void %llvm.memmove.i32(sbyte* %xn, sbyte* %yn, uint 4, uint 4)
	ret void
}
