blob: 5bbb8e099c41be725f82352ae55b14b6d9a7b3f9 [file] [log] [blame]
Nick Lewycky90271472009-11-10 06:46:40 +00001; RUN: opt -S -dse < %s | FileCheck %s
2
Pete Cooper67cf9a72015-11-19 05:56:52 +00003declare void @llvm.memcpy.p0i8.p0i8.i8(i8* nocapture, i8* nocapture, i8, i32, i1) nounwind
4declare void @llvm.memmove.p0i8.p0i8.i8(i8* nocapture, i8* nocapture, i8, i32, i1) nounwind
5declare void @llvm.memset.p0i8.i8(i8* nocapture, i8, i8, i32, i1) nounwind
Nick Lewycky90271472009-11-10 06:46:40 +00006
7define void @test1() {
Stephen Linc1c7a132013-07-14 01:42:54 +00008; CHECK-LABEL: @test1(
Nick Lewycky90271472009-11-10 06:46:40 +00009 %A = alloca i8
10 %B = alloca i8
11
12 store i8 0, i8* %A ;; Written to by memcpy
13; CHECK-NOT: store
14
Pete Cooper67cf9a72015-11-19 05:56:52 +000015 call void @llvm.memcpy.p0i8.p0i8.i8(i8* %A, i8* %B, i8 -1, i32 0, i1 false)
Nick Lewycky90271472009-11-10 06:46:40 +000016
17 ret void
18; CHECK: ret void
19}
20
21define void @test2() {
Stephen Linc1c7a132013-07-14 01:42:54 +000022; CHECK-LABEL: @test2(
Nick Lewycky90271472009-11-10 06:46:40 +000023 %A = alloca i8
24 %B = alloca i8
25
26 store i8 0, i8* %A ;; Written to by memmove
27; CHECK-NOT: store
28
Pete Cooper67cf9a72015-11-19 05:56:52 +000029 call void @llvm.memmove.p0i8.p0i8.i8(i8* %A, i8* %B, i8 -1, i32 0, i1 false)
Nick Lewycky90271472009-11-10 06:46:40 +000030
31 ret void
32; CHECK: ret void
33}
34
35define void @test3() {
Stephen Linc1c7a132013-07-14 01:42:54 +000036; CHECK-LABEL: @test3(
Nick Lewycky90271472009-11-10 06:46:40 +000037 %A = alloca i8
38 %B = alloca i8
39
40 store i8 0, i8* %A ;; Written to by memset
41; CHECK-NOT: store
42
Pete Cooper67cf9a72015-11-19 05:56:52 +000043 call void @llvm.memset.p0i8.i8(i8* %A, i8 0, i8 -1, i32 0, i1 false)
Nick Lewycky90271472009-11-10 06:46:40 +000044
45 ret void
46; CHECK: ret void
47}