Skip to content

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert - #76460

Merged
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347
Oct 2, 2022
Merged

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert#76460
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347

Conversation

@tannergooding

Copy link
Copy Markdown
Member

This resolves#76347

…ector<T> value)`) doesn't have a side-effect in its assert
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 30, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

CC. @BruceForstall, @dotnet/jit-contrib

@ghost

Copy link
Copy Markdown

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

Issue Details

This resolves #76347

Author:tannergooding
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@tannergooding

Copy link
Copy Markdown
MemberAuthor

This bug also exists in .NET 6

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good find!

I suppose this could have been avoided by not re-using the simdSize argument as what is really a argumentSimdSize value. btw, simdSize isn't documented in the function header.

LGTM

@BruceForstall

Copy link
Copy Markdown
Contributor

(btw, this contributes to #76347, but doesn't fully resolve it. I have other changes to the test running infrastructure that will do the rest of the work)

@BruceForstall

Copy link
Copy Markdown
Contributor

@tannergooding Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector<T> v = ...; v.AsVector128(); could give incorrect results?

Does a complete fix also require some (or all) of #76456?

@tannergooding

tannergooding commented Oct 1, 2022

Copy link
Copy Markdown
MemberAuthor

Does a complete fix also require some (or all) of #76456?

No. That's independent and just helps ensure codegen is better it shouldn't have any impact on the correctness of the codegen.

Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector v = ...; v.AsVector128(); could give incorrect results?

Its probably better to take it than not given its a 1 line fix putting it back inline with .NET Core 3.1 and .NET 5. That being said, I don't think users will see any negative side effects from us doing nothing...

The impact here is that on a system with AVX2 support (which I'd presume is a majority) a user calling vector.AsVector128 will get treated as a "nop" and the value will be consumed directly. Whether that's coming from memory or a register should be fine since the memory slot will be 32-bytes or we'll preserve the 32-bit register.

The potential negative would be if CSE or another optimization tries to look at this local and sees TYP_SIMD32 when it should see TYP_SIMD16. However, I'm not aware of any code that would be directly impacted by that...

@BruceForstall

Copy link
Copy Markdown
Contributor

The superpmi-replay failure looks like a timeout. We've had a few of those lately and need to investigate (separately).

@BruceForstall
BruceForstall merged commit 144a33a into dotnet:mainOct 2, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

@BruceForstall, should I go ahead and backport this to 7.0 and go through the approval process? What about 6.0?

@SingleAccretion or @EgorBo might have a better idea if there is potential CSE impact here.

@BruceForstall

Copy link
Copy Markdown
Contributor

I would suggest trying to get it in 7.0, since it is silent bad codegen. However, your description of the impact indicates there really is no impact, so that might not persuade the approvers.

@BruceForstall

Copy link
Copy Markdown
Contributor

One argument for porting it is it will (help) clean up our checked/release asm diffs testing on 7.0, so it could be argued it is a benefit to testing.

@tannergooding

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/3175903125

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Failures in checked/release asm diffs

2 participants

@tannergooding@BruceForstall
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Ensure NI_Vector128_AsVector128 (aka `Vector128<T> AsVector128(this Vector<T> value)`) doesn't have a side-effect in its assert by tannergooding · Pull Request #76460 · dotnet/runtime · GitHub
Skip to content

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert - #76460

Merged
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347
Oct 2, 2022
Merged

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert#76460
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347

Conversation

@tannergooding

Copy link
Copy Markdown
Member

This resolves#76347

…ector<T> value)`) doesn't have a side-effect in its assert
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 30, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

CC. @BruceForstall, @dotnet/jit-contrib

@ghost

Copy link
Copy Markdown

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

Issue Details

This resolves #76347

Author:tannergooding
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@tannergooding

Copy link
Copy Markdown
MemberAuthor

This bug also exists in .NET 6

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good find!

I suppose this could have been avoided by not re-using the simdSize argument as what is really a argumentSimdSize value. btw, simdSize isn't documented in the function header.

LGTM

@BruceForstall

Copy link
Copy Markdown
Contributor

