boomanaiden154 wrote:

> For libmvec we intentionally upscale from a f32x8 to a f64x8 which will now 
> always fire a warning if I understand correctly. The original intent of these 
> warnings from what I understood was mixing ABIs accross TU boundaries, which 
> is why we force all of these to be static.

You can run into ABI issues within a single translation unit too because the 
calling convention is dependent upon the caller's features. e.g. if `foo` is 
marked `avx512f` and calls `baz` (with a 512-bit vector type), it will use zmm 
registers. If in the same translation unit you have `bar` which doesn't have 
any `avx512f` features and it calls `baz`, it will pass the argument on the 
stack.

But given LLVM libc and libc++ happen to work, I would assume there aren't 
massive ABI issues like that and we shouldn't be warning in those cases.

https://github.com/llvm/llvm-project/pull/199091
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to