Page MenuHomePhabricator

sdesmalen (Sander de Smalen)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 21 2016, 1:19 AM (170 w, 4 d)

Recent Activity

Fri, Jan 24

sdesmalen added a comment to D72467: Remove "mask" operand from shufflevector..

Thanks @efriedma for working on this. The overall approach seems good to me!
Mostly added some nits, with the exception of one question on what to do with a shufflevector with fixed-width mask and scalable source vectors.

Fri, Jan 24, 6:59 AM · Restricted Project, Restricted Project

Thu, Jan 23

sdesmalen abandoned D68202: [LLVM IR] Add `vscale` as a symbolic constant..

Superseded by D68203.

Thu, Jan 23, 6:03 AM
sdesmalen accepted D72799: [SVE] Add SVE2 patterns for unpredicated multiply instructions.

Thanks for the updates to the patch @dancgr , LGTM!

Thu, Jan 23, 5:44 AM · Restricted Project

Wed, Jan 22

sdesmalen committed rG4cf16efe4976: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices. (authored by sdesmalen).
[AArch64][SVE] Add patterns for unpredicated load/store to frame-indices.
Wed, Jan 22, 6:34 AM
sdesmalen closed D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..
Wed, Jan 22, 6:34 AM · Restricted Project
sdesmalen added inline comments to D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..
Wed, Jan 22, 5:56 AM · Restricted Project
sdesmalen added a comment to D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..

LGTM with one minor suggestion.

Sorry about the delay; I didn't understand the dependency relationship between this and D72758.

No worries, thanks for reviewing!

Wed, Jan 22, 4:34 AM · Restricted Project
sdesmalen accepted D73025: [AArch64][SVE] Add first-faulting load intrinsic.
Wed, Jan 22, 3:31 AM · Restricted Project
sdesmalen committed rG67d4c9924c1f: Add support for (expressing) vscale. (authored by sdesmalen).
Add support for (expressing) vscale.
Wed, Jan 22, 2:12 AM
sdesmalen closed D68203: Add support for (expressing) vscale..
Wed, Jan 22, 2:12 AM · Restricted Project
sdesmalen added a comment to D71713: Downstream SVE/SVE2 implementation (Clang).

The Download raw diff button seems to run into a Unhandled Exception page.
arc patch doesn't work either because the patches are missing the llvm/ and clang/ prefix to the file paths.

Wed, Jan 22, 1:22 AM
sdesmalen added a comment to D71712: Downstream SVE/SVE2 implementation (LLVM).

The Download raw diff button seems to run into a Unhandled Exception page.
arc patch doesn't work either because the patches are missing the llvm/ and clang/ prefix to the file paths.

Wed, Jan 22, 1:18 AM

Tue, Jan 21

sdesmalen added a comment to D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..

