brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · a8060a2 Raw
39 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -S -passes=jump-threading < %s | FileCheck %s3; PR91124 5; This is actually a test for value tracking. Jump threading produces6; "%phi = phi i16" when it removes all edges leading to %unreachable.7; The .ll parser won't let us write that directly since it's invalid code.8 9define void @func() nounwind {10; CHECK-LABEL: @func(11; CHECK-NEXT:  entry:12; CHECK-NEXT:    br label [[BB:%.*]]13; CHECK:       bb:14; CHECK-NEXT:    br label [[BB]]15; CHECK:       unreachable:16; CHECK-NEXT:    [[PHI:%.*]] = phi i16 [ [[ADD:%.*]], [[UNREACHABLE:%.*]] ], [ 0, [[NEXT:%.*]] ]17; CHECK-NEXT:    [[ADD]] = add i16 0, [[PHI]]18; CHECK-NEXT:    [[CMP:%.*]] = icmp slt i16 [[PHI]], 019; CHECK-NEXT:    br i1 [[CMP]], label [[UNREACHABLE]], label [[NEXT]]20; CHECK:       next:21; CHECK-NEXT:    br label [[UNREACHABLE]]22;23entry:24  br label %bb25 26bb:27  br label %bb28 29unreachable:30  %phi = phi i16 [ %add, %unreachable ], [ 0, %next ]31  %add = add i16 0, %phi32  %cmp = icmp slt i16 %phi, 033  br i1 %cmp, label %unreachable, label %next34 35next:36  br label %unreachable37}38 39