Always use the pure Rust fallback instead of llvm.{maximum,minimum}
This commit is contained in:
@@ -103,23 +103,25 @@ fn call_simple_intrinsic<'ll, 'tcx>(
|
||||
sym::minnumf64 => ("llvm.minnum", &[bx.type_f64()]),
|
||||
sym::minnumf128 => ("llvm.minnum", &[bx.type_f128()]),
|
||||
|
||||
sym::minimumf16 => ("llvm.minimum", &[bx.type_f16()]),
|
||||
sym::minimumf32 => ("llvm.minimum", &[bx.type_f32()]),
|
||||
sym::minimumf64 => ("llvm.minimum", &[bx.type_f64()]),
|
||||
// There are issues on x86_64 and aarch64 with the f128 variant,
|
||||
// let's instead use the intrinsic fallback body.
|
||||
// sym::minimumf128 => ("llvm.minimum", &[cx.type_f128()]),
|
||||
// FIXME: LLVM currently mis-compile those intrinsics, re-enable them
|
||||
// when llvm/llvm-project#{139380,139381,140445} are fixed.
|
||||
//sym::minimumf16 => ("llvm.minimum", &[bx.type_f16()]),
|
||||
//sym::minimumf32 => ("llvm.minimum", &[bx.type_f32()]),
|
||||
//sym::minimumf64 => ("llvm.minimum", &[bx.type_f64()]),
|
||||
//sym::minimumf128 => ("llvm.minimum", &[cx.type_f128()]),
|
||||
//
|
||||
sym::maxnumf16 => ("llvm.maxnum", &[bx.type_f16()]),
|
||||
sym::maxnumf32 => ("llvm.maxnum", &[bx.type_f32()]),
|
||||
sym::maxnumf64 => ("llvm.maxnum", &[bx.type_f64()]),
|
||||
sym::maxnumf128 => ("llvm.maxnum", &[bx.type_f128()]),
|
||||
|
||||
sym::maximumf16 => ("llvm.maximum", &[bx.type_f16()]),
|
||||
sym::maximumf32 => ("llvm.maximum", &[bx.type_f32()]),
|
||||
sym::maximumf64 => ("llvm.maximum", &[bx.type_f64()]),
|
||||
// There are issues on x86_64 and aarch64 with the f128 variant,
|
||||
// let's instead use the intrinsic fallback body.
|
||||
// sym::maximumf128 => ("llvm.maximum", &[cx.type_f128()]),
|
||||
// FIXME: LLVM currently mis-compile those intrinsics, re-enable them
|
||||
// when llvm/llvm-project#{139380,139381,140445} are fixed.
|
||||
//sym::maximumf16 => ("llvm.maximum", &[bx.type_f16()]),
|
||||
//sym::maximumf32 => ("llvm.maximum", &[bx.type_f32()]),
|
||||
//sym::maximumf64 => ("llvm.maximum", &[bx.type_f64()]),
|
||||
//sym::maximumf128 => ("llvm.maximum", &[cx.type_f128()]),
|
||||
//
|
||||
sym::copysignf16 => ("llvm.copysign", &[bx.type_f16()]),
|
||||
sym::copysignf32 => ("llvm.copysign", &[bx.type_f32()]),
|
||||
sym::copysignf64 => ("llvm.copysign", &[bx.type_f64()]),
|
||||
|
||||
Reference in New Issue
Block a user