diff --git a/src/codegen/llvm/FuncGen.zig b/src/codegen/llvm/FuncGen.zig index 8cc966db96eac388e480c231c409b24af5b657db..3efb14d1b3118828adc2b316c8e1f920d51336e2 100644 --- a/src/codegen/llvm/FuncGen.zig +++ b/src/codegen/llvm/FuncGen.zig @@ -7995,14 +7995,14 @@ fn appendConstraints( fn intrinsicsAllowed(kind: enum { compiler_rt, libc }, scalar_ty: Type, target: *const std.Target) bool { if (!scalar_ty.isRuntimeFloat()) return true; const bits = scalar_ty.floatBits(target); - // Since upstream musl/msvc do not actually define the *f128 functions, llvm decides - // that it is a much better idea to just emit a call to the entirely wrong function as - // a fallback. We wouldn't want any linker errors when trying to perform an operation - // that isn't actually implemented anywhere, now would we! - if (bits == 128 and target.cpu.arch.isX86() and !target.abi.isGnu()) return switch (kind) { - .compiler_rt => true, - .libc => false, - }; + switch (kind) { + .compiler_rt => {}, + // Since upstream musl/msvc do not actually define the *f128 functions, llvm decides + // that it is a much better idea to just emit a call to the entirely wrong function as + // a fallback. We wouldn't want any linker errors when trying to perform an operation + // that isn't actually implemented anywhere, now would we! + .libc => if (bits == 128 and target.cpu.arch.isX86() and !target.abi.isGnu()) return false, + } return switch (std.zig.target.compilerRtFloatAbi(target, bits)) { .hard => true, .soft => false,