================
@@ -1898,6 +1898,259 @@ let TargetPrefix = "riscv" in {
 let TargetPrefix = "riscv" in
 def int_riscv_pause : DefaultAttrsIntrinsic<[], [], [IntrNoMem, 
IntrHasSideEffects]>;
 
+//===----------------------------------------------------------------------===//
+// Packed SIMD
+
+let TargetPrefix = "riscv" in {
+  class RVPBinaryIntrinsics
+      : Intrinsic<[llvm_any_ty],
+                  [LLVMMatchType<0>, LLVMMatchType<0>],
+                  [IntrNoMem]>;
+
+  multiclass RVPBinaryIntrinsics {
+    def "int_riscv_" # NAME   : RVPBinaryIntrinsics;
+  }
+  defm psll_bs     : RVPBinaryIntrinsics;
+  defm psll_hs     : RVPBinaryIntrinsics;
+  defm psll_ws     : RVPBinaryIntrinsics;
+  defm padd_bs     : RVPBinaryIntrinsics;
+  defm padd_hs     : RVPBinaryIntrinsics;
+  defm padd_ws     : RVPBinaryIntrinsics;
+  defm pssha_hs    : RVPBinaryIntrinsics;
+  defm pssha_ws    : RVPBinaryIntrinsics;
+  defm sha         : RVPBinaryIntrinsics;
+  defm ssha        : RVPBinaryIntrinsics;
+  defm psshar_hs   : RVPBinaryIntrinsics;
+  defm psshar_ws   : RVPBinaryIntrinsics;
+  defm shar        : RVPBinaryIntrinsics;
+  defm sshar       : RVPBinaryIntrinsics;
+  defm psrl_bs     : RVPBinaryIntrinsics;
+  defm psrl_hs     : RVPBinaryIntrinsics;
+  defm psrl_ws     : RVPBinaryIntrinsics;
+  defm predsum_bs  : RVPBinaryIntrinsics;
+  defm predsum_hs  : RVPBinaryIntrinsics;
+  defm predsum_ws  : RVPBinaryIntrinsics;
+  defm predsumu_bs : RVPBinaryIntrinsics;
+  defm predsumu_hs : RVPBinaryIntrinsics;
+  defm predsumu_ws : RVPBinaryIntrinsics;
+  defm psra_bs     : RVPBinaryIntrinsics;
+  defm psra_hs     : RVPBinaryIntrinsics;
+  defm psra_ws     : RVPBinaryIntrinsics;
+  defm padd_b      : RVPBinaryIntrinsics;
+  defm padd_h      : RVPBinaryIntrinsics;
+  defm padd_w      : RVPBinaryIntrinsics;
+  defm sadd        : RVPBinaryIntrinsics;
+  defm psadd_b     : RVPBinaryIntrinsics;
+  defm psadd_h     : RVPBinaryIntrinsics;
+  defm psadd_w     : RVPBinaryIntrinsics;
+  defm aadd        : RVPBinaryIntrinsics;
+  defm paadd_b     : RVPBinaryIntrinsics;
+  defm paadd_h     : RVPBinaryIntrinsics;
+  defm paadd_w     : RVPBinaryIntrinsics;
+  defm saddu       : RVPBinaryIntrinsics;
+  defm psaddu_b    : RVPBinaryIntrinsics;
+  defm psaddu_h    : RVPBinaryIntrinsics;
+  defm psaddu_w    : RVPBinaryIntrinsics;
+  defm aaddu       : RVPBinaryIntrinsics;
+  defm paaddu_b    : RVPBinaryIntrinsics;
+  defm paaddu_h    : RVPBinaryIntrinsics;
+  defm paaddu_w    : RVPBinaryIntrinsics;
+  defm psub_b      : RVPBinaryIntrinsics;
+  defm psub_h      : RVPBinaryIntrinsics;
+  defm psub_w      : RVPBinaryIntrinsics;
+  defm ssub        : RVPBinaryIntrinsics;
+  defm pssub_b     : RVPBinaryIntrinsics;
+  defm pssub_h     : RVPBinaryIntrinsics;
+  defm pssub_w     : RVPBinaryIntrinsics;
+  defm asub        : RVPBinaryIntrinsics;
+  defm pasub_b     : RVPBinaryIntrinsics;
+  defm pasub_h     : RVPBinaryIntrinsics;
+  defm pasub_w     : RVPBinaryIntrinsics;
+  defm ssubu       : RVPBinaryIntrinsics;
+  defm pssubu_b    : RVPBinaryIntrinsics;
+  defm pssubu_h    : RVPBinaryIntrinsics;
+  defm pssubu_w    : RVPBinaryIntrinsics;
+  defm asubu       : RVPBinaryIntrinsics;
+  defm pasubu_b    : RVPBinaryIntrinsics;
+  defm pasubu_h    : RVPBinaryIntrinsics;
+  defm pasubu_w    : RVPBinaryIntrinsics;
+  defm pdif_b      : RVPBinaryIntrinsics;
+  defm pdif_h      : RVPBinaryIntrinsics;
+  defm pdifu_b     : RVPBinaryIntrinsics;
+  defm pdifu_h     : RVPBinaryIntrinsics;
+  defm slx         : RVPBinaryIntrinsics;
+  defm mul_h01     : RVPBinaryIntrinsics;
+  defm mul_w01     : RVPBinaryIntrinsics;
+  defm mulu_h01    : RVPBinaryIntrinsics;
+  defm mulu_w01    : RVPBinaryIntrinsics;
+  defm psh1add_h   : RVPBinaryIntrinsics;
+  defm psh1add_w   : RVPBinaryIntrinsics;
+  defm ssh1sadd    : RVPBinaryIntrinsics;
+  defm pssh1sadd_h : RVPBinaryIntrinsics;
+  defm pssh1sadd_w : RVPBinaryIntrinsics;
+  defm unzip8p     : RVPBinaryIntrinsics;
+  defm unzip16p    : RVPBinaryIntrinsics;
+  defm unzip8hp    : RVPBinaryIntrinsics;
+  defm unzip16hp   : RVPBinaryIntrinsics;
+  defm zip8p       : RVPBinaryIntrinsics;
+  defm zip16p      : RVPBinaryIntrinsics;
+  defm zip8hp      : RVPBinaryIntrinsics;
+  defm zip16hp     : RVPBinaryIntrinsics;
+  defm ppack_h     : RVPBinaryIntrinsics;
+  defm ppack_w     : RVPBinaryIntrinsics;
+  defm ppackbt_h   : RVPBinaryIntrinsics;
+  defm ppackbt_w   : RVPBinaryIntrinsics;
+  defm packbt      : RVPBinaryIntrinsics;
+  defm ppacktb_h   : RVPBinaryIntrinsics;
+  defm ppacktb_w   : RVPBinaryIntrinsics;
+  defm packtb      : RVPBinaryIntrinsics;
+  defm ppackt_h    : RVPBinaryIntrinsics;
+  defm ppackt_w    : RVPBinaryIntrinsics;
+  defm packt       : RVPBinaryIntrinsics;
+  defm pas_hx      : RVPBinaryIntrinsics;
+  defm pas_wx      : RVPBinaryIntrinsics;
+  defm psa_hx      : RVPBinaryIntrinsics;
+  defm psa_wx      : RVPBinaryIntrinsics;
+  defm psas_hx     : RVPBinaryIntrinsics;
+  defm psas_wx     : RVPBinaryIntrinsics;
+  defm pssa_hx     : RVPBinaryIntrinsics;
+  defm pssa_wx     : RVPBinaryIntrinsics;
+  defm paas_hx     : RVPBinaryIntrinsics;
+  defm paas_wx     : RVPBinaryIntrinsics;
+  defm pasa_hx     : RVPBinaryIntrinsics;
+  defm pasa_wx     : RVPBinaryIntrinsics;
+  defm mseq        : RVPBinaryIntrinsics;
+  defm pmseq_b     : RVPBinaryIntrinsics;
+  defm pmseq_h     : RVPBinaryIntrinsics;
+  defm pmseq_w     : RVPBinaryIntrinsics;
+  defm mslt        : RVPBinaryIntrinsics;
+  defm pmslt_b     : RVPBinaryIntrinsics;
+  defm pmslt_h     : RVPBinaryIntrinsics;
+  defm pmslt_w     : RVPBinaryIntrinsics;
+  defm msltu       : RVPBinaryIntrinsics;
+  defm pmsltu_b    : RVPBinaryIntrinsics;
+  defm pmsltu_h    : RVPBinaryIntrinsics;
+  defm pmsltu_w    : RVPBinaryIntrinsics;
+  defm pmin_b      : RVPBinaryIntrinsics;
+  defm pmin_h      : RVPBinaryIntrinsics;
+  defm pmin_w      : RVPBinaryIntrinsics;
+  defm pminu_b     : RVPBinaryIntrinsics;
+  defm pminu_h     : RVPBinaryIntrinsics;
+  defm pminu_w     : RVPBinaryIntrinsics;
+  defm pmax_b      : RVPBinaryIntrinsics;
+  defm pmax_h      : RVPBinaryIntrinsics;
+  defm pmax_w      : RVPBinaryIntrinsics;
+  defm pmaxu_b     : RVPBinaryIntrinsics;
+  defm pmaxu_h     : RVPBinaryIntrinsics;
+  defm pmaxu_w     : RVPBinaryIntrinsics;
+  defm pmulh_h     : RVPBinaryIntrinsics;
+  defm pmulh_w     : RVPBinaryIntrinsics;
+  defm pmulhu_h    : RVPBinaryIntrinsics;
+  defm pmulhu_w    : RVPBinaryIntrinsics;
+  defm pmulhr_h    : RVPBinaryIntrinsics;
+  defm pmulhr_w    : RVPBinaryIntrinsics;
+  defm pmulhru_h   : RVPBinaryIntrinsics;
+  defm pmulhru_w   : RVPBinaryIntrinsics;
+  defm mulh_h1     : RVPBinaryIntrinsics;
+  defm mulhr       : RVPBinaryIntrinsics;
+  defm mulhru      : RVPBinaryIntrinsics;
+  defm mulh_h0     : RVPBinaryIntrinsics;
+
+  class RVPBinaryAABIntrinsics
+      : Intrinsic<[llvm_any_ty],
+                  [LLVMMatchType<0>, llvm_any_ty],
+                  [IntrNoMem]>;
+
+  multiclass RVPBinaryAABIntrinsics {
+    def "int_riscv_" # NAME   : RVPBinaryAABIntrinsics;
+  }
+
+  defm pslli_b    : RVPBinaryAABIntrinsics;
----------------
topperc wrote:

Why is pslli AAB? Isn't the immediate the same type?

https://github.com/llvm/llvm-project/pull/157044
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to