| ... | ... | @@ -6831,12 +6831,12 @@ fn genBinOp( |
| 6831 | 6831 | const rhs_ty = self.typeOf(rhs_air); |
| 6832 | 6832 | const abi_size: u32 = @intCast(lhs_ty.abiSize(mod)); |
| 6833 | 6833 | |
| 6834 | | if (lhs_ty.isRuntimeFloat() and switch (lhs_ty.floatBits(self.target.*)) { |
| 6834 | if (lhs_ty.isRuntimeFloat() and (air_tag == .rem or switch (lhs_ty.floatBits(self.target.*)) { |
| 6835 | 6835 | 16 => !self.hasFeature(.f16c), |
| 6836 | 6836 | 32, 64 => false, |
| 6837 | 6837 | 80, 128 => true, |
| 6838 | 6838 | else => unreachable, |
| 6839 | | }) { |
| 6839 | })) { |
| 6840 | 6840 | var callee: ["__add?f3".len]u8 = undefined; |
| 6841 | 6841 | const result = try self.genCall(.{ .lib = .{ |
| 6842 | 6842 | .return_type = lhs_ty.toIntern(), |
| ... | ... | @@ -6852,9 +6852,14 @@ fn genBinOp( |
| 6852 | 6852 | @tagName(air_tag)[0..3], |
| 6853 | 6853 | floatCompilerRtAbiName(lhs_ty.floatBits(self.target.*)), |
| 6854 | 6854 | }), |
| 6855 | | .min, .max => std.fmt.bufPrint(&callee, "{s}f{s}{s}", .{ |
| 6855 | .rem, .min, .max => std.fmt.bufPrint(&callee, "{s}f{s}{s}", .{ |
| 6856 | 6856 | floatLibcAbiPrefix(lhs_ty), |
| 6857 | | @tagName(air_tag), |
| 6857 | switch (air_tag) { |
| 6858 | .rem => "mod", |
| 6859 | .min => "min", |
| 6860 | .max => "max", |
| 6861 | else => unreachable, |
| 6862 | }, |
| 6858 | 6863 | floatLibcAbiSuffix(lhs_ty), |
| 6859 | 6864 | }), |
| 6860 | 6865 | else => return self.fail("TODO implement genBinOp for {s} {}", .{ |