Gentle ping (I think I've addressed all comments on the patch)

Tue, Jan 21, 11:27 AM · Restricted Project
sdesmalen added a comment to D68203: Add support for (expressing) vscale..

LGTM.

I was about to commit this patch today when I realised the differential wasn't yet in accepted state. Any objections for me to land the patch?

Tue, Jan 21, 11:17 AM · Restricted Project
sdesmalen added inline comments to D72758: Add OffsetIsScalable to getMemOperandWithOffset.
Tue, Jan 21, 11:17 AM · Restricted Project
sdesmalen added a comment to D72799: [SVE] Add SVE2 patterns for unpredicated multiply instructions.

I'm not sure on some parts, but I have prepared a major update for this patch that I hope will fix most of @sdesmalen concerns.

Great, thanks for updating your patch! The patch is nearly good to go I think, just one more little change needed to remove _m.

Tue, Jan 21, 1:35 AM · Restricted Project
sdesmalen accepted D71698: [AArch64][SVE] Add intrinsic for non-faulting loads.

LGTM [with the caveat that we need to revisit the modelling of the FFR register and get rid fo the PseudoInstExpansion at a later point, as discussed during the previous sync-up call]

Tue, Jan 21, 1:08 AM · Restricted Project

Mon, Jan 20

sdesmalen added inline comments to D71698: [AArch64][SVE] Add intrinsic for non-faulting loads.
Mon, Jan 20, 5:12 AM · Restricted Project
sdesmalen accepted D71773: [AArch64][SVE] Update the definition of AdvSIMD_GatherLoad_VecTorBase_Intrinsic.

LGTM!

Mon, Jan 20, 3:30 AM · Restricted Project

Fri, Jan 17

sdesmalen added inline comments to D71773: [AArch64][SVE] Update the definition of AdvSIMD_GatherLoad_VecTorBase_Intrinsic.
Fri, Jan 17, 2:10 AM · Restricted Project

Thu, Jan 16

sdesmalen accepted D72393: [AArch64][SVE] Add break intrinsics.

LGTM!

Thu, Jan 16, 9:44 AM · Restricted Project
sdesmalen requested changes to D72799: [SVE] Add SVE2 patterns for unpredicated multiply instructions.

Thanks for efforts on this patch @dancgr!

Thu, Jan 16, 9:44 AM · Restricted Project
sdesmalen accepted D72792: [SVE] Pass Scalable argument to VectorType::get in Bitcode Reader.

Thanks for these fixes. LGTM!

Thu, Jan 16, 9:06 AM · Restricted Project
sdesmalen added inline comments to D71773: [AArch64][SVE] Update the definition of AdvSIMD_GatherLoad_VecTorBase_Intrinsic.
Thu, Jan 16, 6:51 AM · Restricted Project
sdesmalen requested changes to D71773: [AArch64][SVE] Update the definition of AdvSIMD_GatherLoad_VecTorBase_Intrinsic.
Thu, Jan 16, 4:08 AM · Restricted Project
sdesmalen added inline comments to D71773: [AArch64][SVE] Update the definition of AdvSIMD_GatherLoad_VecTorBase_Intrinsic.
Thu, Jan 16, 4:08 AM · Restricted Project

Wed, Jan 15

sdesmalen accepted D72734: [VectorUtils] Rework the Vector Function Database (VFDatabase)..

The fix seems sensible to me.

Wed, Jan 15, 9:53 AM · Restricted Project
sdesmalen added inline comments to D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..
Wed, Jan 15, 3:51 AM · Restricted Project
sdesmalen created D72758: Add OffsetIsScalable to getMemOperandWithOffset.
Wed, Jan 15, 3:51 AM · Restricted Project

Tue, Jan 14

sdesmalen added a comment to D71216: [AArch64] Implement passing SVE vectors by ref for AAPCS..

Please add a comment explaining each isScalableVector(), to make it clear why we're excluding them. Otherwise LGTM

Thanks, I'll add some comments for these cases (and do this for future cases I find as well).

Tue, Jan 14, 9:36 AM · Restricted Project
sdesmalen updated the diff for D68203: Add support for (expressing) vscale..

Changed scale argument to VSCALE from int64_t to APInt.

Tue, Jan 14, 3:42 AM · Restricted Project
sdesmalen added inline comments to D68203: Add support for (expressing) vscale..
Tue, Jan 14, 3:40 AM · Restricted Project

Mon, Jan 13

sdesmalen added inline comments to D72612: [AArch64][SVE] Add ImmArg property to intrinsics with immediates.
Mon, Jan 13, 10:25 AM · Restricted Project
sdesmalen updated the diff for D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..

added context to the patch

Mon, Jan 13, 7:25 AM · Restricted Project
sdesmalen updated the diff for D71216: [AArch64] Implement passing SVE vectors by ref for AAPCS..
  • Added two fixes to DAGCombine where we need to bail out if the type is scalable (the tests ran into some assertion failures otherwise).
Mon, Jan 13, 7:25 AM · Restricted Project
sdesmalen updated the diff for D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..
  • Code in SelectAddrModeFrameIndexSVE now checks if index is a FrameIndexSDNode (rather than assume it is one).
  • Fixed whitespace and updated comment.
Mon, Jan 13, 7:16 AM · Restricted Project
sdesmalen added inline comments to D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..
Mon, Jan 13, 7:16 AM · Restricted Project
sdesmalen added inline comments to D68203: Add support for (expressing) vscale..
Mon, Jan 13, 6:26 AM · Restricted Project
sdesmalen updated the diff for D68203: Add support for (expressing) vscale..
  • Simplified the llvm.vscale intrinsic to no longer take the scaling argument. This means the scaling is left to an explicit mul which has explicit wrapping flags. This in turn simplifies the code in SelectionDAG for merging the multiplier into the VSCALE ISD node (this should only happen when it is known that no wrapping occurs).
  • Also made llvm.vscale overloadable, so that it can return vscale in different types.
  • Added special patterns for mul vscale, 1 and mul vscale, -1.
Mon, Jan 13, 6:26 AM · Restricted Project

Wed, Jan 8

sdesmalen added inline comments to D71698: [AArch64][SVE] Add intrinsic for non-faulting loads.
Wed, Jan 8, 9:43 AM · Restricted Project
sdesmalen added a comment to D68203: Add support for (expressing) vscale..

I'm not a comptent reviewer on the details for this whole patch, but the general intrinsic approach LGTM!

Awesome, thanks for having a look!

Wed, Jan 8, 7:12 AM · Restricted Project
sdesmalen updated the diff for D68203: Add support for (expressing) vscale..
  • Changed some mul into shl in the test file, to test fold into vscale isd node.
  • Addressed comments.
Wed, Jan 8, 7:12 AM · Restricted Project

Tue, Jan 7

sdesmalen added a comment to D71432: [AArch64][SVE] Proposal to use op+select to match scalable predicated operations.

I just checked out the PseudoOps and they're interesting. If we could make generic XXX_PSEUDO(..., %passthru) PseudoOps, that would be a good path forward. I don't foresee any problems adding an extra passthru operand to the existing patterns, but maybe I'm missing something. If you have any insight, it would be appreciated.

Awesome, thanks for checking this out.

Tue, Jan 7, 9:27 AM · Restricted Project
sdesmalen added a comment to D71636: [AArch64][SVE][WIP] Add support for vscale constants (?).
define i32 @vscale() {
  ret i32 ptrtoint (<vscale x 1 x i8>* getelementptr (<vscale x 1 x
i8>, <vscale x 1 x i8>* null, i64 1) to i32)
}

Whether this returns vscale or something else depends on the ptrtoint mapping of the default address space.. and <vscale x 1 x i8>* null might not be i32 0 for some targets. You might get away with subtracting the integer value of null ;-) (.. i guess @arsenm is more familiar with the topic of address spaces and what may be assumed about them given his recent DevMtg talk).