(btw, this contributes to #76347, but doesn't fully resolve it. I have other changes to the test running infrastructure that will do the rest of the work)

@BruceForstall

Copy link
Copy Markdown
Contributor

@tannergooding Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector<T> v = ...; v.AsVector128(); could give incorrect results?

Does a complete fix also require some (or all) of #76456?

@tannergooding

tannergooding commented Oct 1, 2022

Copy link
Copy Markdown
MemberAuthor

Does a complete fix also require some (or all) of #76456?

No. That's independent and just helps ensure codegen is better it shouldn't have any impact on the correctness of the codegen.

Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector v = ...; v.AsVector128(); could give incorrect results?

Its probably better to take it than not given its a 1 line fix putting it back inline with .NET Core 3.1 and .NET 5. That being said, I don't think users will see any negative side effects from us doing nothing...

The impact here is that on a system with AVX2 support (which I'd presume is a majority) a user calling vector.AsVector128 will get treated as a "nop" and the value will be consumed directly. Whether that's coming from memory or a register should be fine since the memory slot will be 32-bytes or we'll preserve the 32-bit register.

The potential negative would be if CSE or another optimization tries to look at this local and sees TYP_SIMD32 when it should see TYP_SIMD16. However, I'm not aware of any code that would be directly impacted by that...

@BruceForstall

Copy link
Copy Markdown
Contributor

The superpmi-replay failure looks like a timeout. We've had a few of those lately and need to investigate (separately).

@BruceForstall
BruceForstall merged commit 144a33a into dotnet:mainOct 2, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

@BruceForstall, should I go ahead and backport this to 7.0 and go through the approval process? What about 6.0?

@SingleAccretion or @EgorBo might have a better idea if there is potential CSE impact here.

@BruceForstall

Copy link
Copy Markdown
Contributor

I would suggest trying to get it in 7.0, since it is silent bad codegen. However, your description of the impact indicates there really is no impact, so that might not persuade the approvers.

@BruceForstall

Copy link
Copy Markdown
Contributor

One argument for porting it is it will (help) clean up our checked/release asm diffs testing on 7.0, so it could be argued it is a benefit to testing.

@tannergooding

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/3175903125

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Failures in checked/release asm diffs

2 participants

@tannergooding@BruceForstall
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Ensure NI_Vector128_AsVector128 (aka `Vector128<T> AsVector128(this Vector<T> value)`) doesn't have a side-effect in its assert by tannergooding · Pull Request #76460 · dotnet/runtime · GitHub
Skip to content

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert - #76460

Merged
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347
Oct 2, 2022
Merged

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert#76460
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347

Conversation

@tannergooding

Copy link
Copy Markdown
Member

This resolves#76347

…ector<T> value)`) doesn't have a side-effect in its assert
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 30, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

CC. @BruceForstall, @dotnet/jit-contrib

@ghost

Copy link
Copy Markdown

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

Issue Details

This resolves #76347

Author:tannergooding
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@tannergooding

Copy link
Copy Markdown
MemberAuthor

This bug also exists in .NET 6

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good find!

I suppose this could have been avoided by not re-using the simdSize argument as what is really a argumentSimdSize value. btw, simdSize isn't documented in the function header.

LGTM

@BruceForstall

Copy link
Copy Markdown
Contributor

(btw, this contributes to #76347, but doesn't fully resolve it. I have other changes to the test running infrastructure that will do the rest of the work)

@BruceForstall

Copy link
Copy Markdown
Contributor

@tannergooding Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector<T> v = ...; v.AsVector128(); could give incorrect results?

Does a complete fix also require some (or all) of #76456?

@tannergooding

tannergooding commented Oct 1, 2022

Copy link
Copy Markdown
MemberAuthor

Does a complete fix also require some (or all) of #76456?

No. That's independent and just helps ensure codegen is better it shouldn't have any impact on the correctness of the codegen.

Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector v = ...; v.AsVector128(); could give incorrect results?

Its probably better to take it than not given its a 1 line fix putting it back inline with .NET Core 3.1 and .NET 5. That being said, I don't think users will see any negative side effects from us doing nothing...

The impact here is that on a system with AVX2 support (which I'd presume is a majority) a user calling vector.AsVector128 will get treated as a "nop" and the value will be consumed directly. Whether that's coming from memory or a register should be fine since the memory slot will be 32-bytes or we'll preserve the 32-bit register.

The potential negative would be if CSE or another optimization tries to look at this local and sees TYP_SIMD32 when it should see TYP_SIMD16. However, I'm not aware of any code that would be directly impacted by that...

@BruceForstall

Copy link
Copy Markdown
Contributor

The superpmi-replay failure looks like a timeout. We've had a few of those lately and need to investigate (separately).

@BruceForstall
BruceForstall merged commit 144a33a into dotnet:mainOct 2, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

@BruceForstall, should I go ahead and backport this to 7.0 and go through the approval process? What about 6.0?

@SingleAccretion or @EgorBo might have a better idea if there is potential CSE impact here.

@BruceForstall

Copy link
Copy Markdown
Contributor

I would suggest trying to get it in 7.0, since it is silent bad codegen. However, your description of the impact indicates there really is no impact, so that might not persuade the approvers.

@BruceForstall

Copy link
Copy Markdown
Contributor

One argument for porting it is it will (help) clean up our checked/release asm diffs testing on 7.0, so it could be argued it is a benefit to testing.

@tannergooding

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/3175903125

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Failures in checked/release asm diffs

2 participants

@tannergooding@BruceForstall
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Ensure NI_Vector128_AsVector128 (aka `Vector128<T> AsVector128(this Vector<T> value)`) doesn't have a side-effect in its assert by tannergooding · Pull Request #76460 · dotnet/runtime · GitHub
Skip to content

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert - #76460

Merged
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347
Oct 2, 2022
Merged

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert#76460
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347

Conversation

@tannergooding

Copy link
Copy Markdown
Member

This resolves#76347

…ector<T> value)`) doesn't have a side-effect in its assert
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 30, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

