Implement SVE2 Rounded Arithmetic Intrinsics#117719
Implement SVE2 Rounded Arithmetic Intrinsics#117719amanasifkhalid merged 1 commit intodotnet:mainfrom
Conversation
|
Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics |
amanasifkhalid
left a comment
There was a problem hiding this comment.
Preliminary pass LGTM, though CI is blocked by the merge conflicts I introduced (sorry about that)
src/tests/JIT/HardwareIntrinsics/Arm/Shared/_SveBinaryOpDifferentRetTypeTestTemplate.template
Outdated
Show resolved
Hide resolved
Includes: * AddRoundedHighNarrowingEven, AddRoundedHighNarrowingOdd * FusedAddRoundedHalving * SubtractRoundedHighNarrowingEven, SubtractRoundedHighNarrowingOdd
438ae64 to
e08f278
Compare
| dynamic a = op1; | ||
| dynamic b = op2; |
There was a problem hiding this comment.
@tannergooding what would be the best way to disable these tests on native AOT? I don't want to disable the entire project but whatever calls into the codepaths with dynamic keyword is unsupportable. Outerloop is failing with stacks like
System.ArgumentNullException: Value cannot be null. (Parameter 'key')
at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) + 0x3c8
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) + 0x10
at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.VisitSAVE(ExprBinOp) + 0x5c
at Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.Dispatch(Expr) + 0x408
at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.Rewrite(ExprBinOp, Expression[]) + 0x6c
at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(ICSharpBinder, Expression[], DynamicMetaObject[], DynamicMetaObject&) + 0x1d4
at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(ICSharpBinder, Expression[], DynamicMetaObject[], DynamicMetaObject&) + 0x58
at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(ICSharpBinder, RuntimeBinder, DynamicMetaObject[], IEnumerable`1, DynamicMetaObject) + 0x490
at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[], ReadOnlyCollection`1, LabelTarget) + 0x148
at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1, Object[]) + 0x94
at HardwareIntrinsics_Arm_ro!<BaseAddress>+0x3e90d4c
at System.Reflection.DynamicInvokeInfo.InvokeWithFewArguments(IntPtr, Byte&, Byte&, Object[], BinderBundle, Boolean) + 0xd0
--- End of stack trace from previous location ---
at System.Linq.Expressions.Interpreter.ExceptionHelpers.UnwrapAndRethrow(TargetInvocationException) + 0x18
at System.Linq.Expressions.Interpreter.MethodInfoCallInstruction.Run(InterpretedFrame) + 0x1cc
at System.Linq.Expressions.Interpreter.Interpreter.Run(InterpretedFrame) + 0x48
at System.Linq.Expressions.Interpreter.LightLambda.Run(Object[] arguments) + 0x8c
at HardwareIntrinsics_Arm_ro!<BaseAddress>+0x3ce7ac0
at JIT.HardwareIntrinsics.Arm.Helpers.AddRoundedHighNarrowing[W,N](W op1, W op2) + 0xa4
at JIT.HardwareIntrinsics.Arm._AdvSimd.SimpleBinaryOpTest__AddRoundedHighNarrowingLower_Vector64_Byte.ValidateResult(UInt16[] left, UInt16[] right, Byte[] result, String method) + 0x90
at JIT.HardwareIntrinsics.Arm._AdvSimd.Program.AddRoundedHighNarrowingLower_Vector64_Byte() + 0x3c
at Program.<<Main>$>g__TestExecutor987|0_988(StreamWriter tempLogSw, StreamWriter statsCsvSw, Program.<>c__DisplayClass0_0&) + 0x114
There was a problem hiding this comment.
@tannergooding what would be the best way to disable these tests on native AOT? I don't want to disable the entire project but whatever calls into the codepaths with
dynamickeyword is unsupportable. Outerloop is failing with stacks like
Given AdvSimd works on AOT then we definitely should be testing on it. @snickolls-arm could you take a look at removing the dynamic keyword from this file.
There was a problem hiding this comment.
could you take a look at removing the dynamic keyword from this file.
For cases like this, I think you can use Convert.ToUInt64() to do the cast without dynamic.
Includes: