Skip to content
This repository was archived by the owner on Nov 1, 2021. It is now read-only.

Commit 71a2e4b

Browse files
varkorkripken
authored andcommitted
Add llvm.minnum.f(32|64) and llvm.maxnum.f(32|64) intrinsics (#210)
The corresponding change to Emscripten is this PR: emscripten-core/emscripten#5978, and relates to this issue: emscripten-core/emscripten#5976.
1 parent 9abeae2 commit 71a2e4b

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

lib/Target/JSBackend/CallHandlers.h

+8-10
Original file line numberDiff line numberDiff line change
@@ -697,14 +697,6 @@ DEF_CALL_HANDLER(llvm_ctpop_i64, {
697697
return CH___default__(CI, "_llvm_ctpop_i64");
698698
})
699699

700-
DEF_CALL_HANDLER(llvm_maxnum_f32, {
701-
return CH___default__(CI, "Math_max", 2);
702-
})
703-
704-
DEF_CALL_HANDLER(llvm_maxnum_f64, {
705-
return CH___default__(CI, "Math_max", 2);
706-
})
707-
708700
DEF_CALL_HANDLER(llvm_copysign_f32, {
709701
if (OnlyWebAssembly) {
710702
return CH___default__(CI, "f32_copysign", 2);
@@ -975,6 +967,10 @@ DEF_MAYBE_BUILTIN_HANDLER(llvm_cos_f32, Math_cos);
975967
DEF_MAYBE_BUILTIN_HANDLER(llvm_cos_f64, Math_cos);
976968
DEF_MAYBE_BUILTIN_HANDLER(llvm_sin_f32, Math_sin);
977969
DEF_MAYBE_BUILTIN_HANDLER(llvm_sin_f64, Math_sin);
970+
DEF_MAYBE_BUILTIN_HANDLER(llvm_minnum_f32, Math_min);
971+
DEF_MAYBE_BUILTIN_HANDLER(llvm_minnum_f64, Math_min);
972+
DEF_MAYBE_BUILTIN_HANDLER(llvm_maxnum_f32, Math_max);
973+
DEF_MAYBE_BUILTIN_HANDLER(llvm_maxnum_f64, Math_max);
978974

979975
DEF_CALL_HANDLER(llvm_powi_f32, {
980976
return getAssign(CI) + getParenCast("Math_pow(" + getValueAsCastStr(CI->getOperand(0)) + ", " + getCast(getValueAsCastStr(CI->getOperand(1)), CI->getOperand(0)->getType()) + ")", CI->getType());
@@ -1692,8 +1688,6 @@ void setupCallHandlers() {
16921688
SETUP_CALL_HANDLER(llvm_cttz_i64);
16931689
SETUP_CALL_HANDLER(llvm_ctpop_i32);
16941690
SETUP_CALL_HANDLER(llvm_ctpop_i64);
1695-
SETUP_CALL_HANDLER(llvm_maxnum_f32);
1696-
SETUP_CALL_HANDLER(llvm_maxnum_f64);
16971691
SETUP_CALL_HANDLER(llvm_copysign_f32);
16981692
SETUP_CALL_HANDLER(llvm_copysign_f64);
16991693

@@ -2237,6 +2231,10 @@ void setupCallHandlers() {
22372231
SETUP_CALL_HANDLER(llvm_cos_f64);
22382232
SETUP_CALL_HANDLER(llvm_sin_f32);
22392233
SETUP_CALL_HANDLER(llvm_sin_f64);
2234+
SETUP_CALL_HANDLER(llvm_minnum_f32);
2235+
SETUP_CALL_HANDLER(llvm_minnum_f64);
2236+
SETUP_CALL_HANDLER(llvm_maxnum_f32);
2237+
SETUP_CALL_HANDLER(llvm_maxnum_f64);
22402238
}
22412239

22422240
std::string handleCall(const Instruction *CI) {

0 commit comments

Comments
 (0)