My understanding was that for the default address space, nullptr always has the bit value 0. I don't really understand this topic enough to know the intricacies around the ptrtoint mapping of the default address space, but if this is used for sizeof, I don't see why it couldn't be used for vscale (taking into account the check for larger alignment).

Tue, Jan 7, 5:50 AM · Restricted Project
sdesmalen updated the diff for D68203: Add support for (expressing) vscale..

Added LLVM IR support to this patch; as intrinsic and constexpr pattern (following suggestions in D71636)

Tue, Jan 7, 5:50 AM · Restricted Project

Dec 20 2019

sdesmalen accepted D71252: [AArch64][SVE] Add intrnisics for saturating scalar arithmetic.
Dec 20 2019, 1:33 AM · Restricted Project

Dec 19 2019

sdesmalen added a comment to D71712: Downstream SVE/SVE2 implementation (LLVM).

Hi Renato,

Dec 19 2019, 9:33 AM
sdesmalen created D71713: Downstream SVE/SVE2 implementation (Clang).
Dec 19 2019, 9:13 AM
sdesmalen planned changes to D71713: Downstream SVE/SVE2 implementation (Clang).
Dec 19 2019, 9:13 AM
sdesmalen planned changes to D71712: Downstream SVE/SVE2 implementation (LLVM).
Dec 19 2019, 9:04 AM
Herald added a reviewer for D71712: Downstream SVE/SVE2 implementation (LLVM): jfb.
Dec 19 2019, 9:04 AM

Dec 18 2019

sdesmalen accepted D71614: [AArch64][SVE] Replace integer immediate intrinsics with splat vector variant.

LGTM as well!

Dec 18 2019, 2:38 PM · Restricted Project
sdesmalen added a comment to D71389: [ConstantFold][SVE] Fix constant folding for bitcast..

Thanks for adding the extra constant fold @huihuiz!

Dec 18 2019, 4:14 AM · Restricted Project

Dec 17 2019

sdesmalen added a comment to D71432: [AArch64][SVE] Proposal to use op+select to match scalable predicated operations.

Hi @cameron.mcinally, thanks for sharing this patch!

Dec 17 2019, 3:48 PM · Restricted Project
sdesmalen added a comment to D71556: [AArch64][SVE] Implement intrinsic for non-faulting loads.

I'm not sure it's legal to transform a non-faulting load to a load with a non-faulting flag? At least, we'd need to consider the implications of that very carefully. In particular, I'm concerned about the interaction with intrinsics that read/write FFR. I mean, you could specify that loads marked MONonFaulting actually write to the FFR register, but that seems confusing.

It seems simpler to preserve the intrinsic until isel, at least for now.

I missed this comment earlier, but that's a valid point. For SVE having side-effects is assumed from the non-faulting flag. We hoped to latch on to the MLOAD here to reuse code and benefit from legalization in case we want to add a more generic mechanism in the future to use such loads directly in the loop-vectorizer.

Dec 17 2019, 6:29 AM · Restricted Project
sdesmalen added inline comments to D71556: [AArch64][SVE] Implement intrinsic for non-faulting loads.
Dec 17 2019, 3:10 AM · Restricted Project
sdesmalen accepted D71014: [AArc64][SVE] Fold constant multiply of element count.

LGTM! Thanks @c-rhodes

Dec 17 2019, 1:45 AM · Restricted Project

Dec 16 2019

sdesmalen accepted D71359: Fix assertion failure in getMemOperandWithOffsetWidth.

LGTM, thanks @kristof.beyls!

Dec 16 2019, 7:20 AM · Restricted Project
sdesmalen accepted D71483: [AArch64][SVE] Add patterns for logical immediate operations..

There is no harm in adding these intrinsics, but it is worth pointing out that our downstream compiler does not have explicit intrinsics for the immediate forms because:

  • There are no specific C/C++ intrinsics that require the operand to be an immediate. That means using the immediate form is purely an optimisation of the general ((unpredicated) vector, vector) case.
  • We can use a pattern to match e.g. the AArch64dup (SVELogicalImm32 i64:$imm) and emit the immediate-form of the instruction.
Dec 16 2019, 7:11 AM · Restricted Project
sdesmalen accepted D71401: [AArch64][SVE] Add permutation and selection intrinsics.

LGTM!

Dec 16 2019, 3:06 AM · Restricted Project
sdesmalen accepted D71424: [AArch64][SVE2] Add intrinsics for binary narrowing operations.

LGTM!

Dec 16 2019, 2:49 AM · Restricted Project
sdesmalen accepted D71074: [Aarch64][SVE] Add intrinsics for scatter stores.

LGTM!

Dec 16 2019, 2:21 AM · Restricted Project

Dec 13 2019

sdesmalen accepted D71457: [AArch64][SVE] Implement ptrue intrinsic.

LGTM!

Dec 13 2019, 6:34 AM · Restricted Project
sdesmalen updated subscribers of D71401: [AArch64][SVE] Add permutation and selection intrinsics.
Dec 13 2019, 5:49 AM · Restricted Project
sdesmalen added inline comments to D71445: [ConstantFold][SVE] Fix constant folding for scalable vector binary operations..
Dec 13 2019, 4:36 AM · Restricted Project
sdesmalen added inline comments to D71457: [AArch64][SVE] Implement ptrue intrinsic.
Dec 13 2019, 3:50 AM · Restricted Project
sdesmalen added a comment to D71167: [Driver] Default to -momit-leaf-frame-pointer for AArch64.

The patch looks structurally fine, but I'm missing the argumentation for changing the default and related, the history of why the default is to not omit the frame pointer on leaf functions.
Can you provide some insight here?

Dec 13 2019, 3:41 AM · Restricted Project
sdesmalen added inline comments to D71389: [ConstantFold][SVE] Fix constant folding for bitcast..
Dec 13 2019, 3:03 AM · Restricted Project

Dec 12 2019

sdesmalen added inline comments to D71389: [ConstantFold][SVE] Fix constant folding for bitcast..
Dec 12 2019, 5:19 AM · Restricted Project
sdesmalen added inline comments to D71359: Fix assertion failure in getMemOperandWithOffsetWidth.
Dec 12 2019, 2:43 AM · Restricted Project

Dec 11 2019

sdesmalen added inline comments to D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..
Dec 11 2019, 2:29 PM · Restricted Project
sdesmalen updated the diff for D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..
  • Added convenience function MemoryLocation::getSizeOrUnknown
  • Removed isLE predicate from predicate store patterns.
  • Added comments explaining why we bail out of a function when the type is a scalable vector.
  • Addressed other suggestions to clean up code.
Dec 11 2019, 2:29 PM · Restricted Project
sdesmalen added inline comments to D71074: [Aarch64][SVE] Add intrinsics for scatter stores.
Dec 11 2019, 7:31 AM · Restricted Project
sdesmalen added inline comments to D71074: [Aarch64][SVE] Add intrinsics for scatter stores.
Dec 11 2019, 7:31 AM · Restricted Project
sdesmalen added a comment to D71298: [AArch64][SVE] Add patterns for scalable vselect.

Thanks for adding these patterns @cameron.mcinally !

Dec 11 2019, 6:02 AM · Restricted Project

Dec 10 2019

sdesmalen accepted D70812: [Aarch64][SVE] Add DAG combine rules for gather loads and sext/zext.

Aside from two nits, LGTM!

Dec 10 2019, 5:55 AM · Restricted Project
sdesmalen accepted D67572: [VectorUtils] Introduce the Vector Function Database (VFDatabase)..

LGTM!

