-
Notifications
You must be signed in to change notification settings - Fork 103
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
_BitInt(N) with large N #1212
Comments
This is useful for FPGA where we love 512 bit busses and transfer explicit 512 bit data chunks. It looks to me that using the same |
@keryell, the data layout problem isn't solved for SYCL. |
@keryell for AMD/Xilinx FPGA the data-layout is "little endian, padded and aligned to the 'next' power of two", it helps a lot with vectorization and imposing a strict layout makes everybody's life easier. We made On the CPU side of things we were just using a struct containing an array of |
Also, we are glad that Clang upped the |
@tahonermann You are mentioning a more general problem on how to lower weird things like function pointers in a compatible way between host and device, which is a mess if the device has no function pointers at the first place, for example. |
@keryell, no, I wasn't referring to function pointers; I was referring to pointer-to-member types which (presumably) do exist in device code and can be used as the type of data members (the SYCL 2020 specification doesn't acknowledge the existence of such types, so they are neither excluded as function pointers are nor are they explicitly allowed). The concern is not with lowering, but with object representation and whether such types are device copyable; the same concerns as for The SYCL specification can't dictate ABI matters and therefore can't require A quick glance at the Clang supported targets that currently have |
ClangIR implements the C23
_BitInt(N)
types ascir.int
. That works fine forN <= 128
, which is currently the upper limit for the width ofcir.int
. But Clang supports_BitInt(N)
for much largerN
, up to 8,388,608. ClangIR should also support large_BitInt
types. I don't know whether the right way to do this is to extend the upper limit ofcir.int
or to use a different CIR type for large_BitInt
types.The text was updated successfully, but these errors were encountered: