| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2 | |
| ; RUN: opt -S -passes=indvars < %s | FileCheck %s | |
| target datalayout = "n8:16:32:64" | |
| ; Just make sure this doesn't crash. | |
| ; SCEVExpander produces a degenerate phi node for the widened IV here, | |
| ; where the "increment" instruction folds to a poison value. | |
| define i32 @main() { | |
| ; CHECK-LABEL: define i32 @main() { | |
| ; CHECK-NEXT: entry: | |
| ; CHECK-NEXT: br label [[LOOP:%.*]] | |
| ; CHECK: loop: | |
| ; CHECK-NEXT: br label [[LOOP]] | |
| ; | |
| entry: | |
| %div = sdiv i32 1, 0 | |
| %trunc = trunc i32 %div to i16 | |
| br label %loop | |
| loop: | |
| %phi = phi i16 [ 0, %entry ], [ %or, %loop ] | |
| %or = or disjoint i16 %phi, %trunc | |
| %phi.ext = sext i16 %phi to i64 | |
| %add.ptr = getelementptr i8, ptr null, i64 %phi.ext | |
| br label %loop | |
| } |