Dec 10 2019, 5:43 AM · Restricted Project
sdesmalen added inline comments to D71014: [AArc64][SVE] Fold constant multiply of element count.
Dec 10 2019, 5:34 AM · Restricted Project

Dec 9 2019

sdesmalen added a parent revision for D71216: [AArch64] Implement passing SVE vectors by ref for AAPCS.: D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..
Dec 9 2019, 10:06 AM · Restricted Project
sdesmalen added a child revision for D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices.: D71216: [AArch64] Implement passing SVE vectors by ref for AAPCS..
Dec 9 2019, 10:06 AM · Restricted Project
sdesmalen created D71216: [AArch64] Implement passing SVE vectors by ref for AAPCS..
Dec 9 2019, 10:05 AM · Restricted Project
sdesmalen created D71215: [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices..
Dec 9 2019, 10:05 AM · Restricted Project
sdesmalen accepted D71160: [AArch64][SVE] Implement SPLAT_VECTOR for i1 vectors..

LGTM, thanks @efriedma!

Dec 9 2019, 1:19 AM · Restricted Project

Dec 4 2019

sdesmalen added inline comments to D70795: [AArch64][SVE] Add intrinsics and patterns for logical predicate instructions.
Dec 4 2019, 2:20 PM · Restricted Project
sdesmalen accepted D70800: Fix AArch64 AAPCS frame record chain.

Thanks @logan , LGTM!

Dec 4 2019, 2:10 PM · Restricted Project
sdesmalen accepted D70513: [VectorUtils] API for VFShape, update VFInfo..

Thanks for the fixes @fpetrogalli, LGTM!

Dec 4 2019, 11:56 AM · Restricted Project
sdesmalen added inline comments to D70513: [VectorUtils] API for VFShape, update VFInfo..
Dec 4 2019, 9:04 AM · Restricted Project

Dec 3 2019

sdesmalen added a comment to D70800: Fix AArch64 AAPCS frame record chain.

Functionally the patch is looking good, nearly there!

Dec 3 2019, 9:18 AM · Restricted Project
sdesmalen accepted D70955: [NFC] Use default case in EVT::getEVTString.

Seems like a sensible change to me.

Dec 3 2019, 7:55 AM · Restricted Project
sdesmalen committed rG79f2422d6a68: [Aarch64][SVE] Add intrinsics for gather loads (vector + imm) (authored by sdesmalen).
[Aarch64][SVE] Add intrinsics for gather loads (vector + imm)
Dec 3 2019, 7:28 AM
sdesmalen closed D70806: [Aarch64][SVE] Add intrinsics for gather loads (vector + imm).
Dec 3 2019, 7:27 AM · Restricted Project
sdesmalen accepted D70960: [AArch64][SVE] Implement reversal intrinsics.

LGTM, thanks @c-rhodes!

Dec 3 2019, 7:27 AM · Restricted Project
sdesmalen committed rG8bf31e28d7b6: [Aarch64][SVE] Add intrinsics for gather loads with 32-bits offsets (authored by sdesmalen).
[Aarch64][SVE] Add intrinsics for gather loads with 32-bits offsets
Dec 3 2019, 6:50 AM
sdesmalen closed D70782: [Aarch64][SVE] Add intrinsics for gather loads with 32-bits offsets.
Dec 3 2019, 6:50 AM · Restricted Project
sdesmalen committed rG6e51ceba536d: [AArch64][SVE] Add intrinsics for gather loads with 64-bit offsets (authored by sdesmalen).
[AArch64][SVE] Add intrinsics for gather loads with 64-bit offsets
Dec 3 2019, 5:00 AM
sdesmalen closed D70542: [AArch64][SVE] Add intrinsics for gather loads with 64-bit offsets.
Dec 3 2019, 4:59 AM · Restricted Project
sdesmalen accepted D70909: [AArch64][SVE2] Implement while comparison intrinsics.

LGTM!

Dec 3 2019, 3:09 AM · Restricted Project

Dec 2 2019

sdesmalen accepted D70437: [AArch64][SVE] Implement shift intrinsics.

LGTM!

Dec 2 2019, 9:48 AM · Restricted Project
sdesmalen accepted D70253: [AArch64][SVE2] Implement remaining SVE2 floating-point intrinsics.

Thanks @kmclaughlin , LGTM.

Dec 2 2019, 9:40 AM · Restricted Project
sdesmalen accepted D69956: [AArch64][SVE] Integer reduction instructions pattern/intrinsics..

Thanks for making these changes to your patch @dancgr.
Please address the two nits before you commit, but otherwise LGTM.

Dec 2 2019, 9:39 AM · Restricted Project