brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · a46bb00 Raw
33 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt < %s --passes=canon-freeze -S | FileCheck %s3 4define void @check_duplicate_removal(i32 %n) {5; CHECK-LABEL: define void @check_duplicate_removal(6; CHECK-SAME: i32 [[N:%.*]]) {7; CHECK-NEXT:  entry:8; CHECK-NEXT:    [[N_FROZEN:%.*]] = freeze i32 [[N]]9; CHECK-NEXT:    br label [[LOOP:%.*]]10; CHECK:       loop:11; CHECK-NEXT:    [[T1:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ [[T3:%.*]], [[LOOP]] ]12; CHECK-NEXT:    [[T2:%.*]] = phi i32 [ 0, [[ENTRY]] ], [ [[T3]], [[LOOP]] ]13; CHECK-NEXT:    [[T3]] = add i32 [[N_FROZEN]], [[T2]]14; CHECK-NEXT:    [[COND:%.*]] = icmp eq i32 [[T2]], 015; CHECK-NEXT:    br i1 [[COND]], label [[LOOP]], label [[EXIT:%.*]]16; CHECK:       exit:17; CHECK-NEXT:    ret void18;19entry:20  br label %loop21 22loop:23  %t1 = phi i32 [ 0, %entry], [%t3, %loop ]24  %t2 = phi i32 [ 0, %entry], [%t3, %loop ]25  %t3 = add i32 %n, %t226  %.fr = freeze i32 %t327  %cond = icmp eq i32 %t2, 028  br i1 %cond, label %loop, label %exit29 30exit:31  ret void32}33