User Details
- User Since
- Aug 18 2022, 2:49 AM (68 w, 2 d)
Aug 17 2023
Aug 16 2023
- Avoid hoisting in following cases:
- The cost of the const expr is 'free' for the target.
- The expr can be folded into a legal addressing mode for the target.
- The expr has only single use, and it's not inside a loop.
- Now there are no regressions.
Aug 2 2023
Aug 1 2023
Jul 20 2023
LGTM. Thanks for the clarification.
Jul 18 2023
Jun 9 2023
Jun 8 2023
May 31 2023
May 30 2023
May 10 2023
Apr 24 2023
Add extra test cases that have 'extract_subvector' in both operands.
Apr 20 2023
Fix warning.
Apr 19 2023
Enhance code readability.
Updating by main branch.
This patch indirectly causes the vectoriser to choose a lower VF due to the high cost of extending nxv16i8 -> nxv16i16, and that caused a regression.
Dave was investigating that issue and he has created a patch for fixing it.
So, right now this patch should work well.
I will rebase it and run checks to make sure everything is okay.
Apr 18 2023
Hi @paulwalker-arm Are you okay with landing this patch ?
Apr 12 2023
Apr 4 2023
Fix format.
Check that extract node and mul node has one use.
That change triggered new changes in testing file of sve-fixed-length-int-rem.ll
Add check for fixed-length vectors.
Apr 3 2023
Add a check to make sure that the mul has single use.
Remove line added by mistake.
Enhance code readability.
Remove line added by mistake.
Add additional checks to make sure of the expected pattern.
Mar 31 2023
Fix Typo.
Mar 30 2023
Improve code readability, Add comments.
Mar 9 2023
@dmgreen Thanks for reviewing the patch. Do you have any further comments ?
Mar 8 2023
Add test cases that use lshr.
Mar 7 2023
Add comments explaining what LowerAvg() does.
Add test cases for logical shr.
Mar 3 2023
Enhance code readability.
Mar 2 2023
While checking isZeroExtending, only checking the signbit of known Zeros is enough.
Mar 1 2023
Check if both operands of AVG are extended, not just single one.
Use ComputeNumSignBits instead of ComputeKnownBits for SIGN_EXTEND_INREG ops.
Feb 28 2023
Use computeKnownBits for checking zeroExtedn/signExtend.
Remove sve-avgfloor testing file.
Add RUN line for sve to sve2-hadd
rename sve2-hadd to sve-hadd
Feb 23 2023
Enhance code readability.
Feb 22 2023
In case of CEIL, Put ADD operation for constant 1.
Feb 21 2023
Change lshr to ashr for signed cases in the precursory patch.
Check if it's better to emit the original code or custom lower AVGFloor/Ceil
Feb 20 2023
Feb 16 2023
Optimize the generated code by checking if the extended nodes were previously truncated.
Optimize the generated code by checking if the extended node was previously truncated.
Add precursory patch.
Feb 10 2023
Remove old code that is not used now.
Rerun testing files after updating the patch by main branch.
Update by main branch.
Remove neon-lshr.ll
Add AArch64 implementation for custom-lowering AVGFloor/AVGCeil
Feb 9 2023
Feb 8 2023
The affected testing files are related to custom-lowering ISD::VSELECT and ISD::BITREVERSE
Feb 7 2023
Move combining trunc shift and extend shift to AArch64
Feb 6 2023
Split out custom-lower select/fp_extend and related testing files into a new patch
Split out custom-lowering sign-extend-inreg and related testing files to another patch
This patch was split into smaller patches.
Feb 3 2023
Feb 2 2023
Jan 31 2023
Jan 26 2023
Recalculate the costs.
Update the calculated costs.
Use a cost of 1 for each SVE instruction.
Jan 25 2023
Remove changes included by mistake.
Recalculate costs. In the code generation testing file, use real variable instead of undef to get accurate costs.
Jan 24 2023
Add more accurte costs.
fix comment typo
Add testing file for the cost of zero/sign extend