Skip to content

compiler_rt: Tracking Issue Integer Routines #15675

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
11 tasks
matu3ba opened this issue May 12, 2023 · 7 comments
Closed
11 tasks

compiler_rt: Tracking Issue Integer Routines #15675

matu3ba opened this issue May 12, 2023 · 7 comments
Milestone

Comments

@matu3ba
Copy link
Contributor

matu3ba commented May 12, 2023

Done Name a b Out Comment
Integer Bit Operations
__clzsi2 u32 i32 count leading zeros
__clzdi2 u64 i32 count leading zeros
__clzti2 u128 i32 count leading zeros
__ctzsi2 u32 i32 count trailing zeros
__ctzdi2 u64 i32 count trailing zeros
__ctzti2 u128 i32 count trailing zeros
__ffssi2 u32 i32 find least significant 1 bit
__ffsdi2 u64 i32 find least significant 1 bit
__ffsti2 u128 i32 find least significant 1 bit
__paritysi2 u32 i32 bit parity
__paritydi2 u64 i32 bit parity
__parityti2 u128 i32 bit parity
__popcountsi2 u32 i32 bit population
__popcountdi2 u64 i32 bit population
__popcountti2 u128 i32 bit population
__bswapsi2 u32 i32 byte swap
__bswapdi2 u64 i32 byte swap
__bswapti2 u128 i32 byte swap
Integer Comparison
__cmpsi2 i32 i32 i32 (a<b) -> 0, (a==b) -> 1, (a>b) -> 2
__cmpdi2 i64 i64 i32 ..
__aeabi_lcmp i64 i64 i32 .. ARM
__cmpti2 i128 i128 i32 ..
__ucmpsi2 u32 u32 i32 (a<b) -> 0, (a==b) -> 1, (a>b) -> 2
__ucmpdi2 u64 u64 i32 ..
__aeabi_ulcmp u64 u64 i32 .. ARM
__ucmpti2 u128 u128 i32 ..
Integer Arithmetic
__ashlsi3 i32 i32 i32 a << b [^unused_rl78]
__ashldi3 i64 i32 i64 ..
__ashlti3 i128 i32 i128 ..
__aeabi_llsl i32 i32 i32 .. ARM
__ashrsi3 i32 i32 i32 a >> b arithmetic (sign fill) [^unused_rl78]
__ashrdi3 i64 i32 i64 ..
__ashrti3 i128 i32 i128 ..
__aeabi_lasr i64 i32 i64 .. ARM
__lshrsi3 i32 i32 i32 a >> b logical (zero fill) [^unused_rl78]
__lshrdi3 i64 i32 i64 ..
__lshrti3 i128 i32 i128 ..
__aeabi_llsr i64 i32 i64 .. ARM
__negsi2 i32 i32 i32 -a [^libgcc_compat]
__negdi2 i64 i64 i64 ..
__negti2 i128 i128 i128 ..
__mulsi3 i32 i32 i32 a * b
__muldi3 i64 i64 i64 ..
__aeabi_lmul i64 i64 i64 .. ARM
__multi3 i128 i128 i128 ..
__divsi3 i32 i32 i32 a / b
__divdi3 i64 i64 i64 ..
__divti3 i128 i128 i128 ..
__aeabi_idiv i32 i32 i32 .. ARM
__udivsi3 u32 u32 u32 a / b
__udivdi3 u64 u64 u64 ..
__udivti3 u128 u128 u128 ..
__aeabi_uidiv i32 i32 i32 .. ARM
__modsi3 i32 i32 i32 a % b
__moddi3 i64 i64 i64 ..
__modti3 i128 i128 i128 ..
__umodsi3 u32 u32 u32 a % b
__umoddi3 u64 u64 u64 ..
__umodti3 u128 u128 u128 ..
__udivmodsi4 u32 u32 u32 a / b, rem.* = a % b
__aeabi_uidivmod u32 u32 u32 .. ARM
__udivmoddi4 u64 u64 u64 ..
__aeabi_uldivmod u64 u64 u64 .. ARM
__udivmodti4 u128 u128 u128 ..
__divmodsi4 i32 i32 i32 a / b, rem.* = a % b
__aeabi_idivmod i32 i32 i32 .. ARM
__divmoddi4 i64 i64 i64 ..
__aeabi_ldivmod i64 i64 i64 .. ARM
__divmodti4 i128 i128 i128 .. [^libgcc_compat]
Integer Arithmetic with Trapping Overflow
__absvsi2 i32 i32 i32 abs(a)
__absvdi2 i64 i64 i64 ..
__absvti2 i128 i128 i128 ..
__negvsi2 i32 i32 i32 -a [^libgcc_compat]
__negvdi2 i64 i64 i64 ..
__negvti2 i128 i128 i128 ..
__addvsi3 i32 i32 i32 a + b
__addvdi3 i64 i64 i64 ..
__addvti3 i128 i128 i128 ..
__subvsi3 i32 i32 i32 a - b
__subvdi3 i64 i64 i64 ..
__subvti3 i128 i128 i128 ..
__mulvsi3 i32 i32 i32 a * b
__mulvdi3 i64 i64 i64 ..
__mulvti3 i128 i128 i128 ..
Integer Arithmetic which Return on Overflow [^noptr_faster]
__addosi4 i32 i32 i32 a + b, overflow->ov.*=1 else 0 [^perf_addition]
__addodi4 i64 i64 i64 ..
__addoti4 i128 i128 i128 ..
__subosi4 i32 i32 i32 a - b, overflow->ov.*=1 else 0 [^perf_addition]
__subodi4 i64 i64 i64 ..
__suboti4 i128 i128 i128 ..
__mulosi4 i32 i32 i32 a * b, overflow->ov.*=1 else 0
__mulodi4 i64 i64 i64 ..
__muloti4 i128 i128 i128 ..

Missing piece:

  • __addvsi3
  • __addvdi3
  • __addvti3
  • __subvsi3
  • __subvdi3
  • __subvti3
  • __mulvsi3
  • __mulvdi3
  • __mulvti3
  • __aeabi_lcmp
  • __aeabi_ulcmp

TODO:

  • check PPC
  • check SPARC

Documentation is maintained in https://github.com/matu3ba/matu3ba.github.io/tree/master/crt until review or I have a better place for it to reduce maintenance churn.

@matu3ba matu3ba added the bug Observed behavior contradicts documented or intended behavior label May 12, 2023
@matu3ba
Copy link
Contributor Author

matu3ba commented May 13, 2023

Exposing pdep and pext is another idea, but YAGNI.

@andrewrk andrewrk removed the bug Observed behavior contradicts documented or intended behavior label Jul 23, 2023
@andrewrk andrewrk modified the milestones: 0.11.0, 0.12.0 Jul 23, 2023
@stevefan1999-personal
Copy link

stevefan1999-personal commented Aug 12, 2023

__multi3 is missing on MSVC and it is referenced by zig_mul_i128, so while clang-cl can compile but we can't do so on MSVC

instead we have: _mul128 | Microsoft Learn

@matu3ba
Copy link
Contributor Author

matu3ba commented Aug 13, 2023

__multi3 is missing on MSVC and it is referenced by zig_mul_i128, so while clang-cl can compile but we can't do so on MSVC

See lib/compiler_rt/mulXi3.zig:17:

comptime {
    @export(__mulsi3, .{ .name = "__mulsi3", .linkage = common.linkage, .visibility = common.visibility });
    if (common.want_aeabi) {
        @export(__aeabi_lmul, .{ .name = "__aeabi_lmul", .linkage = common.linkage, .visibility = common.visibility });
    } else {
        @export(__muldi3, .{ .name = "__muldi3", .linkage = common.linkage, .visibility = common.visibility });
    }
    if (common.want_windows_v2u64_abi) {
        @export(__multi3_windows_x86_64, .{ .name = "__multi3", .linkage = common.linkage, .visibility = common.visibility });
    } else {
        @export(__multi3, .{ .name = "__multi3", .linkage = common.linkage, .visibility = common.visibility });
    }
}

We want to keep bootstrapping code as simple as reasonable, but we need the compiler_rt things for LLVM, so it makes no sense to conditionally use the Windows stuff. Or can you show significant performance differences for bootstrapping justifying additional complexity?

@silbinarywolf
Copy link
Contributor

silbinarywolf commented Jun 13, 2024

__multi3 does not exist for PowerPC, or at least when compiling for the Wii using the devkitPro toolchain (patched GCC)
Looks like LLVM had to handle this: https://reviews.llvm.org/D119624

For context, I was experimenting with compiling to C with .ofmt = .c and feeding that file + zig.h into the GCC compile to make it build it.

@andrewrk
Copy link
Member

Not sure what you mean by __multi3 not existing for PowerPC. All compiler rt functions are provided by zig. Zig creates a compiler rt with weak symbols so that any functions needed are available but also overridable.

@silbinarywolf
Copy link
Contributor

silbinarywolf commented Jun 13, 2024

Ah, in my testing I used .ofmt = c as the target with b.addObject to create the .c file. Since I was feeding this output file directly to devkitPPC\bin\powerpc-eabi-gcc.exe it wasn't including the compiler_rt.

Setting obj.bundle_compiler_rt = true; got it to compile, albeit with warnings. Also it crashed when I tried to run it on Dolphin but it did compile 😁 (For clarity, it runs fine on Dolphin if I just get Zig+LLVM to output the .o file and pass that into gcc)

Not sure if its helpful at all to post the warnings but here they are, also a screenshot:
image

