1*9880d681SAndroid Build Coastguard Worker; LLI.exe used to crash on Windows\X86 when certain single precession 2*9880d681SAndroid Build Coastguard Worker; floating point intrinsics (defined as macros) are used. 3*9880d681SAndroid Build Coastguard Worker; This unit test guards against the failure. 4*9880d681SAndroid Build Coastguard Worker; 5*9880d681SAndroid Build Coastguard Worker; RUN: %lli %s | FileCheck %s 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker@flt = internal global float 12.0e+0 8*9880d681SAndroid Build Coastguard Worker@str = internal constant [18 x i8] c"Double value: %f\0A\00" 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerdeclare i32 @printf(i8* nocapture, ...) nounwind 11*9880d681SAndroid Build Coastguard Workerdeclare i32 @fflush(i8*) nounwind 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdefine i32 @main() { 14*9880d681SAndroid Build Coastguard Worker %flt = load float, float* @flt 15*9880d681SAndroid Build Coastguard Worker %float2 = frem float %flt, 5.0 16*9880d681SAndroid Build Coastguard Worker %double1 = fpext float %float2 to double 17*9880d681SAndroid Build Coastguard Worker call i32 (i8*, ...) @printf(i8* getelementptr ([18 x i8], [18 x i8]* @str, i32 0, i64 0), double %double1) 18*9880d681SAndroid Build Coastguard Worker call i32 @fflush(i8* null) 19*9880d681SAndroid Build Coastguard Worker ret i32 0 20*9880d681SAndroid Build Coastguard Worker} 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker; CHECK: Double value: 2.0 23