-
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
[mono] Enable more HardwareIntrinsics tests and fix more amd64 intrinsics bugs #54127
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
imhameed
force-pushed
the
monoamd64intrintests2
branch
from
June 13, 2021 23:17
f0a3de1
to
287aca1
Compare
…roduced by ptrtoint Fixes compilation of `JIT/HardwareIntrinsics/X86/Bmi2/Bmi2_{r,ro}/**` and `JIT/HardwareIntrinsics/X86/Bmi2.X64/Bmi2.X64_{r,o}/**`.
Fixes `JIT/HardwareIntrinsics/X86/Ssse3/Ssse3_{r,ro}/**`.
imhameed
force-pushed
the
monoamd64intrintests2
branch
2 times, most recently
from
June 14, 2021 17:54
4507af6
to
5727994
Compare
Fixes `JIT/HardwareIntrinsics/X86/Bmi1/Bmi1_{r,ro}/**` and `JIT/HardwareIntrinsics/X86/Bmi1.X64/Bmi1.X64_{r,ro}/**`.
Fixes `JIT/HardwareIntrinsics/X86/Aes/Aes_{r,ro}/**`.
Fixes `JIT/HardwareIntrinsics/X86/Sse41/MultipleSumAbsoluteDifferences_{r,ro}/**`.
imhameed
force-pushed
the
monoamd64intrintests2
branch
2 times, most recently
from
June 14, 2021 22:29
50eeb0e
to
f8a871e
Compare
imhameed
changed the title
[mono] Enable more HardwareIntrinsics tests
[mono] Enable more HardwareIntrinsics tests and fix more amd64 intrinsics bugs
Jun 15, 2021
imhameed
requested review from
CoffeeFlux,
EgorBo,
lambdageek,
SamMonoRT and
vargaz
as code owners
June 15, 2021 02:39
This was referenced Jun 15, 2021
Closed
@imhameed - please confirm if the failures in the runtime staging lanes are not related to your changes : https://github.com/dotnet/runtime/pull/54127/checks?check_run_id=2830483108 |
I don't think they're related and those lanes don't look like they've had a successful run in a while. |
imhameed
force-pushed
the
monoamd64intrintests2
branch
from
June 17, 2021 04:18
243d11e
to
0ef6c7a
Compare
vargaz
approved these changes
Jun 17, 2021
LLVM `insertelement` and `extractelement` yield poison values for lane indices that are out of bounds, but the underlying instructions on amd64 only care about the lower few bits in the immediate octet and the `Extract.UInt64.129` etc. tests in `JIT/HardwareIntrinsics/X86/Sse41.X64/Sse41.X64_r` test for this. Also, rename `OP_SSE41_INSERT` to `OP_SSE41_INSERTPS` and specialize this to the `insertps` overload of Sse41.Insert. Implement immediate unrolling for `OP_SSE41_INSERTPS`. Fixes `JIT/HardwareIntrinsics/X86/Sse41.X64/Sse41.X64_{r,ro}/**` and . `JIT/HardwareIntrinsics/X86/Sse41/Sse41_{r,ro}/**`.
…P_SSE2_CMPSD` Also fix the overloaded types associated with SSE saturating arithmetic LLVM intrinsic functions. Fixes `JIT/HardwareIntrinsics/X86/Sse2/Sse2_{r,ro}/**` and `JIT/HardwareIntrinsics/X86/Sse/Sse_{r,ro}/**`.
Fixes `JIT/HardwareIntrinsics/X86/Pclmulqdq/Pclmulqdq_{r,ro}`.
imhameed
force-pushed
the
monoamd64intrintests2
branch
from
June 17, 2021 13:58
0ef6c7a
to
4dfc5df
Compare
58 tasks
ghost
locked as resolved and limited conversation to collaborators
Jul 17, 2021
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Enables nearly all disabled
JIT/HardwareIntrinsics
tests.StoreNonTemporal_{r,ro}
andSse42.X64/Crc32_{r,ro}
remain disabled due toissues that are out of scope for this PR.
Changes:
Enable
pclmul
andaes
when AOT compiling runtime tests.Add a
immediate_unroll_unreachable_default
, used to mark the default casein an unrolled immediate switch as unreachable.
Fix
OP_MULX_HL{32,64}
: the low-word address is sometimes an integer producedby ptrtoint
Fixes compilation of
JIT/HardwareIntrinsics/X86/Bmi2/Bmi2_{r,ro}/**
and
JIT/HardwareIntrinsics/X86/Bmi2.X64/Bmi2.X64_{r,o}/**
.Implement immediate unrolling for
Ssse3.AlignRight
Fixes
JIT/HardwareIntrinsics/X86/Ssse3/Ssse3_{r,ro}/**
.Implement the 3-argument overload of
Bmi1.BitFieldExtract
Fixes
JIT/HardwareIntrinsics/X86/Bmi1/Bmi1_{r,ro}/**
andJIT/HardwareIntrinsics/X86/Bmi1.X64/Bmi1.X64_{r,ro}/**
.Implement immediate unrolling for
Aes.KeygenAssist
Fixes
JIT/HardwareIntrinsics/X86/Aes/Aes_{r,ro}/**
.Implement immediate unrolling for
Sse41.MultipleSumAbsoluteDifferences
Fixes
JIT/HardwareIntrinsics/X86/Sse41/MultipleSumAbsoluteDifferences_{r,ro}/**
.Mask vector selection index in
OP_XEXTRACT_*
andOP_XINSERT_*
LLVM
insertelement
andextractelement
yield poison values for laneindices that are out of bounds, but the underlying instructions on amd64 only
care about the lower few bits in the immediate octet and the
Extract.UInt64.129
etc. tests inJIT/HardwareIntrinsics/X86/Sse41.X64/Sse41.X64_r
test for this.Also, rename
OP_SSE41_INSERT
toOP_SSE41_INSERTPS
and specialize this tothe
insertps
overload ofSse41.Insert
.Implement immediate unrolling for
OP_SSE41_INSERTPS
.Fixes
JIT/HardwareIntrinsics/X86/Sse41.X64/Sse41.X64_{r,ro}/**
and .JIT/HardwareIntrinsics/X86/Sse41/Sse41_{r,ro}/**
.Copy the upper lanes over to the destination in
OP_SSE_CMPSS
andOP_SSE2_CMPSD
Also fix the overloaded types associated with SSE saturating arithmetic LLVM
intrinsic functions.
Fixes
JIT/HardwareIntrinsics/X86/Sse2/Sse2_{r,ro}/**
andJIT/HardwareIntrinsics/X86/Sse/Sse_{r,ro}/**
.Implement immediate unrolling for
Pclmulqdq.CarrylessMultiply
Fixes
JIT/HardwareIntrinsics/X86/Pclmulqdq/Pclmulqdq_{r,ro}
.