[PATCH] D114455: [ARM] Use v2i1 for MVE and CDE intrinsics

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 23 09:46:31 PST 2021


dmgreen created this revision.
dmgreen added reviewers: simon_tatham, SjoerdMeijer, samtebbs, miyuki.
Herald added subscribers: dexonsmith, hiraditya, kristof.beyls.
dmgreen requested review of this revision.
Herald added a project: LLVM.

This adjusts all the MVE and CDE intrinsics now that v2i1 is a legal type, to use a <2 x i1> as opposed to emulating the predicate with a <4 x i1>. The v4i1 workarounds have been removed leaving the natural v2i1 types, notably in vctp64 which now generates a v2i1 type.

AutoUpgrade code has been added to upgrade old IR, which needs to convert the old v4i1 to a v2i1 be converting it back and forth to an integer with arm.mve.v2i and arm.mve.i2v intrinsics. These should be optimized away in the final assembly.


https://reviews.llvm.org/D114455

Files:
  clang/test/CodeGen/arm-cde-vec.c
  clang/test/CodeGen/arm-mve-intrinsics/predicates.c
  clang/test/CodeGen/arm-mve-intrinsics/scatter-gather.c
  clang/test/CodeGen/arm-mve-intrinsics/vld24.c
  clang/test/CodeGen/arm-mve-intrinsics/vldr.c
  clang/test/CodeGen/arm-mve-intrinsics/vmullbq.c
  clang/test/CodeGen/arm-mve-intrinsics/vmulltq.c
  clang/test/CodeGen/arm-mve-intrinsics/vqdmullbq.c
  clang/test/CodeGen/arm-mve-intrinsics/vqdmulltq.c
  clang/utils/TableGen/MveEmitter.cpp
  llvm/include/llvm/IR/IntrinsicsARM.td
  llvm/lib/Analysis/ConstantFolding.cpp
  llvm/lib/IR/AutoUpgrade.cpp
  llvm/lib/Target/ARM/ARMInstrMVE.td
  llvm/lib/Target/ARM/MVETailPredication.cpp
  llvm/test/CodeGen/Thumb2/active_lane_mask.ll
  llvm/test/CodeGen/Thumb2/cde-vec.ll
  llvm/test/CodeGen/Thumb2/mve-gatherscatter-mmo.ll
  llvm/test/CodeGen/Thumb2/mve-intrinsics/predicates.ll
  llvm/test/CodeGen/Thumb2/mve-intrinsics/scatter-gather.ll
  llvm/test/CodeGen/Thumb2/mve-intrinsics/v2i1-upgrade.ll
  llvm/test/CodeGen/Thumb2/mve-intrinsics/vldr.ll
  llvm/test/CodeGen/Thumb2/mve-intrinsics/vmullbq.ll
  llvm/test/CodeGen/Thumb2/mve-intrinsics/vmulltq.ll
  llvm/test/CodeGen/Thumb2/mve-intrinsics/vqdmull.ll
  llvm/test/CodeGen/Thumb2/mve-vctp.ll
  llvm/test/Transforms/InstCombine/ARM/mve-v2i2v.ll
  llvm/test/Transforms/InstSimplify/ConstProp/ARM/mve-vctp.ll
  llvm/test/Transforms/LoopStrengthReduce/ARM/vctp-chains-inseltpoison.ll
  llvm/test/Transforms/LoopStrengthReduce/ARM/vctp-chains.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D114455.389236.patch
Type: text/x-patch
Size: 110021 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211123/182fcb2e/attachment-0001.bin>


More information about the llvm-commits mailing list