You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Checked the issue tracker for similar issues to ensure this is not a duplicate.
Described the feature in detail and justified the reason for the request.
Provided specific use cases and examples.
Feature description
Improve the support for esp32s3's 128-bit QR vector register class in inline assembly. Currently, they're very limited - see esp-rs/rust#265.
Use cases
Writing performant SIMD code while leaving register allocation to the compiler. The esp32s3 has an extended instruction set with a bunch of useful vector instructions that currently don't seem to get generated at all by LLVM. Plus, they are only partially supported in inline assembly since you need to manually load specific QR registers with the data you want to manipulate every time.
I'm using rustc. I've tried implementing these changes myself - I, however, am not knowledgeable in LLVM and could only take it so far. My efforts can be seen in the following forks:
Checklist
Feature description
Improve the support for esp32s3's 128-bit QR vector register class in inline assembly. Currently, they're very limited - see esp-rs/rust#265.
Use cases
Writing performant SIMD code while leaving register allocation to the compiler. The esp32s3 has an extended instruction set with a bunch of useful vector instructions that currently don't seem to get generated at all by LLVM. Plus, they are only partially supported in inline assembly since you need to manually load specific QR registers with the data you want to manipulate every time.
Alternatives
Additional context
I'm using rustc. I've tried implementing these changes myself - I, however, am not knowledgeable in LLVM and could only take it so far. My efforts can be seen in the following forks: