[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