brintos

brintos / llvm-project-archived public Read only

0
0
Text · 918 B · bf1de42 Raw
58 lines · plain
1; RUN: opt -passes="default<O1>" %s -S | FileCheck %s2; REQUIRES: asserts3 4declare void @bar()5declare void @baz(ptr)6 7; CHECK-LABEL: @foo1()8define void @foo1() {9entry:10  %tag = alloca i32, align 411  call void @baz(ptr %tag)12  %tmp = load i32, ptr %tag, align 413  switch i32 %tmp, label %sw.bb799 [14    i32 10, label %sw.bb23915  ]16 17sw.bb239:18  call void @foo2()19  br label %cleanup87120 21sw.bb799:22  call void @foo3(i32 undef)23  br label %cleanup87124 25cleanup871:26  call void @bar()27  unreachable28}29 30define void @foo2() {31  call void @foo4()32  unreachable33}34 35define void @foo3(i32 %ptr) {36  call void @foo1()37  unreachable38}39 40define void @foo4() {41entry:42  %tag = alloca i32, align 443  call void @baz(ptr %tag)44  %tmp = load i32, ptr %tag, align 445  switch i32 %tmp, label %sw.bb442 [46    i32 16, label %sw.bb35247  ]48 49sw.bb352:50  call void @foo3(i32 undef)51  unreachable52 53sw.bb442:54  call void @foo2()55  unreachable56}57 58