[llvm] [RISCV] Improve fixed vector handling in isCtpopFast. (PR #158380)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 14 21:25:05 PDT 2025
================
@@ -75,8 +78,9 @@ define <4 x i1> @test_ne_1(<4 x i64> %x) {
;
; FAST-LABEL: define <4 x i1> @test_ne_1(
; FAST-SAME: <4 x i64> [[X:%.*]]) #[[ATTR0]] {
-; FAST-NEXT: [[CTPOP:%.*]] = call <4 x i64> @llvm.ctpop.v4i64(<4 x i64> [[X]])
-; FAST-NEXT: [[CMP1:%.*]] = icmp ne <4 x i64> [[CTPOP]], splat (i64 1)
+; FAST-NEXT: [[TMP1:%.*]] = add <4 x i64> [[X]], splat (i64 -1)
+; FAST-NEXT: [[TMP2:%.*]] = xor <4 x i64> [[X]], [[TMP1]]
+; FAST-NEXT: [[CMP1:%.*]] = icmp ule <4 x i64> [[TMP2]], [[TMP1]]
----------------
lukel97 wrote:
Do we need to add +zve64x to the FAST run line?
https://github.com/llvm/llvm-project/pull/158380
More information about the llvm-commits
mailing list