@@ -57,9 +57,9 @@ void testMoveConstructor(SA a) {
57
57
// CHECK: store ptr %[[THIS]], ptr %[[THIS_ADDR]], align 8
58
58
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
59
59
// CHECK: %[[THISI:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
60
- // CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
60
+ // CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
61
61
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
62
- // CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
62
+ // CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
63
63
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
64
64
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
65
65
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
@@ -82,9 +82,9 @@ void testCopyAssignment(SA a) {
82
82
// CHECK: store ptr %[[THIS]], ptr %[[THIS_ADDR]], align 8
83
83
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
84
84
// CHECK: %[[THISI:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
85
- // CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
85
+ // CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THISI]], i32 0, i32 0
86
86
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
87
- // CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
87
+ // CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
88
88
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
89
89
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
90
90
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
@@ -136,9 +136,9 @@ void testMoveAssignment(SI a) {
136
136
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
137
137
// CHECK: %[[THIS1:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
138
138
// CHECK: store ptr %[[THIS1]], ptr %[[RETVAL]], align 8
139
- // CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
139
+ // CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
140
140
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
141
- // CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
141
+ // CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
142
142
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
143
143
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
144
144
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
@@ -155,9 +155,9 @@ void testMoveAssignment(SI a) {
155
155
// CHECK: store ptr %[[V0:.*]], ptr %[[_ADDR]], align 8
156
156
// CHECK: %[[THIS1:.*]] = load ptr, ptr %[[THIS_ADDR]], align 8
157
157
// CHECK: store ptr %[[THIS1]], ptr %[[RETVAL]], align 8
158
- // CHECK: %[[M0:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
158
+ // CHECK: %[[M0:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[THIS1]], i32 0, i32 0
159
159
// CHECK: %[[V1:.*]] = load ptr, ptr %[[_ADDR]], align 8
160
- // CHECK: %[[M02:.*]] = getelementptr inbounds %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
160
+ // CHECK: %[[M02:.*]] = getelementptr inbounds nuw %[[STRUCT_SA]], ptr %[[V1]], i32 0, i32 0
161
161
// CHECK: %[[V2:.*]] = load ptr, ptr %[[M02]], align 8
162
162
// CHECK: %[[V3:.*]] = ptrtoint ptr %[[M02]] to i64
163
163
// CHECK: %[[V4:.*]] = call i64 @llvm.ptrauth.blend(i64 %[[V3]], i64 50)
0 commit comments