[PATCH] D113767: [IR] Change CreateStepVector to work with element types smaller than i8

Paul Walker via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 12 16:24:24 PST 2021


paulwalker-arm added a comment.

When first introduced, the stepvector intrinsic defined wrapping as undefined behaviour.  At the time we pointed out this effectively made its usage for i1 vectors practically useless because only the first two lanes of a scalable vector could ever have a defined value.  This was discussed during an SVE sync call and there wasn't agreement to define the wrapping behaviour so as a compromised the supported element type was restricted to i8 or bigger.

Since then, ISD::STEP_VECTOR has changed so its wrapping behaviour is now defined and thus I see little reason for the intrinsic's definition to be different from the ISD node, however.  We cannot just change the definition because there's code generation work required to ensure the new combinations work.  This is something we'll fix but in the mean time there exists critical clang failures that result from (currently) invalid stepvector intrinsics being created and so we'd like to fix those issues first as a priority by modelling the necessary functionality whilst maintaining the current definition.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D113767/new/

https://reviews.llvm.org/D113767



More information about the llvm-commits mailing list