Comments (5)
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.
from runtime.
I think all Store-like operations were GT_HWINTRINSIC all the way in JIT untill recently we started to import some of them as GT_IND/GT_STOREIND
so they can benefit from various general IND opts and even addressing modes (afair, it was @tannergooding). I guess NI_AdvSimd_StoreSelectedScalar
can be also made to be so?
from runtime.
Right, we changed the standard loads/stores to use GT_IND
/GT_STOREIND
as a way to benefit from the plethora of existing optimizations around those GenTree kinds without negatively impacting throughput and needing to plumb support for hardware specific intrinsics.
In order for STOREIND
to be used for StoreSelectedScalar
, other more complex (MaskStore
) or less common (StoreAligned
) APIs, you would need to update STOREIND
to be able to track the additional information required (various flags and potentially additional operands or state). The same would be true for using IND
for various Load
APIs.
from runtime.
For StoreSelectedScalar
in particular, there's a place to track address
(GenTreeIndir::Addr
) and value
(GenTreeStoreIndir::Data
), but no place to track index
.
You could transform it to StoreInd(addr, GetElement(value, index))
and then have specialized lowering handling to track the containment and then have codegen look for contained GetElement
to allow emitting the correct instruction instead.
If you were to do that for Arm64, we'd want to also do similar x64 around the various Extract*
APIs that achieve the same thing.
from runtime.
Thanks for the additional context @tannergooding . My initial thought was we are missing some correctness areas by not doing gtNewSimdStoreNode()
but now I understand that it is more for performance reason.
from runtime.
Related Issues (20)
- System.Text.Json can't deserialize ISO dateTime to DateOnly HOT 4
- Question - is it fine to bootstrap coreclr in DllMain? HOT 2
- Can't export X509Certificate on macOS (CoreCLR) HOT 1
- Can't create X509Certificate using X509KeyStorageFlags.Exportable on Mac Catalyst or iOS HOT 5
- Make System.DirectoryServices.DirectorySearcher cross-plattform (Linux/macOS support) HOT 3
- compilation gives error SYSLIB1094 for a GeneratedComInterface interface deriving from an interface in another project HOT 1
- Performance downgrade on RSA Export methods on system with OpenSSL 3+ HOT 7
- What's the difference between the lock keyword and the new.NET 9 Lock class? HOT 3
- Incorrect configuration mapping HOT 3
- [wasm][mt] fail: System.TypeLoadException: Could not load type of field" HOT 3
- Debug build errors out HOT 3
- Include WinForms trimming feature switch information HOT 2
- Rsa.Encrypt() is retuning "Error occurred during a cryptographic operation" after migration from .net6 to .net8 HOT 9
- Provide a way to verify which thread owns a lock HOT 1
- Http2Connection throws misleading exceptions on ping timeouts HOT 1
- [API Proposal]: Add byte[] support in System.Text.Json HOT 17
- any limitations on EventCounters on Linux? HOT 1
- Use of AssemblyNameInfo is wrong in TraceRuntimeDescToTypeSystemDesc HOT 1
- apphost.exe not created for TestTrimming=true + TestNativeAot=true HOT 3
- LoggerMessage interceptor for LoggerExtension methods HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from runtime.