55 lines · plain
1; PR9252; RUN: llc < %s | FileCheck %s3 4; CHECK: {{mov.*str1}}5; CHECK-NOT: {{mov.*str1}}6 7target datalayout = "e-p:32:32"8target triple = "i686-apple-darwin8.7.2"9@str1 = internal constant [5 x i8] c"bonk\00" ; <ptr> [#uses=1]10@str2 = internal constant [5 x i8] c"bork\00" ; <ptr> [#uses=1]11@str = internal constant [8 x i8] c"perfwap\00" ; <ptr> [#uses=1]12 13define void @foo(i32 %C) {14entry:15 switch i32 %C, label %bb2 [16 i32 1, label %blahaha17 i32 2, label %blahaha18 i32 3, label %blahaha19 i32 4, label %blahaha20 i32 5, label %blahaha21 i32 6, label %blahaha22 i32 7, label %blahaha23 i32 8, label %blahaha24 i32 9, label %blahaha25 i32 10, label %blahaha26 ]27 28bb2: ; preds = %entry29 %tmp5 = and i32 %C, 123 ; <i32> [#uses=1]30 %tmp = icmp eq i32 %tmp5, 0 ; <i1> [#uses=1]31 br i1 %tmp, label %blahaha, label %cond_true32 33cond_true: ; preds = %bb234 br label %blahaha35 36blahaha: ; preds = %cond_true, %bb2, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry37 %s.0 = phi ptr [ @str, %cond_true ], [ @str1, %entry ], [ @str1, %entry ], [ @str1, %entry ], [ @str1, %entry ], [ @str1, %entry ], [ @str1, %entry ], [ @str1, %entry ], [ @str1, %entry ], [ @str1, %entry ], [ @str1, %entry ], [ @str2, %bb2 ] ; <ptr> [#uses=13]38 %tmp8 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]39 %tmp10 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]40 %tmp12 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]41 %tmp14 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]42 %tmp16 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]43 %tmp18 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]44 %tmp20 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]45 %tmp22 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]46 %tmp24 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]47 %tmp26 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]48 %tmp28 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]49 %tmp30 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]50 %tmp32 = tail call i32 (ptr, ...) @printf( ptr %s.0 ) ; <i32> [#uses=0]51 ret void52}53 54declare i32 @printf(ptr, ...)55