1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -basicaa -gvn -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; This test is checking that (a) this doesn't crash, and (b) we don't 3*9880d681SAndroid Build Coastguard Worker; conclude the value of %tmp17 is available in bb1.bb15_crit_edge. 4*9880d681SAndroid Build Coastguard Worker; rdar://9429882 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" 7*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-apple-macosx10.7.0" 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workerdefine i1 @rb_intern() nounwind ssp { 10*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @rb_intern( 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerbb: 13*9880d681SAndroid Build Coastguard Worker %tmp = alloca i8*, align 8 14*9880d681SAndroid Build Coastguard Worker store i8* null, i8** %tmp, align 8 15*9880d681SAndroid Build Coastguard Worker store i8 undef, i8* null, align 536870912 16*9880d681SAndroid Build Coastguard Worker br label %bb1 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Workerbb1: 19*9880d681SAndroid Build Coastguard Worker br i1 undef, label %bb3, label %bb15 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker; CHECK: bb1: 22*9880d681SAndroid Build Coastguard Worker; CHECK: [[TMP:%.*]] = phi i8* [ getelementptr (i8, i8* null, i64 undef), %bb10 ], [ null, %bb ] 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker; CHECK: bb1.bb15_crit_edge: 25*9880d681SAndroid Build Coastguard Worker; CHECK: %tmp17.pre = load i8, i8* [[TMP]], align 1 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerbb3: 28*9880d681SAndroid Build Coastguard Worker call void @isalnum() 29*9880d681SAndroid Build Coastguard Worker br i1 undef, label %bb10, label %bb5 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Workerbb5: 32*9880d681SAndroid Build Coastguard Worker br i1 undef, label %bb10, label %bb6 33*9880d681SAndroid Build Coastguard Worker 34*9880d681SAndroid Build Coastguard Workerbb6: 35*9880d681SAndroid Build Coastguard Worker %tmp7 = load i8*, i8** %tmp, align 8 36*9880d681SAndroid Build Coastguard Worker %tmp8 = load i8, i8* %tmp7, align 1 37*9880d681SAndroid Build Coastguard Worker %tmp9 = zext i8 %tmp8 to i64 38*9880d681SAndroid Build Coastguard Worker br i1 undef, label %bb15, label %bb10 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Workerbb10: 41*9880d681SAndroid Build Coastguard Worker %tmp11 = load i8*, i8** %tmp, align 8 42*9880d681SAndroid Build Coastguard Worker %tmp12 = load i8, i8* %tmp11, align 1 43*9880d681SAndroid Build Coastguard Worker %tmp13 = zext i8 %tmp12 to i64 44*9880d681SAndroid Build Coastguard Worker %tmp14 = getelementptr inbounds i8, i8* null, i64 undef 45*9880d681SAndroid Build Coastguard Worker store i8* %tmp14, i8** %tmp, align 8 46*9880d681SAndroid Build Coastguard Worker br label %bb1 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workerbb15: 49*9880d681SAndroid Build Coastguard Worker %tmp16 = load i8*, i8** %tmp, align 8 50*9880d681SAndroid Build Coastguard Worker %tmp17 = load i8, i8* %tmp16, align 1 51*9880d681SAndroid Build Coastguard Worker %tmp18 = icmp eq i8 %tmp17, 0 52*9880d681SAndroid Build Coastguard Worker br label %bb19 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker; CHECK: bb15: 55*9880d681SAndroid Build Coastguard Worker; CHECK: %tmp17 = phi i8 [ %tmp17.pre, %bb1.bb15_crit_edge ], [ %tmp8, %bb6 ] 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerbb19: ; preds = %bb15 58*9880d681SAndroid Build Coastguard Worker ret i1 %tmp18 59*9880d681SAndroid Build Coastguard Worker} 60*9880d681SAndroid Build Coastguard Worker 61*9880d681SAndroid Build Coastguard Workerdeclare void @isalnum() nounwind inlinehint ssp 62