[all-commits] [llvm/llvm-project] 764782: [AArch64][SVE] Remove i1 type from isElementTypeLe...

kmclaughlin-arm via All-commits all-commits at lists.llvm.org
Fri Nov 12 06:25:29 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 76478221565167da286bdc2d6a13eb241563e31c
      https://github.com/llvm/llvm-project/commit/76478221565167da286bdc2d6a13eb241563e31c
  Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
  Date:   2021-11-12 (Fri, 12 Nov 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-illegal-type.ll

  Log Message:
  -----------
  [AArch64][SVE] Remove i1 type from isElementTypeLegalForScalableVector

`collectElementTypesForWidening` collects the types of load, store and
reduction Phis in a loop. These types are later checked using
`isElementTypeLegalForScalableVector` to prevent vectorisation of
loops with instruction types that are unsupported.

This patch removes i1 from the list of types supported for scalable
vectors. This fixes an assert ("Cannot yet scalarize uniform stores") in
`setCostBasedWideningDecision` when we have a loop containing a uniform
i1 store and a scalable VF, which we cannot create a scatter for.

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D113680




More information about the All-commits mailing list