llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-backend-x86 Author: TelGome <details> <summary>Changes</summary> This pr support RISC-V P extension intrinsics [Packed Multiply High](https://github.com/riscv/riscv-p-spec/blob/master/P-ext-intrinsics.adoc#packed-multiply-high) --- Patch is 64.83 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/211236.diff 9 Files Affected: - (modified) clang/include/clang/Basic/BuiltinsRISCV.td (+22) - (modified) clang/lib/CodeGen/TargetBuiltins/RISCV.cpp (+50-1) - (modified) clang/lib/Headers/riscv_packed_simd.h (+112-96) - (modified) clang/test/CodeGen/RISCV/rvp-intrinsics.c (+400) - (modified) cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c (+132) - (modified) llvm/include/llvm/IR/IntrinsicsRISCV.td (+8) - (modified) llvm/lib/Target/RISCV/RISCVISelLowering.cpp (+87-1) - (modified) llvm/test/CodeGen/RISCV/rvp-simd-32.ll (+54) - (modified) llvm/test/CodeGen/RISCV/rvp-simd-64.ll (+180) ``````````diff diff --git a/clang/include/clang/Basic/BuiltinsRISCV.td b/clang/include/clang/Basic/BuiltinsRISCV.td index 3814958d81f8b..238db03cb24e7 100644 --- a/clang/include/clang/Basic/BuiltinsRISCV.td +++ b/clang/include/clang/Basic/BuiltinsRISCV.td @@ -265,6 +265,28 @@ def psabs_i16x2 : RISCVBuiltin<"_Vector<2, short>(_Vector<2, short>)">; def psabs_i8x8 : RISCVBuiltin<"_Vector<8, signed char>(_Vector<8, signed char>)">; def psabs_i16x4 : RISCVBuiltin<"_Vector<4, short>(_Vector<4, short>)">; +// Packed Multiply High (32-bit) +def pmulh_i16x2 : RISCVBuiltin<"_Vector<2, short>(_Vector<2, short>, _Vector<2, short>)">; +def pmulhu_u16x2 : RISCVBuiltin<"_Vector<2, unsigned short>(_Vector<2, unsigned short>, _Vector<2, unsigned short>)">; +def pmulhsu_i16x2 : RISCVBuiltin<"_Vector<2, short>(_Vector<2, short>, _Vector<2, unsigned short>)">; +def pmulhr_i16x2 : RISCVBuiltin<"_Vector<2, short>(_Vector<2, short>, _Vector<2, short>)">; +def pmulhru_u16x2 : RISCVBuiltin<"_Vector<2, unsigned short>(_Vector<2, unsigned short>, _Vector<2, unsigned short>)">; +def pmulhrsu_i16x2 : RISCVBuiltin<"_Vector<2, short>(_Vector<2, short>, _Vector<2, unsigned short>)">; + +// Packed Multiply High (64-bit) +def pmulh_i16x4 : RISCVBuiltin<"_Vector<4, short>(_Vector<4, short>, _Vector<4, short>)">; +def pmulhu_u16x4 : RISCVBuiltin<"_Vector<4, unsigned short>(_Vector<4, unsigned short>, _Vector<4, unsigned short>)">; +def pmulhsu_i16x4 : RISCVBuiltin<"_Vector<4, short>(_Vector<4, short>, _Vector<4, unsigned short>)">; +def pmulhr_i16x4 : RISCVBuiltin<"_Vector<4, short>(_Vector<4, short>, _Vector<4, short>)">; +def pmulhru_u16x4 : RISCVBuiltin<"_Vector<4, unsigned short>(_Vector<4, unsigned short>, _Vector<4, unsigned short>)">; +def pmulhrsu_i16x4 : RISCVBuiltin<"_Vector<4, short>(_Vector<4, short>, _Vector<4, unsigned short>)">; +def pmulh_i32x2 : RISCVBuiltin<"_Vector<2, int>(_Vector<2, int>, _Vector<2, int>)">; +def pmulhu_u32x2 : RISCVBuiltin<"_Vector<2, unsigned int>(_Vector<2, unsigned int>, _Vector<2, unsigned int>)">; +def pmulhsu_i32x2 : RISCVBuiltin<"_Vector<2, int>(_Vector<2, int>, _Vector<2, unsigned int>)">; +def pmulhr_i32x2 : RISCVBuiltin<"_Vector<2, int>(_Vector<2, int>, _Vector<2, int>)">; +def pmulhru_u32x2 : RISCVBuiltin<"_Vector<2, unsigned int>(_Vector<2, unsigned int>, _Vector<2, unsigned int>)">; +def pmulhrsu_i32x2 : RISCVBuiltin<"_Vector<2, int>(_Vector<2, int>, _Vector<2, unsigned int>)">; + } // Features = "experimental-p" //===----------------------------------------------------------------------===// diff --git a/clang/lib/CodeGen/TargetBuiltins/RISCV.cpp b/clang/lib/CodeGen/TargetBuiltins/RISCV.cpp index a3b1db1732af9..df1c8790ef232 100644 --- a/clang/lib/CodeGen/TargetBuiltins/RISCV.cpp +++ b/clang/lib/CodeGen/TargetBuiltins/RISCV.cpp @@ -1263,7 +1263,26 @@ Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID, case RISCV::BI__builtin_riscv_psabs_i8x4: case RISCV::BI__builtin_riscv_psabs_i16x2: case RISCV::BI__builtin_riscv_psabs_i8x8: - case RISCV::BI__builtin_riscv_psabs_i16x4: { + case RISCV::BI__builtin_riscv_psabs_i16x4: + // Packed Multiply High + case RISCV::BI__builtin_riscv_pmulh_i16x2: + case RISCV::BI__builtin_riscv_pmulhu_u16x2: + case RISCV::BI__builtin_riscv_pmulhsu_i16x2: + case RISCV::BI__builtin_riscv_pmulhr_i16x2: + case RISCV::BI__builtin_riscv_pmulhru_u16x2: + case RISCV::BI__builtin_riscv_pmulhrsu_i16x2: + case RISCV::BI__builtin_riscv_pmulh_i16x4: + case RISCV::BI__builtin_riscv_pmulhu_u16x4: + case RISCV::BI__builtin_riscv_pmulhsu_i16x4: + case RISCV::BI__builtin_riscv_pmulhr_i16x4: + case RISCV::BI__builtin_riscv_pmulhru_u16x4: + case RISCV::BI__builtin_riscv_pmulhrsu_i16x4: + case RISCV::BI__builtin_riscv_pmulh_i32x2: + case RISCV::BI__builtin_riscv_pmulhu_u32x2: + case RISCV::BI__builtin_riscv_pmulhsu_i32x2: + case RISCV::BI__builtin_riscv_pmulhr_i32x2: + case RISCV::BI__builtin_riscv_pmulhru_u32x2: + case RISCV::BI__builtin_riscv_pmulhrsu_i32x2: { switch (BuiltinID) { default: llvm_unreachable("unexpected builtin ID"); @@ -1355,6 +1374,36 @@ Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID, case RISCV::BI__builtin_riscv_psabs_i16x4: ID = Intrinsic::riscv_psabs; break; + case RISCV::BI__builtin_riscv_pmulh_i16x2: + case RISCV::BI__builtin_riscv_pmulh_i16x4: + case RISCV::BI__builtin_riscv_pmulh_i32x2: + ID = Intrinsic::riscv_pmulh; + break; + case RISCV::BI__builtin_riscv_pmulhu_u16x2: + case RISCV::BI__builtin_riscv_pmulhu_u16x4: + case RISCV::BI__builtin_riscv_pmulhu_u32x2: + ID = Intrinsic::riscv_pmulhu; + break; + case RISCV::BI__builtin_riscv_pmulhsu_i16x2: + case RISCV::BI__builtin_riscv_pmulhsu_i16x4: + case RISCV::BI__builtin_riscv_pmulhsu_i32x2: + ID = Intrinsic::riscv_pmulhsu; + break; + case RISCV::BI__builtin_riscv_pmulhr_i16x2: + case RISCV::BI__builtin_riscv_pmulhr_i16x4: + case RISCV::BI__builtin_riscv_pmulhr_i32x2: + ID = Intrinsic::riscv_pmulhr; + break; + case RISCV::BI__builtin_riscv_pmulhru_u16x2: + case RISCV::BI__builtin_riscv_pmulhru_u16x4: + case RISCV::BI__builtin_riscv_pmulhru_u32x2: + ID = Intrinsic::riscv_pmulhru; + break; + case RISCV::BI__builtin_riscv_pmulhrsu_i16x2: + case RISCV::BI__builtin_riscv_pmulhrsu_i16x4: + case RISCV::BI__builtin_riscv_pmulhrsu_i32x2: + ID = Intrinsic::riscv_pmulhrsu; + break; } IntrinsicTypes = {ResultType}; diff --git a/clang/lib/Headers/riscv_packed_simd.h b/clang/lib/Headers/riscv_packed_simd.h index 7d40f046eba80..91215aa2f039d 100644 --- a/clang/lib/Headers/riscv_packed_simd.h +++ b/clang/lib/Headers/riscv_packed_simd.h @@ -66,9 +66,10 @@ typedef uint32_t uint32x2_t __attribute__((__vector_size__(8))); return op __rs1; \ } -#define __packed_binary_builtin(name, ty, builtin) \ - static __inline__ ty __DEFAULT_FN_ATTRS __riscv_##name(ty __rs1, ty __rs2) { \ - return builtin(__rs1, __rs2); \ +#define __packed_binary_builtin(name, rty, ty1, ty2, builtin) \ + static __inline__ rty __DEFAULT_FN_ATTRS __riscv_##name(ty1 __rs1, \ + ty2 __rs2) { \ + return (rty)builtin(__rs1, __rs2); \ } #define __packed_sh1add(name, ty) \ @@ -97,12 +98,6 @@ typedef uint32_t uint32x2_t __attribute__((__vector_size__(8))); return (rty)__builtin_elementwise_abs(__rs1); \ } -#define __packed_binary_builtin_cast(name, ty, rty, builtin) \ - static __inline__ rty __DEFAULT_FN_ATTRS __riscv_##name(ty __rs1, \ - ty __rs2) { \ - return (rty)builtin(__rs1, __rs2); \ - } - #define __packed_reduction(name, rty, ty, builtin) \ static __inline__ rty __DEFAULT_FN_ATTRS __riscv_##name(ty __rs1, \ rty __rs2) { \ @@ -320,28 +315,28 @@ __packed_scalar_binary_op(padd_s_i32x2, int32x2_t, int32_t, +, __packed_splat2) /* Packed Saturating Addition and Subtraction (32-bit) */ -__packed_binary_builtin(psadd_i8x4, int8x4_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(psadd_i16x2, int16x2_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(psaddu_u8x4, uint8x4_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(psaddu_u16x2, uint16x2_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(pssub_i8x4, int8x4_t, __builtin_elementwise_sub_sat) -__packed_binary_builtin(pssub_i16x2, int16x2_t, __builtin_elementwise_sub_sat) -__packed_binary_builtin(pssubu_u8x4, uint8x4_t, __builtin_elementwise_sub_sat) -__packed_binary_builtin(pssubu_u16x2, uint16x2_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(psadd_i8x4, int8x4_t, int8x4_t, int8x4_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(psadd_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(psaddu_u8x4, uint8x4_t, uint8x4_t, uint8x4_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(psaddu_u16x2, uint16x2_t, uint16x2_t, uint16x2_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(pssub_i8x4, int8x4_t, int8x4_t, int8x4_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(pssub_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(pssubu_u8x4, uint8x4_t, uint8x4_t, uint8x4_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(pssubu_u16x2, uint16x2_t, uint16x2_t, uint16x2_t, __builtin_elementwise_sub_sat) /* Packed Saturating Addition and Subtraction (64-bit) */ -__packed_binary_builtin(psadd_i8x8, int8x8_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(psadd_i16x4, int16x4_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(psadd_i32x2, int32x2_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(psaddu_u8x8, uint8x8_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(psaddu_u16x4, uint16x4_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(psaddu_u32x2, uint32x2_t, __builtin_elementwise_add_sat) -__packed_binary_builtin(pssub_i8x8, int8x8_t, __builtin_elementwise_sub_sat) -__packed_binary_builtin(pssub_i16x4, int16x4_t, __builtin_elementwise_sub_sat) -__packed_binary_builtin(pssub_i32x2, int32x2_t, __builtin_elementwise_sub_sat) -__packed_binary_builtin(pssubu_u8x8, uint8x8_t, __builtin_elementwise_sub_sat) -__packed_binary_builtin(pssubu_u16x4, uint16x4_t, __builtin_elementwise_sub_sat) -__packed_binary_builtin(pssubu_u32x2, uint32x2_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(psadd_i8x8, int8x8_t, int8x8_t, int8x8_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(psadd_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(psadd_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(psaddu_u8x8, uint8x8_t, uint8x8_t, uint8x8_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(psaddu_u16x4, uint16x4_t, uint16x4_t, uint16x4_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(psaddu_u32x2, uint32x2_t, uint32x2_t, uint32x2_t, __builtin_elementwise_add_sat) +__packed_binary_builtin(pssub_i8x8, int8x8_t, int8x8_t, int8x8_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(pssub_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(pssub_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(pssubu_u8x8, uint8x8_t, uint8x8_t, uint8x8_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(pssubu_u16x4, uint16x4_t, uint16x4_t, uint16x4_t, __builtin_elementwise_sub_sat) +__packed_binary_builtin(pssubu_u32x2, uint32x2_t, uint32x2_t, uint32x2_t, __builtin_elementwise_sub_sat) /* Packed Shift-Add (32-bit) */ __packed_sh1add(psh1add_i16x2, int16x2_t) @@ -357,50 +352,50 @@ __packed_sh1sadd(pssh1sadd_i16x4, int16x4_t) __packed_sh1sadd(pssh1sadd_i32x2, int32x2_t) /* Packed Exchanged Addition and Subtraction (32-bit) */ -__packed_binary_builtin(pas_x_i16x2, int16x2_t, __builtin_riscv_pas_x_i16x2) -__packed_binary_builtin(psa_x_i16x2, int16x2_t, __builtin_riscv_psa_x_i16x2) -__packed_binary_builtin(psas_x_i16x2, int16x2_t, __builtin_riscv_psas_x_i16x2) -__packed_binary_builtin(pssa_x_i16x2, int16x2_t, __builtin_riscv_pssa_x_i16x2) -__packed_binary_builtin(paas_x_i16x2, int16x2_t, __builtin_riscv_paas_x_i16x2) -__packed_binary_builtin(pasa_x_i16x2, int16x2_t, __builtin_riscv_pasa_x_i16x2) +__packed_binary_builtin(pas_x_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_riscv_pas_x_i16x2) +__packed_binary_builtin(psa_x_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_riscv_psa_x_i16x2) +__packed_binary_builtin(psas_x_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_riscv_psas_x_i16x2) +__packed_binary_builtin(pssa_x_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_riscv_pssa_x_i16x2) +__packed_binary_builtin(paas_x_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_riscv_paas_x_i16x2) +__packed_binary_builtin(pasa_x_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_riscv_pasa_x_i16x2) /* Packed Exchanged Addition and Subtraction (64-bit) */ -__packed_binary_builtin(pas_x_i16x4, int16x4_t, __builtin_riscv_pas_x_i16x4) -__packed_binary_builtin(psa_x_i16x4, int16x4_t, __builtin_riscv_psa_x_i16x4) -__packed_binary_builtin(psas_x_i16x4, int16x4_t, __builtin_riscv_psas_x_i16x4) -__packed_binary_builtin(pssa_x_i16x4, int16x4_t, __builtin_riscv_pssa_x_i16x4) -__packed_binary_builtin(paas_x_i16x4, int16x4_t, __builtin_riscv_paas_x_i16x4) -__packed_binary_builtin(pasa_x_i16x4, int16x4_t, __builtin_riscv_pasa_x_i16x4) -__packed_binary_builtin(pas_x_i32x2, int32x2_t, __builtin_riscv_pas_x_i32x2) -__packed_binary_builtin(psa_x_i32x2, int32x2_t, __builtin_riscv_psa_x_i32x2) -__packed_binary_builtin(psas_x_i32x2, int32x2_t, __builtin_riscv_psas_x_i32x2) -__packed_binary_builtin(pssa_x_i32x2, int32x2_t, __builtin_riscv_pssa_x_i32x2) -__packed_binary_builtin(paas_x_i32x2, int32x2_t, __builtin_riscv_paas_x_i32x2) -__packed_binary_builtin(pasa_x_i32x2, int32x2_t, __builtin_riscv_pasa_x_i32x2) +__packed_binary_builtin(pas_x_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_riscv_pas_x_i16x4) +__packed_binary_builtin(psa_x_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_riscv_psa_x_i16x4) +__packed_binary_builtin(psas_x_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_riscv_psas_x_i16x4) +__packed_binary_builtin(pssa_x_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_riscv_pssa_x_i16x4) +__packed_binary_builtin(paas_x_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_riscv_paas_x_i16x4) +__packed_binary_builtin(pasa_x_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_riscv_pasa_x_i16x4) +__packed_binary_builtin(pas_x_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_riscv_pas_x_i32x2) +__packed_binary_builtin(psa_x_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_riscv_psa_x_i32x2) +__packed_binary_builtin(psas_x_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_riscv_psas_x_i32x2) +__packed_binary_builtin(pssa_x_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_riscv_pssa_x_i32x2) +__packed_binary_builtin(paas_x_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_riscv_paas_x_i32x2) +__packed_binary_builtin(pasa_x_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_riscv_pasa_x_i32x2) /* Packed Minimum and Maximum (32-bit) */ -__packed_binary_builtin(pmin_i8x4, int8x4_t, __builtin_elementwise_min) -__packed_binary_builtin(pmin_i16x2, int16x2_t, __builtin_elementwise_min) -__packed_binary_builtin(pminu_u8x4, uint8x4_t, __builtin_elementwise_min) -__packed_binary_builtin(pminu_u16x2, uint16x2_t, __builtin_elementwise_min) -__packed_binary_builtin(pmax_i8x4, int8x4_t, __builtin_elementwise_max) -__packed_binary_builtin(pmax_i16x2, int16x2_t, __builtin_elementwise_max) -__packed_binary_builtin(pmaxu_u8x4, uint8x4_t, __builtin_elementwise_max) -__packed_binary_builtin(pmaxu_u16x2, uint16x2_t, __builtin_elementwise_max) +__packed_binary_builtin(pmin_i8x4, int8x4_t, int8x4_t, int8x4_t, __builtin_elementwise_min) +__packed_binary_builtin(pmin_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_elementwise_min) +__packed_binary_builtin(pminu_u8x4, uint8x4_t, uint8x4_t, uint8x4_t, __builtin_elementwise_min) +__packed_binary_builtin(pminu_u16x2, uint16x2_t, uint16x2_t, uint16x2_t, __builtin_elementwise_min) +__packed_binary_builtin(pmax_i8x4, int8x4_t, int8x4_t, int8x4_t, __builtin_elementwise_max) +__packed_binary_builtin(pmax_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_elementwise_max) +__packed_binary_builtin(pmaxu_u8x4, uint8x4_t, uint8x4_t, uint8x4_t, __builtin_elementwise_max) +__packed_binary_builtin(pmaxu_u16x2, uint16x2_t, uint16x2_t, uint16x2_t, __builtin_elementwise_max) /* Packed Minimum and Maximum (64-bit) */ -__packed_binary_builtin(pmin_i8x8, int8x8_t, __builtin_elementwise_min) -__packed_binary_builtin(pmin_i16x4, int16x4_t, __builtin_elementwise_min) -__packed_binary_builtin(pmin_i32x2, int32x2_t, __builtin_elementwise_min) -__packed_binary_builtin(pminu_u8x8, uint8x8_t, __builtin_elementwise_min) -__packed_binary_builtin(pminu_u16x4, uint16x4_t, __builtin_elementwise_min) -__packed_binary_builtin(pminu_u32x2, uint32x2_t, __builtin_elementwise_min) -__packed_binary_builtin(pmax_i8x8, int8x8_t, __builtin_elementwise_max) -__packed_binary_builtin(pmax_i16x4, int16x4_t, __builtin_elementwise_max) -__packed_binary_builtin(pmax_i32x2, int32x2_t, __builtin_elementwise_max) -__packed_binary_builtin(pmaxu_u8x8, uint8x8_t, __builtin_elementwise_max) -__packed_binary_builtin(pmaxu_u16x4, uint16x4_t, __builtin_elementwise_max) -__packed_binary_builtin(pmaxu_u32x2, uint32x2_t, __builtin_elementwise_max) +__packed_binary_builtin(pmin_i8x8, int8x8_t, int8x8_t, int8x8_t, __builtin_elementwise_min) +__packed_binary_builtin(pmin_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_elementwise_min) +__packed_binary_builtin(pmin_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_elementwise_min) +__packed_binary_builtin(pminu_u8x8, uint8x8_t, uint8x8_t, uint8x8_t, __builtin_elementwise_min) +__packed_binary_builtin(pminu_u16x4, uint16x4_t, uint16x4_t, uint16x4_t, __builtin_elementwise_min) +__packed_binary_builtin(pminu_u32x2, uint32x2_t, uint32x2_t, uint32x2_t, __builtin_elementwise_min) +__packed_binary_builtin(pmax_i8x8, int8x8_t, int8x8_t, int8x8_t, __builtin_elementwise_max) +__packed_binary_builtin(pmax_i16x4, int16x4_t, int16x4_t, int16x4_t, __builtin_elementwise_max) +__packed_binary_builtin(pmax_i32x2, int32x2_t, int32x2_t, int32x2_t, __builtin_elementwise_max) +__packed_binary_builtin(pmaxu_u8x8, uint8x8_t, uint8x8_t, uint8x8_t, __builtin_elementwise_max) +__packed_binary_builtin(pmaxu_u16x4, uint16x4_t, uint16x4_t, uint16x4_t, __builtin_elementwise_max) +__packed_binary_builtin(pmaxu_u32x2, uint32x2_t, uint32x2_t, uint32x2_t, __builtin_elementwise_max) /* Packed Comparison (32-bit) */ __packed_cmp(pmseq_i8x4_u8x4, int8x4_t, uint8x4_t, ==) @@ -601,44 +596,44 @@ __packed_nziph2(pnziph_i16x4, int16x4_t, int32x2_t) __packed_nziph2(pnziph_u16x4, uint16x4_t, uint32x2_t) /* Packed Averaging Addition and Subtraction (32-bit) */ -__packed_binary_builtin(paadd_i8x4, int8x4_t, __builtin_riscv_paadd_i8x4) -__packed_binary_builtin(paadd_i16x2, int16x2_t, __builtin_riscv_paadd_i16x2) -__packed_binary_builtin(paaddu_u8x4, uint8x4_t, __builtin_riscv_paaddu_u8x4) -__packed_binary_builtin(paaddu_u16x2, uint16x2_t, __builtin_riscv_paaddu_u16x2) -__packed_binary_builtin(pasub_i8x4, int8x4_t, __builtin_riscv_pasub_i8x4) -__packed_binary_builtin(pasub_i16x2, int16x2_t, __builtin_riscv_pasub_i16x2) -__packed_binary_builtin(pasubu_u8x4, uint8x4_t, __builtin_riscv_pasubu_u8x4) -__packed_binary_builtin(pasubu_u16x2, uint16x2_t, __builtin_riscv_pasubu_u16x2) +__packed_binary_builtin(paadd_i8x4, int8x4_t, int8x4_t, int8x4_t, __builtin_riscv_paadd_i8x4) +__packed_binary_builtin(paadd_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_riscv_paadd_i16x2) +__packed_binary_builtin(paaddu_u8x4, uint8x4_t, uint8x4_t, uint8x4_t, __builtin_riscv_paaddu_u8x4) +__packed_binary_builtin(paaddu_u16x2, uint16x2_t, uint16x2_t, uint16x2_t, __builtin_riscv_paaddu_u16x2) +__packed_binary_builtin(pasub_i8x4, int8x4_t, int8x4_t, int8x4_t, __builtin_riscv_pasub_i8x4) +__packed_binary_builtin(pasub_i16x2, int16x2_t, int16x2_t, int16x2_t, __builtin_riscv_pasub_i16x2) +__packed_binary_builtin(pasubu_u8x4, uint8x4_t, uint8x4_t, uint8x4_t, __builtin_riscv_pasubu_u8x4) +__packed_binary_builtin(pasubu_u16x2, uint16x2_t, uint16x2_t, uint16x2_t, __builtin_riscv_pasubu_u16x2) /* Packed Averaging Addition and Subtraction (64-bit) */ -__packed_binary_builtin(paadd_i8x8, int8x8_t, __builtin_riscv_paadd_i8x8) -__packed_binary_builtin(paadd_i16x4, int16x4_t, __builtin_riscv_paadd_i16x4) -__packed_binary_builtin(paadd_i32x2, int32x2_t, __builtin_riscv_paadd_i32x2) -__packed_binary_builtin(paaddu_u8x8, uint8x8_t, __builtin_riscv_paaddu_u8x8) -__packed_binary_builtin(paaddu_u16x4, uint16x4_t, __builtin_riscv_paaddu_u16... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/211236 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
