<commit_before>; RUN: llc < %s -march=x86-64 | grep call.*memcpy | count 2

declare void @llvm.memcpy.i64(i8*, i8*, i64, i32)

define i8* @my_memcpy(i8* %a, i8* %b, i64 %n) nounwind {
entry:
	tail call void @llvm.memcpy.i64( i8* %a, i8* %b, i64 %n, i32 1 )
	ret i8* %a
}

define i8* @my_memcpy2(i64* %a, i64* %b, i64 %n) nounwind {
entry:
	%tmp14 = bitcast i64* %a to i8*
	%tmp25 = bitcast i64* %b to i8*
	tail call void @llvm.memcpy.i64(i8* %tmp14, i8* %tmp25, i64 %n, i32 8 )
	ret i8* %tmp14
}
<commit_msg>upgrade and filecheckize this test.<commit_after>; RUN: llc < %s -march=x86-64 | FileCheck %s

declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind


; Variable memcpy's should lower to calls.
define i8* @test1(i8* %a, i8* %b, i64 %n) nounwind {
entry:
	tail call void @llvm.memcpy.p0i8.p0i8.i64( i8* %a, i8* %b, i64 %n, i32 1, i1 0 )
	ret i8* %a
        
; CHECK: test1:
; CHECK: memcpy
}

; Variable memcpy's should lower to calls.
define i8* @test2(i64* %a, i64* %b, i64 %n) nounwind {
entry:
	%tmp14 = bitcast i64* %a to i8*
	%tmp25 = bitcast i64* %b to i8*
	tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %tmp14, i8* %tmp25, i64 %n, i32 8, i1 0 )
	ret i8* %tmp14
        
; CHECK: test2:
; CHECK: memcpy
}


{'fraction_non_alphanumeric': 0.16521048451151707, 'fraction_numerical': 0.11358220810166798, 'mean_word_length': 3.5985401459854014, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2821444', 'n_tokens_mistral': 668, 'n_tokens_neox': 603, 'n_words': 182}