| ... | ... | @@ -12419,7 +12419,8 @@ fn isScalar(zcu: *Zcu, ty: Type) bool { |
| 12419 | 12419 | } |
| 12420 | 12420 | |
| 12421 | 12421 | /// This function returns true if we expect LLVM to lower x86_fp80 correctly |
| 12422 | | /// and false if we expect LLVM to crash if it counters an x86_fp80 type. |
| 12422 | /// and false if we expect LLVM to crash if it encounters an x86_fp80 type, |
| 12423 | /// or if it produces miscompilations. |
| 12423 | 12424 | fn backendSupportsF80(target: std.Target) bool { |
| 12424 | 12425 | return switch (target.cpu.arch) { |
| 12425 | 12426 | .x86_64, .x86 => !std.Target.x86.featureSetHas(target.cpu.features, .soft_float), |
| ... | ... | @@ -12428,8 +12429,8 @@ fn backendSupportsF80(target: std.Target) bool { |
| 12428 | 12429 | } |
| 12429 | 12430 | |
| 12430 | 12431 | /// This function returns true if we expect LLVM to lower f16 correctly |
| 12431 | | /// and false if we expect LLVM to crash if it counters an f16 type or |
| 12432 | | /// if it produces miscompilations. |
| 12432 | /// and false if we expect LLVM to crash if it encounters an f16 type, |
| 12433 | /// or if it produces miscompilations. |
| 12433 | 12434 | fn backendSupportsF16(target: std.Target) bool { |
| 12434 | 12435 | return switch (target.cpu.arch) { |
| 12435 | 12436 | .hexagon, |
| ... | ... | @@ -12443,7 +12444,6 @@ fn backendSupportsF16(target: std.Target) bool { |
| 12443 | 12444 | .mipsel, |
| 12444 | 12445 | .mips64, |
| 12445 | 12446 | .mips64el, |
| 12446 | | .riscv32, |
| 12447 | 12447 | .s390x, |
| 12448 | 12448 | => false, |
| 12449 | 12449 | .arm, |
| ... | ... | @@ -12459,7 +12459,7 @@ fn backendSupportsF16(target: std.Target) bool { |
| 12459 | 12459 | } |
| 12460 | 12460 | |
| 12461 | 12461 | /// This function returns true if we expect LLVM to lower f128 correctly, |
| 12462 | | /// and false if we expect LLVm to crash if it encounters and f128 type |
| 12462 | /// and false if we expect LLVM to crash if it encounters an f128 type, |
| 12463 | 12463 | /// or if it produces miscompilations. |
| 12464 | 12464 | fn backendSupportsF128(target: std.Target) bool { |
| 12465 | 12465 | return switch (target.cpu.arch) { |
| ... | ... | @@ -12486,7 +12486,7 @@ fn backendSupportsF128(target: std.Target) bool { |
| 12486 | 12486 | } |
| 12487 | 12487 | |
| 12488 | 12488 | /// LLVM does not support all relevant intrinsics for all targets, so we |
| 12489 | | /// may need to manually generate a libc call |
| 12489 | /// may need to manually generate a compiler-rt call. |
| 12490 | 12490 | fn intrinsicsAllowed(scalar_ty: Type, target: std.Target) bool { |
| 12491 | 12491 | return switch (scalar_ty.toIntern()) { |
| 12492 | 12492 | .f16_type => backendSupportsF16(target), |