diff options
| author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2025-05-18 14:21:04 +0000 |
|---|---|---|
| committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2025-05-18 14:21:04 +0000 |
| commit | 7b670d243fa59d2d3fb32dda282d545c336fb30a (patch) | |
| tree | 8f5df39fcda2cc6d8c77aaa89f223cfcfd85477f /src | |
| parent | 2f8f4643900301caa2984fd97f6c20347ea9936e (diff) | |
| parent | e6d288ba17962c1f7e3ded3cb13e1ad596f9a813 (diff) | |
| download | rust-7b670d243fa59d2d3fb32dda282d545c336fb30a.tar.gz rust-7b670d243fa59d2d3fb32dda282d545c336fb30a.zip | |
Sync from rust 777d372772aa3b39ba7273fcb8208a89f2ab0afd
Diffstat (limited to 'src')
| -rw-r--r-- | src/intrinsics/mod.rs | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/src/intrinsics/mod.rs b/src/intrinsics/mod.rs index 0048a3e8db5..25e224ebfe2 100644 --- a/src/intrinsics/mod.rs +++ b/src/intrinsics/mod.rs @@ -1117,6 +1117,43 @@ fn codegen_regular_intrinsic_call<'tcx>( ret.write_cvalue(fx, old); } + sym::minimumf32 => { + intrinsic_args!(fx, args => (a, b); intrinsic); + let a = a.load_scalar(fx); + let b = b.load_scalar(fx); + + let val = fx.bcx.ins().fmin(a, b); + let val = CValue::by_val(val, fx.layout_of(fx.tcx.types.f32)); + ret.write_cvalue(fx, val); + } + sym::minimumf64 => { + intrinsic_args!(fx, args => (a, b); intrinsic); + let a = a.load_scalar(fx); + let b = b.load_scalar(fx); + + let val = fx.bcx.ins().fmin(a, b); + let val = CValue::by_val(val, fx.layout_of(fx.tcx.types.f64)); + ret.write_cvalue(fx, val); + } + sym::maximumf32 => { + intrinsic_args!(fx, args => (a, b); intrinsic); + let a = a.load_scalar(fx); + let b = b.load_scalar(fx); + + let val = fx.bcx.ins().fmax(a, b); + let val = CValue::by_val(val, fx.layout_of(fx.tcx.types.f32)); + ret.write_cvalue(fx, val); + } + sym::maximumf64 => { + intrinsic_args!(fx, args => (a, b); intrinsic); + let a = a.load_scalar(fx); + let b = b.load_scalar(fx); + + let val = fx.bcx.ins().fmax(a, b); + let val = CValue::by_val(val, fx.layout_of(fx.tcx.types.f64)); + ret.write_cvalue(fx, val); + } + sym::minnumf32 => { intrinsic_args!(fx, args => (a, b); intrinsic); let a = a.load_scalar(fx); @@ -1290,7 +1327,7 @@ fn codegen_regular_intrinsic_call<'tcx>( intrinsic.name, ); } - return Err(Instance::new(instance.def_id(), instance.args)); + return Err(Instance::new_raw(instance.def_id(), instance.args)); } } |
