@@ -17,7 +17,7 @@ typedef A __attribute__((may_alias)) AA;
17
17
18
18
void copy (A *a1, A *a2) {
19
19
// CHECK-LABEL: _Z4copyP1AS0_
20
- // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 dereferenceable(16) %{{.*}}, i8* align 4 dereferenceable(16) %{{.*}}, i64 16, i1 false)
20
+ // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 4 dereferenceable(16) %{{.*}}, i8* nonnull align 4 dereferenceable(16) %{{.*}}, i64 16, i1 false)
21
21
// CHECK-OLD-SAME: !tbaa.struct [[TS:!.*]]
22
22
// CHECK-NEW-SAME: !tbaa [[TAG_A:![0-9]*]]
23
23
*a1 = *a2;
@@ -31,7 +31,7 @@ struct B {
31
31
32
32
void copy2 (B *b1, B *b2) {
33
33
// CHECK-LABEL: _Z5copy2P1BS0_
34
- // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 dereferenceable(24) %{{.*}}, i8* align 4 dereferenceable(24) %{{.*}}, i64 24, i1 false)
34
+ // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 4 dereferenceable(24) %{{.*}}, i8* nonnull align 4 dereferenceable(24) %{{.*}}, i64 24, i1 false)
35
35
// CHECK-OLD-SAME: !tbaa.struct [[TS2:!.*]]
36
36
// CHECK-NEW-SAME: !tbaa [[TAG_B:![0-9]*]]
37
37
*b1 = *b2;
@@ -49,7 +49,7 @@ union U {
49
49
50
50
void copy3 (U *u1, U *u2) {
51
51
// CHECK-LABEL: _Z5copy3P1US0_
52
- // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 dereferenceable(12) %{{.*}}, i8* align 4 dereferenceable(12) %{{.*}}, i64 12, i1 false)
52
+ // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 4 dereferenceable(12) %{{.*}}, i8* nonnull align 4 dereferenceable(12) %{{.*}}, i64 12, i1 false)
53
53
// CHECK-OLD-SAME: !tbaa.struct [[TS3:!.*]]
54
54
// CHECK-NEW-SAME: !tbaa [[TAG_U:![0-9]*]]
55
55
*u1 = *u2;
@@ -65,7 +65,7 @@ struct C {
65
65
66
66
void copy4 (C *c1, C *c2) {
67
67
// CHECK-LABEL: _Z5copy4P1CS0_
68
- // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(3) {{.*}}, i8* align 1 dereferenceable(3) {{.*}}, i64 3, i1 false)
68
+ // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 1 dereferenceable(3) {{.*}}, i8* nonnull align 1 dereferenceable(3) {{.*}}, i64 3, i1 false)
69
69
// CHECK-OLD-SAME: !tbaa.struct [[TS4:!.*]]
70
70
// CHECK-NEW-SAME: !tbaa [[TAG_C:![0-9]*]]
71
71
*c1 = *c2;
@@ -80,23 +80,23 @@ struct D {
80
80
81
81
void copy5 (D *d1, D *d2) {
82
82
// CHECK-LABEL: _Z5copy5P1DS0_
83
- // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 dereferenceable(6) {{.*}}, i8* align 1 dereferenceable(6) {{.*}}, i64 6, i1 false)
83
+ // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 1 dereferenceable(6) {{.*}}, i8* nonnull align 1 dereferenceable(6) {{.*}}, i64 6, i1 false)
84
84
// CHECK-OLD-SAME: !tbaa.struct [[TS5:!.*]]
85
85
// CHECK-NEW-SAME: !tbaa [[TAG_D:![0-9]*]]
86
86
*d1 = *d2;
87
87
}
88
88
89
89
void copy6 (AA *a1, A *a2) {
90
90
// CHECK-LABEL: _Z5copy6P1AS0_
91
- // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 dereferenceable(16) %{{.*}}, i8* align 4 dereferenceable(16) %{{.*}}, i64 16, i1 false)
91
+ // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 4 dereferenceable(16) %{{.*}}, i8* nonnull align 4 dereferenceable(16) %{{.*}}, i64 16, i1 false)
92
92
// CHECK-OLD-SAME: !tbaa.struct [[TS]]
93
93
// CHECK-NEW-SAME: !tbaa [[TAG_char:![0-9]*]]
94
94
*a1 = *a2;
95
95
}
96
96
97
97
void copy7 (A *a1, AA *a2) {
98
98
// CHECK-LABEL: _Z5copy7P1AS0_
99
- // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 dereferenceable(16) %{{.*}}, i8* align 4 dereferenceable(16) %{{.*}}, i64 16, i1 false)
99
+ // CHECK: call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 4 dereferenceable(16) %{{.*}}, i8* nonnull align 4 dereferenceable(16) %{{.*}}, i64 16, i1 false)
100
100
// CHECK-OLD-SAME: !tbaa.struct [[TS]]
101
101
// CHECK-NEW-SAME: !tbaa [[TAG_char]]
102
102
*a1 = *a2;
0 commit comments