[all-commits] [llvm/llvm-project] ab0c5c: [ARM] Use v2i1 for MVE and CDE intrinsics

David Green via All-commits all-commits at lists.llvm.org
Fri Dec 3 07:28:12 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ab0c5cea0b1a9a1227fea840184dd7b5983c22a5
      https://github.com/llvm/llvm-project/commit/ab0c5cea0b1a9a1227fea840184dd7b5983c22a5
  Author: David Green <david.green at arm.com>
  Date:   2021-12-03 (Fri, 03 Dec 2021)

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

  Log Message:
  -----------
  [ARM] Use v2i1 for MVE and CDE intrinsics

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.

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




More information about the All-commits mailing list