[llvm] [AArch64] optimise SVE cmp intrinsics with no active lanes (PR #104779)

via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 19 10:02:16 PDT 2024


================
@@ -2131,6 +2135,25 @@ AArch64TTIImpl::instCombineIntrinsic(InstCombiner &IC,
   case Intrinsic::aarch64_sve_st4:
   case Intrinsic::aarch64_sve_st4q:
     return instCombineSVENoActiveUnaryErase(IC, II, 4);
+  case Intrinsic::aarch64_sve_cmpeq:
----------------
SpencerAbson wrote:

As these integer comparison intrinsics compile to instructions that set the status register (even if the predicate is all inactive, see use of [PredTest](https://developer.arm.com/documentation/ddi0602/2024-06/Shared-Pseudocode/aarch64-functions-sve?lang=en#impl-aarch64.PredTest.3) in [CMP<cc>)](https://developer.arm.com/documentation/ddi0596/2020-12/SVE-Instructions/CMP-cc---wide-elements---Compare-vector-to-64-bit-wide-elements-), it might be worth referencing where the [ACLE](https://github.com/ARM-software/acle/blob/main/main/acle.md#programmers-model-of-global-state) declares this part of the global state as undefined? 

https://github.com/llvm/llvm-project/pull/104779


More information about the llvm-commits mailing list