1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=x86-64 < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; PR4736 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker%0 = type { i32, i8, [35 x i8] } 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker@g_144 = external global %0, align 8 ; <%0*> [#uses=1] 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker; CHECK: shrdq 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdefine i32 @int87(i32 %uint64p_8, i1 %cond) nounwind { 11*9880d681SAndroid Build Coastguard Workerentry: 12*9880d681SAndroid Build Coastguard Worker %srcval4 = load i320, i320* bitcast (%0* @g_144 to i320*), align 8 ; <i320> [#uses=1] 13*9880d681SAndroid Build Coastguard Worker br label %for.cond 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Workerfor.cond: ; preds = %for.cond, %entry 16*9880d681SAndroid Build Coastguard Worker %call3.in.in.in.v = select i1 %cond, i320 192, i320 128 ; <i320> [#uses=1] 17*9880d681SAndroid Build Coastguard Worker %call3.in.in.in = lshr i320 %srcval4, %call3.in.in.in.v ; <i320> [#uses=1] 18*9880d681SAndroid Build Coastguard Worker %call3.in = trunc i320 %call3.in.in.in to i32 ; <i32> [#uses=1] 19*9880d681SAndroid Build Coastguard Worker %tobool = icmp eq i32 %call3.in, 0 ; <i1> [#uses=1] 20*9880d681SAndroid Build Coastguard Worker br i1 %tobool, label %for.cond, label %if.then 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Workerif.then: ; preds = %for.cond 23*9880d681SAndroid Build Coastguard Worker ret i32 1 24*9880d681SAndroid Build Coastguard Worker} 25