Skip to content
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

Assertion failed '(shiftAmount == scale) || (shiftAmount == 0)' #71684

Closed
jkotas opened this issue Jul 5, 2022 · 5 comments · Fixed by #71687
Closed

Assertion failed '(shiftAmount == scale) || (shiftAmount == 0)' #71684

jkotas opened this issue Jul 5, 2022 · 5 comments · Fixed by #71687
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' Known Build Error Use this to report build issues in the .NET Helix tab

Comments

@jkotas
Copy link
Member

jkotas commented Jul 5, 2022

 Starting:    System.Text.RegularExpressions.Tests (parallel test collections = on, max threads = 4)

Assert failure(PID 21 [0x00000015], Thread: 37 [0x0025]): Assertion failed '(shiftAmount == scale) || (shiftAmount == 0)' in 'Microsoft.CodeAnalysis.DotnetRuntime.Extensions.SyntaxValueProviderExtensions:<GetMatchingNodes>g__matchesAttributeName|4_2(byref,byref,System.String,bool,byref):bool' during 'Generate code' (IL size 286; hash 0x72e8996c; Tier1)

    File: /__w/1/s/src/coreclr/jit/emitarm64.cpp Line: 7028
{ "ErrorMessage" : "Assertion failed '(shiftAmount == scale) || (shiftAmount == 0)'" }

Report

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
0 0 0
@jkotas jkotas added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' labels Jul 5, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jul 5, 2022
@ghost
Copy link

ghost commented Jul 5, 2022

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

Issue Details
 Starting:    System.Text.RegularExpressions.Tests (parallel test collections = on, max threads = 4)

Assert failure(PID 21 [0x00000015], Thread: 37 [0x0025]): Assertion failed '(shiftAmount == scale) || (shiftAmount == 0)' in 'Microsoft.CodeAnalysis.DotnetRuntime.Extensions.SyntaxValueProviderExtensions:<GetMatchingNodes>g__matchesAttributeName|4_2(byref,byref,System.String,bool,byref):bool' during 'Generate code' (IL size 286; hash 0x72e8996c; Tier1)

    File: /__w/1/s/src/coreclr/jit/emitarm64.cpp Line: 7028
Author: jkotas
Assignees: -
Labels:

area-CodeGen-coreclr, blocking-clean-ci

Milestone: -

@jkotas
Copy link
Member Author

jkotas commented Jul 5, 2022

Failed in #66413 (comment)

@jkotas
Copy link
Member Author

jkotas commented Jul 5, 2022

Failed in #71633 (comment)

@jakobbotsch jakobbotsch self-assigned this Jul 5, 2022
@jakobbotsch jakobbotsch added this to the 7.0.0 milestone Jul 5, 2022
@jakobbotsch jakobbotsch removed the untriaged New issue has not been triaged by the area owner label Jul 5, 2022
@jakobbotsch
Copy link
Member

This looks like a preexisting issue to #71439. In this case we end up with an unused TYP_REF indirection with contained address mode and lowering turns it into a TYP_BYTE null check due to gtTypeForNullCheck not handling TYP_REF.

jakobbotsch added a commit to jakobbotsch/runtime that referenced this issue Jul 5, 2022
The logic in lowering could in some struct and primitive type cases
generate an unrepresentable NULLCHECK node for ARM64/LA64, when there
was a contained address mode. We now use the width from the address
mode, if this keeps the access small enough, and otherwise clear
containedness.

Fix dotnet#71684
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Jul 5, 2022
@hoyosjs hoyosjs added the Known Build Error Use this to report build issues in the .NET Helix tab label Jul 6, 2022
@net-helix net-helix bot removed this from the 7.0.0 milestone Jul 6, 2022
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jul 6, 2022
@ghost ghost removed the untriaged New issue has not been triaged by the area owner label Jul 6, 2022
jakobbotsch added a commit that referenced this issue Jul 6, 2022
The logic in lowering could in some struct and primitive type cases
generate an unrepresentable NULLCHECK node for ARM64/LA64 when there
was a contained address mode. We now transform unused indirections and
create address modes in the opposite order on non-xarch to avoid these
unrepresentable nullchecks.

Fix #71684
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Jul 6, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Aug 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI blocking-clean-ci Blocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms' Known Build Error Use this to report build issues in the .NET Helix tab
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants