private static void LoadPairVector64NonTemporal_Double() { var test = new LoadPairVector64NonTemporal_Double(); if (test.IsSupported) { // Validates basic functionality works test.RunBasicScenario(); // Validates calling via reflection works test.RunReflectionScenario(); // Validates loading to a static member works test.RunClsVarScenario(); // Validates loading to the field of a local class works test.RunClassLclFldScenario(); // Validates loading to the field of a local struct works test.RunStructLclFldScenario(); // Validates loading to an instance member of a struct works test.RunStructFldScenario(); } else { // Validates we throw on unsupported hardware test.RunUnsupportedScenario(); } if (!test.Succeeded) { throw new Exception("One or more scenarios did not complete as expected."); } }
public void RunStructFldScenario(LoadPairVector64NonTemporal_Double testClass) { _fld = AdvSimd.Arm64.LoadPairVector64NonTemporal((Double *)(testClass._dataTable.inArrayPtr)); Unsafe.Write(testClass._dataTable.outArrayPtr, _fld); testClass.ValidateResult(testClass._dataTable.inArrayPtr, testClass._dataTable.outArrayPtr); }