brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · a731ef1 Raw
52 lines · plain
1; RUN: opt -passes=licm -verify-memoryssa -S %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@0 = external global { { ptr, i32, i32 }, ptr, i8, i8 }7 8declare void @g()9 10; Function Attrs: argmemonly nounwind willreturn11declare void @llvm.lifetime.end.p0(ptr nocapture) #012 13; CHECK-LABEL: @f14define void @f(i1 %arg) align 2 {15entry:16  %P = alloca ptr, align 817  br label %cond.end.i.i.i.i18 19cond.end.i.i.i.i:                                 ; preds = %cont20, %entry20  br i1 %arg, label %cont20, label %if.end21 22cont20:                                           ; preds = %cond.end.i.i.i.i, %cond.end.i.i.i.i, %cond.end.i.i.i.i23  store ptr undef, ptr %P, align 824  br label %cond.end.i.i.i.i25 26if.end:                                           ; preds = %cond.end.i.i.i.i27  br i1 %arg, label %cond.exit, label %handler.type_mismatch2.i28 29handler.type_mismatch2.i:                         ; preds = %if.end30  tail call void @g()31  unreachable32 33cond.exit:             ; preds = %if.end34  switch i8 undef, label %block.exit [35    i8 81, label %sw.bb9436    i8 12, label %cleanup37    i8 74, label %cleanup38  ]39 40block.exit: ; preds = %cond.exit41  unreachable42 43sw.bb94:                                          ; preds = %cond.exit44  call void @g()45  br label %cleanup46 47cleanup:                                          ; preds = %sw.bb94, %cond.exit, %cond.exit48  ret void49}50 51attributes #0 = { argmemonly nounwind willreturn }52