brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 382ba7d Raw
190 lines · plain
1; RUN: opt -passes=licm -verify-memoryssa  -S %s | FileCheck %s2; REQUIRES: asserts3 4target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"5target triple = "s390x-ibm-linux"6 7@g_77 = external dso_local global i16, align 28 9; CHECK-LABEL: @f1(i1 %arg)10define void @f1(i1 %arg) {11entry:12  store i16 undef, ptr @g_77, align 213  br label %loop_pre14 15unreachablelabel: ; No predecessors16  br label %loop_pre17 18loop_pre:19  br label %for.cond.header20 21for.cond.header:22  store i32 0, ptr undef, align 423  br i1 %arg, label %for.body, label %for.end24 25for.body:26  %tmp1 = load volatile i16, ptr undef, align 227  br label %for.end28 29for.end:30  br i1 %arg, label %func.exit, label %for.cond.header31 32func.exit:33  ret void34}35 36@g_159 = external dso_local global i32, align 437 38; CHECK-LABEL: @f2(i1 %arg)39define void @f2(i1 %arg) {40entry:41  br label %for.header.first42 43for.header.first:44  br label %for.body.first45 46for.body.first:47  store i32 0, ptr @g_159, align 448  br i1 %arg, label %for.body.first, label %for.end.first49 50for.end.first:51  br i1 %arg, label %lor.end, label %for.header.first52 53lor.end:54  br label %for.pre55 56unreachablelabel: ; No predecessors57  br label %for.pre58 59for.pre:60  br label %for.header.second61 62for.header.second:63  store i32 undef, ptr undef, align 464  br label %for.header.second65}66 67@g_271 = external dso_local global i8, align 268@g_427 = external dso_local unnamed_addr global [9 x i16], align 269 70; CHECK-LABEL: @f3(i1 %arg)71define  void @f3(i1 %arg) {72entry:73  br label %for.preheader74 75for.preheader:76  store volatile i8 undef, ptr @g_271, align 277  br i1 %arg, label %for.preheader, label %for.end78 79for.end:80  br label %lbl_1058.i81 82unreachablelabel: ; No predecessors83  br label %lbl_1058.i84 85lbl_1058.i:86  br label %for.cond3.preheader.i87 88for.cond3.preheader.i:89  %tmp1 = load i16, ptr getelementptr inbounds ([9 x i16], ptr @g_427, i64 0, i64 2), align 290  %conv620.i129 = zext i16 %tmp1 to i3291  %cmp621.i130 = icmp ugt i32 undef, %conv620.i12992  %conv622.i131 = zext i1 %cmp621.i130 to i3293  store i32 %conv622.i131, ptr undef, align 494  br i1 %arg, label %func.exit, label %for.cond3.preheader.i95 96func.exit:97  ret void98}99 100@g_6 = external dso_local unnamed_addr global [3 x i32], align 4101@g_244 = external dso_local global i64, align 8102@g_1164 = external dso_local global i64, align 8103 104; CHECK-LABEL: @f4(i1 %arg)105define void @f4(i1 %arg) {106entry:107  br label %for.cond8.preheader108 109for.cond8.preheader:110  store i32 0, ptr getelementptr inbounds ([3 x i32], ptr @g_6, i64 0, i64 2), align 4111  br i1 %arg, label %if.end, label %for.cond8.preheader112 113if.end:114  br i1 %arg, label %cleanup1270, label %for.cond504.preheader115 116for.cond504.preheader:117  store i64 undef, ptr @g_244, align 8118  br label %cleanup1270119 120for.cond559.preheader:121  store i64 undef, ptr @g_1164, align 8122  br i1 %arg, label %for.cond559.preheader, label %cleanup1270123 124cleanup1270:125  ret void126}127 128@g_1504 = external dso_local local_unnamed_addr global ptr, align 8129 130define void @f5(i1 %arg) {131bb:132  tail call fastcc void @f21()133  br label %bb12.outer134 135bb12.outer.loopexit:                              ; No predecessors!136  br label %bb12.outer137 138bb12.outer:                                       ; preds = %bb12.outer.loopexit, %bb139  br i1 %arg, label %bb12.outer.split.us, label %bb12.preheader140 141bb12.preheader:                                   ; preds = %bb12.outer142  br label %bb12143 144bb12.outer.split.us:                              ; preds = %bb12.outer145  br label %bb16.us.us146 147bb16.us.us:                                       ; preds = %bb16.us.us, %bb12.outer.split.us148  br label %bb16.us.us149 150bb12:                                             ; preds = %bb77.1, %bb12.preheader151  br i1 %arg, label %bb25.preheader, label %bb77152 153bb25.preheader:                                   ; preds = %bb12.1, %bb12154  br label %bb25155 156bb25:                                             ; preds = %l0, %bb25.preheader157  br i1 %arg, label %bb62, label %bb71.thread158 159bb62:                                             ; preds = %bb25160  br i1 %arg, label %bb92.loopexit, label %l0161 162l0:                                                ; preds = %bb62163  br label %bb25164 165bb71.thread:                                      ; preds = %bb25166  br label %bb92167 168bb77:                                             ; preds = %bb12169  %tmp78 = load ptr, ptr @g_1504, align 8170  %tmp79 = load volatile ptr, ptr %tmp78, align 8171  br i1 %arg, label %bb91, label %bb12.1172 173bb91:                                             ; preds = %bb77.1, %bb77174  unreachable175 176bb92.loopexit:                                    ; preds = %bb62177  br label %bb92178 179bb92:                                             ; preds = %bb92.loopexit, %bb71.thread180  ret void181 182bb12.1:                                           ; preds = %bb77183  br i1 %arg, label %bb25.preheader, label %bb77.1184 185bb77.1:                                           ; preds = %bb12.1186  br i1 %arg, label %bb91, label %bb12187}188 189declare void @f21()190