[llvm] [RISCV] custom scmp(x, 0) and scmp(0, x) lowering for RVV (PR #151753)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 4 09:32:23 PDT 2025
================
@@ -0,0 +1,200 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
+; RUN: llc -mtriple=riscv32 -mattr=+v -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,RV32
+; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,RV64
+
+define <16 x i8> @scmp_i8i8(<16 x i8> %a, <16 x i8> %b) {
+; CHECK-LABEL: scmp_i8i8:
+; CHECK: # %bb.0: # %entry
+; CHECK-NEXT: vsetivli zero, 16, e8, m1, ta, ma
+; CHECK-NEXT: vmslt.vv v0, v9, v8
+; CHECK-NEXT: vmv.v.i v10, 0
+; CHECK-NEXT: vmerge.vim v10, v10, 1, v0
+; CHECK-NEXT: vmslt.vv v0, v8, v9
+; CHECK-NEXT: vmerge.vim v8, v10, -1, v0
+; CHECK-NEXT: ret
+entry:
----------------
lukel97 wrote:
Nit, you can remove these `entry:` labels if you're not referring to the block and you're not using number variable names
https://github.com/llvm/llvm-project/pull/151753
More information about the llvm-commits
mailing list