blob: f66e14c95af7926ec3713d8d18f5d4039c16146a [file] [log] [blame]
Eli Friedman5842c992009-12-17 21:07:31 +00001; RUN: opt < %s -instcombine -S | FileCheck %s
2
Chris Lattner98e82672010-10-01 05:47:16 +00003declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind
Michael Liao69e172a2012-08-15 03:49:59 +00004declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind
Eli Friedman5842c992009-12-17 21:07:31 +00005
Chris Lattnerc663a672010-10-01 05:51:02 +00006define void @test1(i8* %a) {
Chris Lattner98e82672010-10-01 05:47:16 +00007 tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a, i8* %a, i32 100, i32 1, i1 false)
Eli Friedman5842c992009-12-17 21:07:31 +00008 ret void
Stephen Lina76289a2013-07-14 01:50:49 +00009; CHECK-LABEL: define void @test1(
Eli Friedman5842c992009-12-17 21:07:31 +000010; CHECK-NEXT: ret void
Chris Lattnerc663a672010-10-01 05:51:02 +000011}
12
13
14; PR8267
15define void @test2(i8* %a) {
16 tail call void @llvm.memcpy.p0i8.p0i8.i32(i8* %a, i8* %a, i32 100, i32 1, i1 true)
17 ret void
Stephen Lina76289a2013-07-14 01:50:49 +000018; CHECK-LABEL: define void @test2(
Chris Lattnerc663a672010-10-01 05:51:02 +000019; CHECK-NEXT: call void @llvm.memcpy
20}
Michael Liao69e172a2012-08-15 03:49:59 +000021
22define void @test3(i8* %d, i8* %s) {
23 tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %d, i8* %s, i64 17179869184, i32 4, i1 false)
24 ret void
Stephen Lina76289a2013-07-14 01:50:49 +000025; CHECK-LABEL: define void @test3(
Michael Liao69e172a2012-08-15 03:49:59 +000026; CHECK-NEXT: call void @llvm.memcpy
27}