Skip to content

Commit

Permalink
[FunctionAttrs] Add tests for incorrect noundef inference (#88026)
Browse files Browse the repository at this point in the history
  • Loading branch information
nikic committed Apr 19, 2024
1 parent 13beabe commit bd898d5
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions llvm/test/Transforms/FunctionAttrs/noundef.ll
Original file line number Diff line number Diff line change
Expand Up @@ -166,3 +166,54 @@ define i64 @test_trunc_with_constexpr() {
%conv = sext i32 %add to i64
ret i64 %conv
}

; FIXME: This is a miscompile.
define align 4 ptr @maybe_not_aligned(ptr noundef %p) {
; CHECK-LABEL: define noundef align 4 ptr @maybe_not_aligned(
; CHECK-SAME: ptr noundef readnone returned [[P:%.*]]) #[[ATTR0]] {
; CHECK-NEXT: ret ptr [[P]]
;
ret ptr %p
}

define align 4 ptr @definitely_aligned(ptr noundef align 4 %p) {
; CHECK-LABEL: define noundef align 4 ptr @definitely_aligned(
; CHECK-SAME: ptr noundef readnone returned align 4 [[P:%.*]]) #[[ATTR0]] {
; CHECK-NEXT: ret ptr [[P]]
;
ret ptr %p
}

; FIXME: This is a miscompile.
define nonnull ptr @maybe_not_nonnull(ptr noundef %p) {
; CHECK-LABEL: define noundef nonnull ptr @maybe_not_nonnull(
; CHECK-SAME: ptr noundef readnone returned [[P:%.*]]) #[[ATTR0]] {
; CHECK-NEXT: ret ptr [[P]]
;
ret ptr %p
}

define nonnull ptr @definitely_nonnull(ptr noundef nonnull %p) {
; CHECK-LABEL: define noundef nonnull ptr @definitely_nonnull(
; CHECK-SAME: ptr noundef nonnull readnone returned [[P:%.*]]) #[[ATTR0]] {
; CHECK-NEXT: ret ptr [[P]]
;
ret ptr %p
}

; FIXME: This is a miscompile.
define range(i8 0, 10) i8 @maybe_not_in_range(i8 noundef %v) {
; CHECK-LABEL: define noundef range(i8 0, 10) i8 @maybe_not_in_range(
; CHECK-SAME: i8 noundef returned [[V:%.*]]) #[[ATTR0]] {
; CHECK-NEXT: ret i8 [[V]]
;
ret i8 %v
}

define range(i8 0, 10) i8 @definitely_in_range(i8 noundef range(i8 0, 10) %v) {
; CHECK-LABEL: define noundef range(i8 0, 10) i8 @definitely_in_range(
; CHECK-SAME: i8 noundef returned range(i8 0, 10) [[V:%.*]]) #[[ATTR0]] {
; CHECK-NEXT: ret i8 [[V]]
;
ret i8 %v
}

0 comments on commit bd898d5

Please sign in to comment.