Skip to content

Commit 5799d13

Browse files
committed
[CVP] Add test for incorrect use of range with undef (NFC)
1 parent 23d0a30 commit 5799d13

File tree

1 file changed

+36
-0
lines changed
  • llvm/test/Transforms/CorrelatedValuePropagation

1 file changed

+36
-0
lines changed

llvm/test/Transforms/CorrelatedValuePropagation/add.ll

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,42 @@ exit:
527527
ret i32 %acc.curr
528528
}
529529

530+
; FIXME: This is a miscompile.
531+
define i32 @test_undef_range(i32 %x) {
532+
; CHECK-LABEL: define i32 @test_undef_range(
533+
; CHECK-SAME: i32 [[X:%.*]]) {
534+
; CHECK-NEXT: entry:
535+
; CHECK-NEXT: switch i32 [[X]], label [[JOIN:%.*]] [
536+
; CHECK-NEXT: i32 1, label [[CASE1:%.*]]
537+
; CHECK-NEXT: i32 2, label [[CASE2:%.*]]
538+
; CHECK-NEXT: ]
539+
; CHECK: case1:
540+
; CHECK-NEXT: br label [[JOIN]]
541+
; CHECK: case2:
542+
; CHECK-NEXT: br label [[JOIN]]
543+
; CHECK: join:
544+
; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ 1, [[CASE1]] ], [ 2, [[CASE2]] ], [ undef, [[ENTRY:%.*]] ]
545+
; CHECK-NEXT: [[ADD:%.*]] = add nuw nsw i32 [[PHI]], 1
546+
; CHECK-NEXT: ret i32 [[ADD]]
547+
;
548+
entry:
549+
switch i32 %x, label %join [
550+
i32 1, label %case1
551+
i32 2, label %case2
552+
]
553+
554+
case1:
555+
br label %join
556+
557+
case2:
558+
br label %join
559+
560+
join:
561+
%phi = phi i32 [ 1, %case1 ], [ 2, %case2 ], [ undef, %entry ]
562+
%add = add i32 %phi, 1
563+
ret i32 %add
564+
}
565+
530566
;.
531567
; CHECK: [[RNG0]] = !{i32 0, i32 2147483647}
532568
;.

0 commit comments

Comments
 (0)