brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · da25826 Raw
70 lines · plain
1; RUN: opt -S -passes='function(gvn-hoist),function(newgvn)' < %s | FileCheck %s2 3; Check that store hoisting works: there should be only one store left.4; CHECK-LABEL: @getopt5; CHECK: store i326; CHECK-NOT: store i327 8@optind = external global i32, align 49 10define void @getopt(i1 %arg) {11bb:12  br label %bb113 14bb1:                                              ; preds = %bb15  br i1 %arg, label %bb2, label %bb316 17bb2:                                              ; preds = %bb118  br label %bb1319 20bb3:                                              ; preds = %bb121  br i1 %arg, label %bb4, label %bb922 23bb4:                                              ; preds = %bb324  %tmp = load i32, ptr @optind, align 425  br i1 %arg, label %bb5, label %bb726 27bb5:                                              ; preds = %bb428  %tmp6 = add nsw i32 %tmp, 129  store i32 %tmp6, ptr @optind, align 430  br label %bb1231 32bb7:                                              ; preds = %bb433  %tmp8 = add nsw i32 %tmp, 134  store i32 %tmp8, ptr @optind, align 435  br label %bb1336 37bb9:                                              ; preds = %bb338  %tmp10 = load i32, ptr @optind, align 439  %tmp11 = add nsw i32 %tmp10, 140  store i32 %tmp11, ptr @optind, align 441  br label %bb1242 43bb12:                                             ; preds = %bb9, %bb544  br label %bb1345 46bb13:                                             ; preds = %bb12, %bb7, %bb247  ret void48}49 50@GlobalVar = internal global float 1.000000e+0051 52; Check that we hoist stores and remove the MSSA phi node.53; CHECK-LABEL: @hoistStoresUpdateMSSA54; CHECK: store float55; CHECK-NOT: store float56define float @hoistStoresUpdateMSSA(float %d) {57entry:58  store float 0.000000e+00, ptr @GlobalVar59  %cmp = fcmp oge float %d, 0.000000e+0060  br i1 %cmp, label %if.then, label %if.end61 62if.then:63  store float 0.000000e+00, ptr @GlobalVar64  br label %if.end65 66if.end:67  %tmp = load float, ptr @GlobalVar, align 468  ret float %tmp69}70