emscripten/tests/cases/floatundefinvoke_fastcomp.ll

31 строка
1.3 KiB
LLVM

; ModuleID = 'a.o'
target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-p:32:32:32-v128:32:128-n32-S128"
target triple = "asmjs-unknown-emscripten"
@.str = private unnamed_addr constant [11 x i8] c"float: %f\0A\00", align 1
define void @_Z10printFloatf(float %f) #0 {
entry:
%conv = fpext float %f to double
%call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([11 x i8]* @.str, i32 0, i32 0), double %conv)
ret void
}
define i32 @main() #1 {
entry:
tail call void @_Z10printFloatf(float 1.000000e+00)
call void @emscripten_preinvoke()
call void @_Z10printFloatf(float undef)
%last = call i32 @emscripten_postinvoke()
%lastf = sitofp i32 %last to float
tail call void @_Z10printFloatf(float %lastf)
ret i32 1
}
declare void @emscripten_preinvoke()
declare i32 @emscripten_postinvoke()
declare i32 @printf(i8* nocapture, ...) #1
attributes #0 = { noinline nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }