| Summary: | Addition of arm64 v8.2 FABS, FNEG and FSQRT instructions | ||
|---|---|---|---|
| Product: | [Developer tools] valgrind | Reporter: | ahashmi <assad.hashmi> |
| Component: | vex | Assignee: | Julian Seward <jseward> |
| Status: | CLOSED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: |
Adds arm64 v8.2 FABS, FNEG and FSQRT instructions
Adds arm64 v8.2 FABS, FNEG and FSQRT instructions |
||
|
Description
ahashmi
2021-01-26 14:05:02 UTC
Created attachment 135211 [details]
Adds arm64 v8.2 FABS, FNEG and FSQRT instructions
Patch ready for review.
When ready for checkin, please paste the following text as the Git commit message: - - - snip 432161 Addition of arm64 v8.2 FADDP, FNEG and FSQRT This patch adds FP half-precision support for the following: FABS <Hd>, <Hn> FABS <Vd>.<T>, <Vn>.<T> FNEG <Hd>, <Hn> FNEG <Vd>.<T>, <Vn>.<T> FSQRT <Hd>, <Hn> FSQRT <Vd>.<T>, <Vn>.<T> Fixes https://bugs.kde.org/show_bug.cgi?id=432161 - - - snip Unless there are any suggestions for improvements, I'll try and keep this Git commit message format for all future arm64 v8.2 instruction patches. Nicely done! I did spot one bug though:
@@ -3752,6 +3775,8 @@ IRAtom* expr2vbits_Binop ( MCEnv* mce,
case Iop_I32StoF32x4:
case Iop_F32toI32Sx4:
+ case Iop_Sqrt16Fx8:
+ return unary16Fx8_w_rm(mce, vatom1, vatom2);
case Iop_Sqrt32Fx4:
return unary32Fx4_w_rm(mce, vatom1, vatom2);
case Iop_Sqrt64Fx2:
This isn't quite right, in that the two added lines change the behaviour for
the fallthrough cases immediately above. I mean: consider what happens for
Iop_I32StoF32x4 and Iop_F32toI32Sx4 with and without the added lines.
Otherwise it's fine.
One final question: did you check that the relevant test programs run OK
(without any assertion failures) on memcheck, by running them by hand, with
--tool=memcheck and also --tool=memcheck --track-origins=yes ? If not, could
you please do that and make sure nothing breaks.
Created attachment 135237 [details]
Adds arm64 v8.2 FABS, FNEG and FSQRT instructions
Fixes bug raised in review (case Iop_Sqrt16Fx8: position).
> This isn't quite right, in that the two added lines change the behaviour for the fallthrough cases immediately above. Gah, of course! Careless of me. Fixed. > One final question: did you check that the relevant test programs run OK (without any assertion failures) on memcheck, by running them by hand, with --tool=memcheck and also --tool=memcheck --track-origins=yes ? Yes, there are no assertions and nothing breaks. Alse checked debug output displays new mnemonics and operands (using --trace-flags=10001111 --tool=none). (In reply to ahashmi from comment #5) Looks good to me. Land! Landed, 7593a4773997807695d6514e9d01a60cb489851c |