CC. @BruceForstall, @dotnet/jit-contrib

@ghost

Copy link
Copy Markdown

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

Issue Details

This resolves #76347

Author:tannergooding
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@tannergooding

Copy link
Copy Markdown
MemberAuthor

This bug also exists in .NET 6

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good find!

I suppose this could have been avoided by not re-using the simdSize argument as what is really a argumentSimdSize value. btw, simdSize isn't documented in the function header.

LGTM

@BruceForstall

Copy link
Copy Markdown
Contributor

(btw, this contributes to #76347, but doesn't fully resolve it. I have other changes to the test running infrastructure that will do the rest of the work)

@BruceForstall

Copy link
Copy Markdown
Contributor

@tannergooding Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector<T> v = ...; v.AsVector128(); could give incorrect results?

Does a complete fix also require some (or all) of #76456?

@tannergooding

tannergooding commented Oct 1, 2022

Copy link
Copy Markdown
MemberAuthor

Does a complete fix also require some (or all) of #76456?

No. That's independent and just helps ensure codegen is better it shouldn't have any impact on the correctness of the codegen.

Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector v = ...; v.AsVector128(); could give incorrect results?

Its probably better to take it than not given its a 1 line fix putting it back inline with .NET Core 3.1 and .NET 5. That being said, I don't think users will see any negative side effects from us doing nothing...

The impact here is that on a system with AVX2 support (which I'd presume is a majority) a user calling vector.AsVector128 will get treated as a "nop" and the value will be consumed directly. Whether that's coming from memory or a register should be fine since the memory slot will be 32-bytes or we'll preserve the 32-bit register.

The potential negative would be if CSE or another optimization tries to look at this local and sees TYP_SIMD32 when it should see TYP_SIMD16. However, I'm not aware of any code that would be directly impacted by that...

@BruceForstall

Copy link
Copy Markdown
Contributor

The superpmi-replay failure looks like a timeout. We've had a few of those lately and need to investigate (separately).

@BruceForstall
BruceForstall merged commit 144a33a into dotnet:mainOct 2, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

@BruceForstall, should I go ahead and backport this to 7.0 and go through the approval process? What about 6.0?

@SingleAccretion or @EgorBo might have a better idea if there is potential CSE impact here.

@BruceForstall

Copy link
Copy Markdown
Contributor

I would suggest trying to get it in 7.0, since it is silent bad codegen. However, your description of the impact indicates there really is no impact, so that might not persuade the approvers.

@BruceForstall

Copy link
Copy Markdown
Contributor

One argument for porting it is it will (help) clean up our checked/release asm diffs testing on 7.0, so it could be argued it is a benefit to testing.

@tannergooding

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/3175903125

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Failures in checked/release asm diffs

2 participants

@tannergooding@BruceForstall
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Ensure NI_Vector128_AsVector128 (aka `Vector128<T> AsVector128(this Vector<T> value)`) doesn't have a side-effect in its assert by tannergooding · Pull Request #76460 · dotnet/runtime · GitHub
Skip to content

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert - #76460

Merged
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347
Oct 2, 2022
Merged

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert#76460
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347

Conversation

@tannergooding

Copy link
Copy Markdown
Member

This resolves#76347

…ector<T> value)`) doesn't have a side-effect in its assert
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 30, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

CC. @BruceForstall, @dotnet/jit-contrib

@ghost

Copy link
Copy Markdown

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

Issue Details

This resolves #76347

Author:tannergooding
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@tannergooding

Copy link
Copy Markdown
MemberAuthor

This bug also exists in .NET 6

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good find!

I suppose this could have been avoided by not re-using the simdSize argument as what is really a argumentSimdSize value. btw, simdSize isn't documented in the function header.

LGTM

@BruceForstall

Copy link
Copy Markdown
Contributor

(btw, this contributes to #76347, but doesn't fully resolve it. I have other changes to the test running infrastructure that will do the rest of the work)

@BruceForstall

Copy link
Copy Markdown
Contributor

@tannergooding Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector<T> v = ...; v.AsVector128(); could give incorrect results?

Does a complete fix also require some (or all) of #76456?

@tannergooding

tannergooding commented Oct 1, 2022

Copy link
Copy Markdown
MemberAuthor

Does a complete fix also require some (or all) of #76456?

No. That's independent and just helps ensure codegen is better it shouldn't have any impact on the correctness of the codegen.

Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector v = ...; v.AsVector128(); could give incorrect results?

Its probably better to take it than not given its a 1 line fix putting it back inline with .NET Core 3.1 and .NET 5. That being said, I don't think users will see any negative side effects from us doing nothing...

The impact here is that on a system with AVX2 support (which I'd presume is a majority) a user calling vector.AsVector128 will get treated as a "nop" and the value will be consumed directly. Whether that's coming from memory or a register should be fine since the memory slot will be 32-bytes or we'll preserve the 32-bit register.

The potential negative would be if CSE or another optimization tries to look at this local and sees TYP_SIMD32 when it should see TYP_SIMD16. However, I'm not aware of any code that would be directly impacted by that...

@BruceForstall

Copy link
Copy Markdown
Contributor

The superpmi-replay failure looks like a timeout. We've had a few of those lately and need to investigate (separately).

@BruceForstall
BruceForstall merged commit 144a33a into dotnet:mainOct 2, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

@BruceForstall, should I go ahead and backport this to 7.0 and go through the approval process? What about 6.0?

@SingleAccretion or @EgorBo might have a better idea if there is potential CSE impact here.

@BruceForstall

Copy link
Copy Markdown
Contributor

I would suggest trying to get it in 7.0, since it is silent bad codegen. However, your description of the impact indicates there really is no impact, so that might not persuade the approvers.

@BruceForstall

Copy link
Copy Markdown
Contributor

One argument for porting it is it will (help) clean up our checked/release asm diffs testing on 7.0, so it could be argued it is a benefit to testing.

@tannergooding

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/3175903125

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Failures in checked/release asm diffs

2 participants

@tannergooding@BruceForstall
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Ensure NI_Vector128_AsVector128 (aka `Vector128<T> AsVector128(this Vector<T> value)`) doesn't have a side-effect in its assert by tannergooding · Pull Request #76460 · dotnet/runtime · GitHub
Skip to content

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert - #76460

Merged
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347
Oct 2, 2022
Merged

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert#76460
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347

Conversation

@tannergooding

Copy link
Copy Markdown
Member

This resolves#76347

…ector<T> value)`) doesn't have a side-effect in its assert
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 30, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

CC. @BruceForstall, @dotnet/jit-contrib

@ghost

Copy link
Copy Markdown

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

Issue Details

This resolves #76347

Author:tannergooding
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@tannergooding

Copy link
Copy Markdown
MemberAuthor

This bug also exists in .NET 6

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good find!

I suppose this could have been avoided by not re-using the simdSize argument as what is really a argumentSimdSize value. btw, simdSize isn't documented in the function header.

LGTM

@BruceForstall

Copy link
Copy Markdown
Contributor

(btw, this contributes to #76347, but doesn't fully resolve it. I have other changes to the test running infrastructure that will do the rest of the work)

@BruceForstall

Copy link
Copy Markdown
Contributor

@tannergooding Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector<T> v = ...; v.AsVector128(); could give incorrect results?

Does a complete fix also require some (or all) of #76456?

@tannergooding

tannergooding commented Oct 1, 2022

Copy link
Copy Markdown
MemberAuthor

Does a complete fix also require some (or all) of #76456?

No. That's independent and just helps ensure codegen is better it shouldn't have any impact on the correctness of the codegen.

Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector v = ...; v.AsVector128(); could give incorrect results?

Its probably better to take it than not given its a 1 line fix putting it back inline with .NET Core 3.1 and .NET 5. That being said, I don't think users will see any negative side effects from us doing nothing...

The impact here is that on a system with AVX2 support (which I'd presume is a majority) a user calling vector.AsVector128 will get treated as a "nop" and the value will be consumed directly. Whether that's coming from memory or a register should be fine since the memory slot will be 32-bytes or we'll preserve the 32-bit register.

The potential negative would be if CSE or another optimization tries to look at this local and sees TYP_SIMD32 when it should see TYP_SIMD16. However, I'm not aware of any code that would be directly impacted by that...

@BruceForstall

Copy link
Copy Markdown
Contributor

The superpmi-replay failure looks like a timeout. We've had a few of those lately and need to investigate (separately).

@BruceForstall
BruceForstall merged commit 144a33a into dotnet:mainOct 2, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

@BruceForstall, should I go ahead and backport this to 7.0 and go through the approval process? What about 6.0?

@SingleAccretion or @EgorBo might have a better idea if there is potential CSE impact here.

@BruceForstall

Copy link
Copy Markdown
Contributor

I would suggest trying to get it in 7.0, since it is silent bad codegen. However, your description of the impact indicates there really is no impact, so that might not persuade the approvers.

@BruceForstall

Copy link
Copy Markdown
Contributor

One argument for porting it is it will (help) clean up our checked/release asm diffs testing on 7.0, so it could be argued it is a benefit to testing.

@tannergooding

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/3175903125

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Failures in checked/release asm diffs

2 participants

@tannergooding@BruceForstall
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Ensure NI_Vector128_AsVector128 (aka `Vector128<T> AsVector128(this Vector<T> value)`) doesn't have a side-effect in its assert by tannergooding · Pull Request #76460 · dotnet/runtime · GitHub
Skip to content

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert - #76460

Merged
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347
Oct 2, 2022
Merged

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert#76460
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347

Conversation

@tannergooding

Copy link
Copy Markdown
Member

This resolves#76347

…ector<T> value)`) doesn't have a side-effect in its assert
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 30, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

CC. @BruceForstall, @dotnet/jit-contrib

@ghost

Copy link
Copy Markdown

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

Issue Details

This resolves #76347

Author:tannergooding
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@tannergooding

Copy link
Copy Markdown
MemberAuthor

This bug also exists in .NET 6

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good find!

I suppose this could have been avoided by not re-using the simdSize argument as what is really a argumentSimdSize value. btw, simdSize isn't documented in the function header.

LGTM

@BruceForstall

Copy link
Copy Markdown
Contributor

(btw, this contributes to #76347, but doesn't fully resolve it. I have other changes to the test running infrastructure that will do the rest of the work)

@BruceForstall

Copy link
Copy Markdown
Contributor

@tannergooding Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector<T> v = ...; v.AsVector128(); could give incorrect results?

Does a complete fix also require some (or all) of #76456?

@tannergooding

tannergooding commented Oct 1, 2022

Copy link
Copy Markdown
MemberAuthor

Does a complete fix also require some (or all) of #76456?

No. That's independent and just helps ensure codegen is better it shouldn't have any impact on the correctness of the codegen.

Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector v = ...; v.AsVector128(); could give incorrect results?

Its probably better to take it than not given its a 1 line fix putting it back inline with .NET Core 3.1 and .NET 5. That being said, I don't think users will see any negative side effects from us doing nothing...

The impact here is that on a system with AVX2 support (which I'd presume is a majority) a user calling vector.AsVector128 will get treated as a "nop" and the value will be consumed directly. Whether that's coming from memory or a register should be fine since the memory slot will be 32-bytes or we'll preserve the 32-bit register.

The potential negative would be if CSE or another optimization tries to look at this local and sees TYP_SIMD32 when it should see TYP_SIMD16. However, I'm not aware of any code that would be directly impacted by that...

@BruceForstall

Copy link
Copy Markdown
Contributor

The superpmi-replay failure looks like a timeout. We've had a few of those lately and need to investigate (separately).

@BruceForstall
BruceForstall merged commit 144a33a into dotnet:mainOct 2, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

@BruceForstall, should I go ahead and backport this to 7.0 and go through the approval process? What about 6.0?

@SingleAccretion or @EgorBo might have a better idea if there is potential CSE impact here.

@BruceForstall

Copy link
Copy Markdown
Contributor

I would suggest trying to get it in 7.0, since it is silent bad codegen. However, your description of the impact indicates there really is no impact, so that might not persuade the approvers.

@BruceForstall

Copy link
Copy Markdown
Contributor

One argument for porting it is it will (help) clean up our checked/release asm diffs testing on 7.0, so it could be argued it is a benefit to testing.

@tannergooding

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/3175903125

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Failures in checked/release asm diffs

2 participants

@tannergooding@BruceForstall
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Ensure NI_Vector128_AsVector128 (aka `Vector128<T> AsVector128(this Vector<T> value)`) doesn't have a side-effect in its assert by tannergooding · Pull Request #76460 · dotnet/runtime · GitHub
Skip to content

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert - #76460

Merged
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347
Oct 2, 2022
Merged

Ensure NI_Vector128_AsVector128 (aka Vector128<T> AsVector128(this Vector<T> value)) doesn't have a side-effect in its assert#76460
BruceForstall merged 2 commits into
dotnet:mainfrom
tannergooding:fix-76347

Conversation

@tannergooding

Copy link
Copy Markdown
Member

This resolves#76347

…ector<T> value)`) doesn't have a side-effect in its assert
@ghostghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 30, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

CC. @BruceForstall, @dotnet/jit-contrib

@ghost

Copy link
Copy Markdown

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

Issue Details

This resolves #76347

Author:tannergooding
Assignees:-
Labels:

area-CodeGen-coreclr

Milestone:-

@tannergooding

Copy link
Copy Markdown
MemberAuthor

This bug also exists in .NET 6

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good find!

I suppose this could have been avoided by not re-using the simdSize argument as what is really a argumentSimdSize value. btw, simdSize isn't documented in the function header.

LGTM

@BruceForstall

Copy link
Copy Markdown
Contributor

(btw, this contributes to #76347, but doesn't fully resolve it. I have other changes to the test running infrastructure that will do the rest of the work)

@BruceForstall

Copy link
Copy Markdown
Contributor

@tannergooding Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector<T> v = ...; v.AsVector128(); could give incorrect results?

Does a complete fix also require some (or all) of #76456?

@tannergooding

tannergooding commented Oct 1, 2022

Copy link
Copy Markdown
MemberAuthor

Does a complete fix also require some (or all) of #76456?

No. That's independent and just helps ensure codegen is better it shouldn't have any impact on the correctness of the codegen.

Do you think this fix should be ported back to .NET 7? .NET 6? What kind of bad codegen implications are there with the unfixed code? Presumably Vector v = ...; v.AsVector128(); could give incorrect results?

Its probably better to take it than not given its a 1 line fix putting it back inline with .NET Core 3.1 and .NET 5. That being said, I don't think users will see any negative side effects from us doing nothing...

The impact here is that on a system with AVX2 support (which I'd presume is a majority) a user calling vector.AsVector128 will get treated as a "nop" and the value will be consumed directly. Whether that's coming from memory or a register should be fine since the memory slot will be 32-bytes or we'll preserve the 32-bit register.

The potential negative would be if CSE or another optimization tries to look at this local and sees TYP_SIMD32 when it should see TYP_SIMD16. However, I'm not aware of any code that would be directly impacted by that...

@BruceForstall

Copy link
Copy Markdown
Contributor

The superpmi-replay failure looks like a timeout. We've had a few of those lately and need to investigate (separately).

@BruceForstall
BruceForstall merged commit 144a33a into dotnet:mainOct 2, 2022
@tannergooding

Copy link
Copy Markdown
MemberAuthor

@BruceForstall, should I go ahead and backport this to 7.0 and go through the approval process? What about 6.0?

@SingleAccretion or @EgorBo might have a better idea if there is potential CSE impact here.

@BruceForstall

Copy link
Copy Markdown
Contributor

I would suggest trying to get it in 7.0, since it is silent bad codegen. However, your description of the impact indicates there really is no impact, so that might not persuade the approvers.

@BruceForstall

Copy link
Copy Markdown
Contributor

One argument for porting it is it will (help) clean up our checked/release asm diffs testing on 7.0, so it could be argued it is a benefit to testing.

@tannergooding

Copy link
Copy Markdown
MemberAuthor

/backport to release/7.0

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/7.0: https://github.com/dotnet/runtime/actions/runs/3175903125

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Failures in checked/release asm diffs

2 participants

@tannergooding@BruceForstall