D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:9144:16: warning: conflicting types for built-in function 'printf'; expected 'int(const char *, ...)' [-Wbuiltin-declaration-mismatch]
 9144 | zig_extern int printf(uint8_t const *, ...);
      |                ^~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:3:1: note: 'printf' is declared in header '<stdio.h>'
    2 | #include "zig.h"
  +++ |+#include <stdio.h>
    3 | struct anon__lazy_66 {
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'ceill':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:50092:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
50092 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:50087:37: note: source object 'a0' of size 8
50087 | long double ceill(long double const a0) {
      |                   ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'expl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:51172:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
51172 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:51167:36: note: source object 'a0' of size 8
51167 | long double expl(long double const a0) {
      |                  ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'exp2l':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:51756:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
51756 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:51751:37: note: source object 'a0' of size 8
51751 | long double exp2l(long double const a0) {
      |                   ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'fabsl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:51894:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
51894 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:51889:37: note: source object 'a0' of size 8
51889 | long double fabsl(long double const a0) {
      |                   ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'cosl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:50505:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
50505 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:50500:36: note: source object 'a0' of size 8
50500 | long double cosl(long double const a0) {
      |                  ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'floorl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:52412:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
52412 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:52407:38: note: source object 'a0' of size 8
52407 | long double floorl(long double const a0) {
      |                    ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'fmal':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53028:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
53028 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53021:36: note: source object 'a0' of size 8
53021 | long double fmal(long double const a0, long double const a1, long double const a2) {
      |                  ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53029:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
53029 |  memcpy(&t1, &a1, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53021:58: note: source object 'a1' of size 8
53021 | long double fmal(long double const a0, long double const a1, long double const a2) {
      |                                        ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53030:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
53030 |  memcpy(&t2, &a2, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53021:80: note: source object 'a2' of size 8
53021 | long double fmal(long double const a0, long double const a1, long double const a2) {
      |                                                              ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'fmaxl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53289:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
53289 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53283:37: note: source object 'a0' of size 8
53283 | long double fmaxl(long double const a0, long double const a1) {
      |                   ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53290:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
53290 |  memcpy(&t1, &a1, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53283:59: note: source object 'a1' of size 8
53283 | long double fmaxl(long double const a0, long double const a1) {
      |                                         ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'fminl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53549:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
53549 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53543:37: note: source object 'a0' of size 8
53543 | long double fminl(long double const a0, long double const a1) {
      |                   ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53550:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
53550 |  memcpy(&t1, &a1, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:53543:59: note: source object 'a1' of size 8
53543 | long double fminl(long double const a0, long double const a1) {
      |                                         ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'fmodl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:55273:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
55273 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:55267:37: note: source object 'a0' of size 8
55267 | long double fmodl(long double const a0, long double const a1) {
      |                   ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:55274:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
55274 |  memcpy(&t1, &a1, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:55267:59: note: source object 'a1' of size 8
55267 | long double fmodl(long double const a0, long double const a1) {
      |                                         ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'logl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:55927:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
55927 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:55922:36: note: source object 'a0' of size 8
55922 | long double logl(long double const a0) {
      |                  ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'log10l':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:56701:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
56701 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:56696:38: note: source object 'a0' of size 8
56696 | long double log10l(long double const a0) {
      |                    ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'log2l':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:57453:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
57453 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:57448:37: note: source object 'a0' of size 8
57448 | long double log2l(long double const a0) {
      |                   ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'roundl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:58002:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
58002 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:57997:38: note: source object 'a0' of size 8
57997 | long double roundl(long double const a0) {
      |                    ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'sinl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:58450:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
58450 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:58445:36: note: source object 'a0' of size 8
58445 | long double sinl(long double const a0) {
      |                  ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'sincosl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:59024:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
59024 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:59018:32: note: source object 'a0' of size 8
59018 | void sincosl(long double const a0, long double *const a1, long double *const a2) {
      |              ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'sqrtl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:60022:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
60022 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:60017:37: note: source object 'a0' of size 8
60017 | long double sqrtl(long double const a0) {
      |                   ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'tanl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:60374:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
60374 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:60369:36: note: source object 'a0' of size 8
60369 | long double tanl(long double const a0) {
      |                  ~~~~~~~~~~~~~~~~~~^~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c: In function 'truncl':
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:60644:2: warning: 'memcpy' reading 16 bytes from a region of size 8 [-Wstringop-overread]
60644 |  memcpy(&t0, &a0, sizeof(zig_f128));
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\ZigProjects\map-editor\.zig-cache\o\a0f12b3c5235c27b177fadbc3243019b\map-editor.c:60639:38: note: source object 'a0' of size 8
60639 | long double truncl(long double const a0) {

@andrewrk
Copy link
Member

I'm not seeing the value in this tracking issue.

@andrewrk andrewrk closed this as not planned Won't fix, can't repro, duplicate, stale Feb 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants