brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · 5621148 Raw
92 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=newgvn -S %s | FileCheck %s3 4@f = external local_unnamed_addr global i645@b = external local_unnamed_addr global i646@e = external local_unnamed_addr global i647 8define void @patatino(i1 %arg) {9; CHECK-LABEL: @patatino(10; CHECK-NEXT:  entry:11; CHECK-NEXT:    br i1 %arg, label [[IF_END24:%.*]], label [[FOR_COND16:%.*]]12; CHECK:       for.cond2thread-pre-split:13; CHECK-NEXT:    br i1 false, label [[FOR_BODY:%.*]], label [[FOR_COND8_PREHEADER:%.*]]14; CHECK:       for.cond8.preheader:15; CHECK-NEXT:    br i1 %arg, label [[L1:%.*]], label [[FOR_COND11THREAD_PRE_SPLIT_LR_PH:%.*]]16; CHECK:       for.cond11thread-pre-split.lr.ph:17; CHECK-NEXT:    br label [[L1]]18; CHECK:       for.body:19; CHECK-NEXT:    [[CMP3:%.*]] = icmp ne i64 [[K_2:%.*]], 320; CHECK-NEXT:    [[CONV4:%.*]] = zext i1 [[CMP3]] to i6421; CHECK-NEXT:    [[TMP0:%.*]] = load i64, ptr @f, align 422; CHECK-NEXT:    [[OR:%.*]] = or i64 [[TMP0]], [[CONV4]]23; CHECK-NEXT:    store i64 [[OR]], ptr @f, align 424; CHECK-NEXT:    [[TOBOOL7:%.*]] = icmp ne i64 [[K_2]], 025; CHECK-NEXT:    br i1 [[TOBOOL7]], label [[FOR_COND2THREAD_PRE_SPLIT:%.*]], label [[LOR_RHS:%.*]]26; CHECK:       lor.rhs:27; CHECK-NEXT:    store i64 1, ptr @b, align 828; CHECK-NEXT:    br label [[FOR_COND2THREAD_PRE_SPLIT]]29; CHECK:       l1:30; CHECK-NEXT:    [[K_2]] = phi i64 [ undef, [[L1_PREHEADER:%.*]] ], [ 15, [[FOR_COND8_PREHEADER]] ], [ 5, [[FOR_COND11THREAD_PRE_SPLIT_LR_PH]] ]31; CHECK-NEXT:    store i64 7, ptr [[J_3:%.*]], align 432; CHECK-NEXT:    br label [[FOR_BODY]]33; CHECK:       for.cond16:34; CHECK-NEXT:    [[J_0:%.*]] = phi ptr [ @f, [[ENTRY:%.*]] ], [ poison, [[FOR_COND20:%.*]] ], [ @e, [[FOR_COND16]] ]35; CHECK-NEXT:    br i1 %arg, label [[FOR_COND20]], label [[FOR_COND16]]36; CHECK:       for.cond20:37; CHECK-NEXT:    [[J_2:%.*]] = phi ptr [ [[J_0]], [[FOR_COND16]] ], [ poison, [[IF_END24]] ]38; CHECK-NEXT:    br i1 true, label [[IF_END24]], label [[FOR_COND16]]39; CHECK:       if.end24:40; CHECK-NEXT:    [[J_3]] = phi ptr [ [[J_2]], [[FOR_COND20]] ], [ undef, [[ENTRY]] ]41; CHECK-NEXT:    br i1 false, label [[FOR_COND20]], label [[L1_PREHEADER]]42; CHECK:       l1.preheader:43; CHECK-NEXT:    br label [[L1]]44;45entry:46  br i1 %arg, label %if.end24, label %for.cond1647 48for.cond2thread-pre-split:49  br i1 false, label %for.body, label %for.cond8.preheader50 51for.cond8.preheader:52  br i1 %arg, label %l1, label %for.cond11thread-pre-split.lr.ph53 54for.cond11thread-pre-split.lr.ph:55  br label %l156 57for.body:58  %k.031 = phi i64 [ %k.2, %l1 ], [ 15, %for.cond2thread-pre-split ]59  %cmp3 = icmp ne i64 %k.031, 360  %conv4 = zext i1 %cmp3 to i6461  %0 = load i64, ptr @f62  %or = or i64 %0, %conv463  store i64 %or, ptr @f64  %tobool7 = icmp ne i64 %k.031, 065  %or.cond = or i1 %tobool7, false66  br i1 %or.cond, label %for.cond2thread-pre-split, label %lor.rhs67 68lor.rhs:69  store i64 1, ptr @b, align 870  br label %for.cond2thread-pre-split71 72l1:73  %k.2 = phi i64 [ undef, %l1.preheader ], [ 15, %for.cond8.preheader ], [ 5, %for.cond11thread-pre-split.lr.ph ]74  store i64 7, ptr %j.375  br label %for.body76 77for.cond16:78  %j.0 = phi ptr [ @f, %entry ], [ %j.2, %for.cond20 ], [ @e, %for.cond16 ]79  br i1 %arg, label %for.cond20, label %for.cond1680 81for.cond20:82  %j.2 = phi ptr [ %j.0, %for.cond16 ], [ %j.3, %if.end24 ]83  br i1 true, label %if.end24, label %for.cond1684 85if.end24:86  %j.3 = phi ptr [ %j.2, %for.cond20 ], [ undef, %entry ]87  br i1 false, label %for.cond20, label %l1.preheader88 89l1.preheader:90  br label %l191}92