- User Since
- May 18 2016, 6:13 AM (264 w, 3 d)
Apr 21 2021
Apr 20 2021
Apr 19 2021
Apr 15 2021
Apr 14 2021
Apr 13 2021
Mar 30 2021
Mar 9 2021
Mar 5 2021
Thanks for reviewing all, I'll land this early next week unless there's any objections between then, cheers
Mar 3 2021
Address @sdesmalen's comments
Feb 22 2021
Feb 19 2021
Feb 18 2021
- As proposed by @sdesmalen, the intrinsic now supports two variants based on the sign of the immediate, where a negative immediate is a trailing element count and a positive immediate an index.
- Following the discussion on the reverse intrinsic (D94883) around whether named shufflevector intrinsics should support fixed vectors, I've opted for the same approach to make it explicit in the LangRef that whilst these instructions are experimental shufflevector should be used for fixed-width vectors. The changes to InstCombineCalls to map this intrinsic to shufflevector as an IR transform have been dropped.
- ExpandVectorSpliceThroughStack has been moved to TLI under expandVectorSplice which is reused by DAGTypeLegalizer::SplitVecRes_VECTOR_SPLICE.
Feb 16 2021
LGTM, might be worth leaving a little time before landing incase others have any comments, cheers
Feb 12 2021
Feb 10 2021
Feb 8 2021
Fix renaming of implicit-defs but only allow it for certain opcodes.
Feb 4 2021
Feb 1 2021
Jan 26 2021
@fhahn I've simplified the test, thanks for the comments!
Jan 20 2021
- Remove unused function declaration for LowerVECTOR_SPLICE.
- Clarify trailing.elts must be an integer constant in LangRef.
- Use DefaultAttrs for intrinsic.
- Use setOperationPromotedToType.
Jan 18 2021
Jan 16 2021
Jan 15 2021
Jan 14 2021
Jan 13 2021
Jan 12 2021
Rebased. Committed update_llc_test_checks.py changes separately to reduce the diff (thanks for suggestion @sdesmalen).
Jan 8 2021
I've left one minor nit but looks otherwise looks fine to me
Jan 7 2021
Jan 6 2021
@fhahn thanks for reviewing, I think I've addressed all comments. I'll probably land this over the coming days unless there's any objections between then, cheers.
Address @fhahn comments.
Jan 5 2021
- Rebased. Target hook for max vscale has been removed from this patch since it landed in D93030.
- Address Sander's comment w.r.t. falling back to fixed vectorization if scalable vectors are supported, but max vscale is undefined.
Jan 4 2021
Dec 21 2020
Dec 18 2020
Address @fhahn's comments, changes:
Dec 17 2020
Handle scalable VF in a single isScalable block in computeFeasibleMaxVF.
Dec 16 2020
Dec 15 2020
Left a couple of nits but mostly LGTM, cheers
Dec 14 2020
- Rather than disable vectorization if scalable VF isn't supported, let the LV pick a VF as it normally does and process with cost-modelling.
- Added a new LV flag -force-target-supports-scalable-vectors to support writing non-target specific tests with scalable VFs.
- Added a temporary workaround to use MaxVF in place of UserVF until cost modelling loop works for scalable VFs.
- Emit opt remark.
Dec 11 2020
Address comments and added test.
Dec 10 2020
- Rebase since D88962 and D91077 have now landed.
- Address @sdesmalen's comments. Added a target hook supportsScalableVectors in D93060 which is used in this patch to bail out of vectorization if unsupported. Also changed the behavior when scalable vectorization is unfeasible given a dependency, it now changes the hint to fixed, where existing behavior applies (i.e. clamping).
- Updated tests.