[llvm] [RISCV][P-ext] packed shift-add codegen (PR #201294)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 3 23:58:46 PDT 2026
================
@@ -218,6 +218,27 @@ define <2 x i16> @test_pssubu_h(<2 x i16> %a, <2 x i16> %b) {
ret <2 x i16> %res
}
+; Test shift-add operations for v2i16
+define <2 x i16> @test_psh1add_h(<2 x i16> %a, <2 x i16> %b) {
+; CHECK-LABEL: test_psh1add_h:
+; CHECK: # %bb.0:
+; CHECK-NEXT: psh1add.h a0, a0, a1
+; CHECK-NEXT: ret
+ %shl = shl <2 x i16> %a, splat (i16 1)
+ %res = add <2 x i16> %shl, %b
+ ret <2 x i16> %res
+}
+
+define <2 x i16> @test_pssh1sadd_h(<2 x i16> %a, <2 x i16> %b) {
+; CHECK-LABEL: test_pssh1sadd_h:
+; CHECK: # %bb.0:
+; CHECK-NEXT: pssh1sadd.h a0, a0, a1
+; CHECK-NEXT: ret
+ %shl = call <2 x i16> @llvm.sadd.sat.v2i16(<2 x i16> %a, <2 x i16> %a)
----------------
sihuan wrote:
Done. Added a `saturating_shl1` PatFrags.
https://github.com/llvm/llvm-project/pull/201294
More information about the llvm-commits
mailing list