================
@@ -8177,6 +8089,100 @@ define i64 @test_pm2waddsu_v2i16_i64(<2 x i16> %a, <2 x
i16> %b) {
ret i64 %r
}
+; Packed Multiplication with Widening Horizontal Addition and Accumulate.
+define i64 @test_pm2wadda_v2i16_i64(i64 %rd, <2 x i16> %a, <2 x i16> %b) {
+; RV32-LABEL: test_pm2wadda_v2i16_i64:
+; RV32: # %bb.0:
+; RV32-NEXT: pm2wadda.h a0, a2, a3
+; RV32-NEXT: ret
+;
+; RV64-LABEL: test_pm2wadda_v2i16_i64:
+; RV64: # %bb.0:
+; RV64-NEXT: pack a2, a2, zero
+; RV64-NEXT: pm4adda.h a0, a1, a2
+; RV64-NEXT: ret
+ %r = call i64 @llvm.riscv.pm2wadda.i64.v2i16(i64 %rd, <2 x i16> %a, <2 x
i16> %b)
+ ret i64 %r
+}
+
+define i64 @test_pm2wadda_x_v2i16_i64(i64 %rd, <2 x i16> %a, <2 x i16> %b) {
+; RV32-LABEL: test_pm2wadda_x_v2i16_i64:
+; RV32: # %bb.0:
+; RV32-NEXT: pm2wadda.hx a0, a2, a3
+; RV32-NEXT: ret
+;
+; RV64-LABEL: test_pm2wadda_x_v2i16_i64:
+; RV64: # %bb.0:
+; RV64-NEXT: pack a2, a2, zero
+; RV64-NEXT: ppairoe.h a2, a2, a2
+; RV64-NEXT: pm4adda.h a0, a1, a2
+; RV64-NEXT: ret
+ %r = call i64 @llvm.riscv.pm2wadda.x.i64.v2i16(i64 %rd, <2 x i16> %a, <2 x
i16> %b)
+ ret i64 %r
+}
+
+define i64 @test_pm2waddau_v2i16_i64(i64 %rd, <2 x i16> %a, <2 x i16> %b) {
+; RV32-LABEL: test_pm2waddau_v2i16_i64:
+; RV32: # %bb.0:
+; RV32-NEXT: pm2waddau.h a0, a2, a3
+; RV32-NEXT: ret
+;
+; RV64-LABEL: test_pm2waddau_v2i16_i64:
+; RV64: # %bb.0:
+; RV64-NEXT: pack a2, a2, zero
+; RV64-NEXT: pm4addau.h a0, a1, a2
+; RV64-NEXT: ret
+ %r = call i64 @llvm.riscv.pm2waddau.i64.v2i16(i64 %rd, <2 x i16> %a, <2 x
i16> %b)
+ ret i64 %r
+}
+
+define i64 @test_pm2wsuba_v2i16_i64(i64 %rd, <2 x i16> %a, <2 x i16> %b) {
+; RV32-LABEL: test_pm2wsuba_v2i16_i64:
+; RV32: # %bb.0:
+; RV32-NEXT: pm2wsuba.h a0, a2, a3
+; RV32-NEXT: ret
+;
+; RV64-LABEL: test_pm2wsuba_v2i16_i64:
+; RV64: # %bb.0:
+; RV64-NEXT: pm2sub.h a1, a1, a2
+; RV64-NEXT: zext.w a1, a1
----------------
topperc wrote:
According to the spec, this zext.w should be before the pm2sub.h so that it
might be able to fold into a load.
https://github.com/llvm/llvm-project/pull/234450
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits