132 lines · plain
1; RUN: opt -S -passes='require<memoryssa>' %s | FileCheck %s2; REQUIRES: asserts3target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"4target triple = "x86_64-unknown-linux-gnu"5 6; CHECK-LABEL: @func(i1 %arg)7; Function Attrs: noinline8define dso_local void @func(i1 %arg) unnamed_addr #0 align 2 {9entry:10 %NoFinalize.addr = alloca i8, align 111 call void @blah()12 call void @blah()13 call void @blah()14 call void @blah()15 call void @blah()16 call void @blah()17 %call8 = call zeroext i1 @foo()18 br i1 %call8, label %if.then9, label %while.cond19 20if.then9: ; preds = %entry21 call void @blah()22 call void @blah()23 call void @blah()24 call void @blah()25 call void @blah()26 call void @blah()27 call void @blah()28 br label %while.cond29 30while.cond: ; preds = %cleanup, %if.then9, %entry31 %call34 = call zeroext i1 @foo()32 call void @blah()33 br i1 %call34, label %while.body, label %while.end34 35while.body: ; preds = %while.cond36 %call35 = call zeroext i1 @foo()37 br i1 %call35, label %if.end37, label %if.then3638 39if.then36: ; preds = %while.body40 store i32 2, ptr undef, align 441 br label %cleanup42 43if.end37: ; preds = %while.body44 %call38 = call zeroext i1 @foo()45 br i1 %call38, label %if.end46, label %land.lhs.true46 47land.lhs.true: ; preds = %if.end3748 call void @blah()49 %call41 = call zeroext i1 @foo()50 br i1 %call41, label %if.then42, label %if.end4651 52if.then42: ; preds = %land.lhs.true53 call void @blah()54 br label %if.end4655 56if.end46: ; preds = %if.then42, %land.lhs.true, %if.end3757 call void @blah()58 call void @blah()59 call void @blah()60 call void @blah()61 br label %cleanup62 63cleanup: ; preds = %if.end46, %if.then3664 call void @blah()65 br label %while.cond66 67while.end: ; preds = %while.cond68 call void @blah()69 call void @blah()70 call void @blah()71 call void @blah()72 call void @blah()73 call void @blah()74 call void @blah()75 call void @blah()76 call void @blah()77 call void @blah()78 call void @blah()79 call void @blah()80 call void @blah()81 call void @blah()82 call void @blah()83 %call93 = call zeroext i1 @foo()84 br i1 %call93, label %if.end120, label %if.then9485 86if.then94: ; preds = %while.end87 store i32 0, ptr undef, align 488 call void @blah()89 call void @blah()90 call void @blah()91 call void @blah()92 call void @blah()93 call void @blah()94 call void @blah()95 call void @blah()96 call void @blah()97 br label %for.cond98 99for.cond: ; preds = %for.body, %if.then94100 br i1 %arg, label %for.body, label %if.end120101 102for.body: ; preds = %for.cond103 call void @blah()104 call void @blah()105 call void @blah()106 call void @blah()107 call void @blah()108 call void @blah()109 call void @blah()110 call void @blah()111 call void @blah()112 call void @blah()113 call void @blah()114 call void @blah()115 call void @blah()116 call void @blah()117 br label %for.cond118 119if.end120: ; preds = %for.cond, %while.end120 %val = load i8, ptr %NoFinalize.addr, align 1121 ret void122}123 124; Function Attrs: noinline125declare hidden void @blah() unnamed_addr #0 align 2126 127; Function Attrs: noinline128declare hidden i1 @foo() local_unnamed_addr #0 align 2129 130attributes #0 = { noinline }131 132