-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Adding support for the X86Base.Pause intrinsic on Mono #61707
Conversation
CC. @fanyang-mono, @EgorBo What's the correct CI leg that needs to be kicked off to validate things here? |
I don't think this is enough. This only adds a mini opcode and an LLVM lowering for it. You also need at least:
Actually, the new mini opcode isn't necessary. There's already |
I don't think its a good idea to rely on
I'll add the additional handling for the non-LLVM path. |
97f3f62
to
bbf75b4
Compare
Hmm... now I'm not sure... the x86base group is not marked as JIT supported in simd-intrinsics. So maybe it's fine for this to be LLVM-only? a bit surprising since it seems like we should be able to support these instructions in the JIT, too. |
Updated to match what I was going to also add support for For the JIT, the actual instruction encoding is
For LLVM, it'd be
but the overall mono logic here is different from what I'm familiar with and I'm not quite sure what the "right" fix is. |
Most intrinsics in simd-intrinsic.c are only supported with llvm right now. |
/azp runtime-staging-manual |
Command 'runtime-staging-manual' is not supported by Azure Pipelines. Supported commands
See additional documentation. |
/azp run runtime-staging-manual |
Azure Pipelines successfully started running 1 pipeline(s). |
Lane |
FYI, I've disabled the test in #61743 for now. If you merge in main you should be able to re-enable it in this branch. |
Actually, what I sad earlier was not true. Since the newly added intrinsics will only be added for LLVM and X86Base.Pause is really for all intel architectures. So to qualify this change, |
It's fine for this to be LLVM-only for now.
Adding |
/azp run runtime-manual |
Azure Pipelines successfully started running 1 pipeline(s). |
bbf75b4
to
1aca1ca
Compare
/azp run runtime-manual |
Azure Pipelines successfully started running 1 pipeline(s). |
Can this be merged. It looks like all the failures are Android/iOS/WASM and are unrelated. |
This does work for me locally:
but only when running with --llvm |
Followup: Mono llvmaot lane passed on rolling build. |
By the time that I exam the rolling build tests results, this change has been reverted. My previous comment could be ignored. |
This resolves #61693