blob: 68943d383ba6fa2c880526ec48e854df4bdd78e1 [file] [log] [blame]
Daniel Neilson7e2e5c32018-04-11 16:50:04 +00001; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
Nick Lewycky90271472009-11-10 06:46:40 +00002; RUN: opt -S -dse < %s | FileCheck %s
3
Daniel Neilson1e687242018-01-19 17:13:12 +00004declare void @llvm.memcpy.p0i8.p0i8.i8(i8* nocapture, i8* nocapture, i8, i1) nounwind
5declare void @llvm.memmove.p0i8.p0i8.i8(i8* nocapture, i8* nocapture, i8, i1) nounwind
6declare void @llvm.memset.p0i8.i8(i8* nocapture, i8, i8, i1) nounwind
Nick Lewycky90271472009-11-10 06:46:40 +00007
8define void @test1() {
Stephen Linc1c7a132013-07-14 01:42:54 +00009; CHECK-LABEL: @test1(
Daniel Neilson7e2e5c32018-04-11 16:50:04 +000010; CHECK-NEXT: ret void
11;
Nick Lewycky90271472009-11-10 06:46:40 +000012 %A = alloca i8
13 %B = alloca i8
14
15 store i8 0, i8* %A ;; Written to by memcpy
Nick Lewycky90271472009-11-10 06:46:40 +000016
Daniel Neilson1e687242018-01-19 17:13:12 +000017 call void @llvm.memcpy.p0i8.p0i8.i8(i8* %A, i8* %B, i8 -1, i1 false)
Nick Lewycky90271472009-11-10 06:46:40 +000018
19 ret void
Nick Lewycky90271472009-11-10 06:46:40 +000020}
21
22define void @test2() {
Stephen Linc1c7a132013-07-14 01:42:54 +000023; CHECK-LABEL: @test2(
Daniel Neilson7e2e5c32018-04-11 16:50:04 +000024; CHECK-NEXT: ret void
25;
Nick Lewycky90271472009-11-10 06:46:40 +000026 %A = alloca i8
27 %B = alloca i8
28
29 store i8 0, i8* %A ;; Written to by memmove
Nick Lewycky90271472009-11-10 06:46:40 +000030
Daniel Neilson1e687242018-01-19 17:13:12 +000031 call void @llvm.memmove.p0i8.p0i8.i8(i8* %A, i8* %B, i8 -1, i1 false)
Nick Lewycky90271472009-11-10 06:46:40 +000032
33 ret void
Nick Lewycky90271472009-11-10 06:46:40 +000034}
35
36define void @test3() {
Stephen Linc1c7a132013-07-14 01:42:54 +000037; CHECK-LABEL: @test3(
Daniel Neilson7e2e5c32018-04-11 16:50:04 +000038; CHECK-NEXT: ret void
39;
Nick Lewycky90271472009-11-10 06:46:40 +000040 %A = alloca i8
41 %B = alloca i8
42
43 store i8 0, i8* %A ;; Written to by memset
Nick Lewycky90271472009-11-10 06:46:40 +000044
Daniel Neilson1e687242018-01-19 17:13:12 +000045 call void @llvm.memset.p0i8.i8(i8* %A, i8 0, i8 -1, i1 false)
Nick Lewycky90271472009-11-10 06:46:40 +000046
47 ret void
Nick Lewycky90271472009-11-10 06:46:40 +000048}
Daniel Neilson381cdf32018-04-11 19:46:02 +000049
50declare void @llvm.memcpy.element.unordered.atomic.p0i16.p0i16.i16(i16* nocapture, i16* nocapture, i16, i32) nounwind
51declare void @llvm.memmove.element.unordered.atomic.p0i16.p0i16.i16(i16* nocapture, i16* nocapture, i16, i32) nounwind
52declare void @llvm.memset.element.unordered.atomic.p0i16.i16(i16* nocapture, i8, i16, i32) nounwind
53
54
55define void @test4() {
56; CHECK-LABEL: @test4(
Daniel Neilson381cdf32018-04-11 19:46:02 +000057; CHECK-NEXT: ret void
58;
59 %A = alloca i16, i16 1024, align 2
60 %B = alloca i16, i16 1024, align 2
61
62 store atomic i16 0, i16* %A unordered, align 2 ;; Written to by memcpy
63 store atomic i16 0, i16* %B unordered, align 2 ;; Read by memcpy
64
65 call void @llvm.memcpy.element.unordered.atomic.p0i16.p0i16.i16(i16* align 2 %A, i16* align 2 %B, i16 1024, i32 2)
66
67 ret void
68}
69
70define void @test5() {
71; CHECK-LABEL: @test5(
Daniel Neilson381cdf32018-04-11 19:46:02 +000072; CHECK-NEXT: ret void
73;
74 %A = alloca i16, i16 1024, align 2
75 %B = alloca i16, i16 1024, align 2
76
77 store atomic i16 0, i16* %A unordered, align 2 ;; Written to by memmove
78 store atomic i16 0, i16* %B unordered, align 2 ;; Read by memmove
79
80 call void @llvm.memmove.element.unordered.atomic.p0i16.p0i16.i16(i16* align 2 %A, i16* align 2 %B, i16 1024, i32 2)
81
82 ret void
83}
84
85define void @test6() {
86; CHECK-LABEL: @test6(
Daniel Neilson381cdf32018-04-11 19:46:02 +000087; CHECK-NEXT: ret void
88;
89 %A = alloca i16, i16 1024, align 2
90 %B = alloca i16, i16 1024, align 2
91
92 store atomic i16 0, i16* %A unordered, align 2 ;; Written to by memset
93
94 call void @llvm.memset.element.unordered.atomic.p0i16.i16(i16* align 2 %A, i8 0, i16 1024, i32 2)
95
96 ret void
97}