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