@@ -166,3 +166,54 @@ define i64 @test_trunc_with_constexpr() {
166
166
%conv = sext i32 %add to i64
167
167
ret i64 %conv
168
168
}
169
+
170
+ ; FIXME: This is a miscompile.
171
+ define align 4 ptr @maybe_not_aligned (ptr noundef %p ) {
172
+ ; CHECK-LABEL: define noundef align 4 ptr @maybe_not_aligned(
173
+ ; CHECK-SAME: ptr noundef readnone returned [[P:%.*]]) #[[ATTR0]] {
174
+ ; CHECK-NEXT: ret ptr [[P]]
175
+ ;
176
+ ret ptr %p
177
+ }
178
+
179
+ define align 4 ptr @definitely_aligned (ptr noundef align 4 %p ) {
180
+ ; CHECK-LABEL: define noundef align 4 ptr @definitely_aligned(
181
+ ; CHECK-SAME: ptr noundef readnone returned align 4 [[P:%.*]]) #[[ATTR0]] {
182
+ ; CHECK-NEXT: ret ptr [[P]]
183
+ ;
184
+ ret ptr %p
185
+ }
186
+
187
+ ; FIXME: This is a miscompile.
188
+ define nonnull ptr @maybe_not_nonnull (ptr noundef %p ) {
189
+ ; CHECK-LABEL: define noundef nonnull ptr @maybe_not_nonnull(
190
+ ; CHECK-SAME: ptr noundef readnone returned [[P:%.*]]) #[[ATTR0]] {
191
+ ; CHECK-NEXT: ret ptr [[P]]
192
+ ;
193
+ ret ptr %p
194
+ }
195
+
196
+ define nonnull ptr @definitely_nonnull (ptr noundef nonnull %p ) {
197
+ ; CHECK-LABEL: define noundef nonnull ptr @definitely_nonnull(
198
+ ; CHECK-SAME: ptr noundef nonnull readnone returned [[P:%.*]]) #[[ATTR0]] {
199
+ ; CHECK-NEXT: ret ptr [[P]]
200
+ ;
201
+ ret ptr %p
202
+ }
203
+
204
+ ; FIXME: This is a miscompile.
205
+ define range(i8 0 , 10 ) i8 @maybe_not_in_range (i8 noundef %v ) {
206
+ ; CHECK-LABEL: define noundef range(i8 0, 10) i8 @maybe_not_in_range(
207
+ ; CHECK-SAME: i8 noundef returned [[V:%.*]]) #[[ATTR0]] {
208
+ ; CHECK-NEXT: ret i8 [[V]]
209
+ ;
210
+ ret i8 %v
211
+ }
212
+
213
+ define range(i8 0 , 10 ) i8 @definitely_in_range (i8 noundef range(i8 0 , 10 ) %v ) {
214
+ ; CHECK-LABEL: define noundef range(i8 0, 10) i8 @definitely_in_range(
215
+ ; CHECK-SAME: i8 noundef returned range(i8 0, 10) [[V:%.*]]) #[[ATTR0]] {
216
+ ; CHECK-NEXT: ret i8 [[V]]
217
+ ;
218
+ ret i8 %v
219
+ }
0 commit comments